在Mendix中更新实体时,数据视图未更新

时间:2019-04-26 13:41:22

标签: mendix

问题是:如何以这样的方式在数据视图中显示数据:如果更新实体,那么也会如何更新数据视图。

这是我的名为latestReading的实体。

enter image description here

这是我的页面LatestReading,其中显示了最新的阅读材料。它包含三个数据视图。

enter image description here

由于需要对象latestReading,因此未直接调用此页面。因此,执行了一个名为showLatestReadingPage的微流程,该流程将获取或创建latestReading对象并将其传递到LatestReading页面并显示LatestReading页面。

这是微流。

enter image description here

getOrCreateLatestReading是一个微流程,它向我们返回一个latestReading对象(如果可用),或者创建一个新的latestReading对象(如果尚未创建然后返回)。 / p>

这是微流。

enter image description here

这些是LatestReading页面中三个数据视图中第一个的属性,如上面LatestReading页面所示。此DataView的名称为TemperatureDataView

enter image description here

这些是TemperatureDataView数据视图内的文本窗口小部件的属性。名称为temperatureText。它在TemperatureDataView中显示温度值。

enter image description here

这是temperatureText文本小部件的标题:

enter image description here

问题是当另一个微流更新latestReading的值时,文本小部件未更新。我需要通过再次单击LatestReading页面的导航链接来重新加载它。

我需要在数据视图中使用文本小部件来在更新其他一些微流程时保持latestReading的更新值

1 个答案:

答案 0 :(得分:1)

问题在于,只有在与用户所看到的页面(客户端)相同的上下文中执行微流时,“刷新客户端”才有效。例如,如果页面上有一个按钮触发微流来刷新客户端,那么它将更新小部件。但是,如果微流是由系统触发的(例如预定事件),则这些更改将处于不同的上下文中。同样,如果另一个用户触发刷新,则只会刷新该用户的客户端。同样,如果一个用户通过多个浏览器(即有多个会话)登录,这也意味着对于每个会话,都有不同的用户上下文。

在这种情况下,最简单的解决方案可能是使用一个appstore小部件,该小部件定期触发数据视图中显示的对象的刷新,例如:https://appstore.home.mendix.com/link/app/27/。只需使用更改动作创建纳流或微流,该动作不会改变属性,而是会刷新对象。