【问题标题】:Data-view is not updating when entity is updated in Mendix在 Mendix 中更新实体时,数据视图未更新
【发布时间】:2019-09-16 01:05:56
【问题描述】:

问题是:如何在数据视图中显示数据,以便在更新实体时如何更新数据视图。

这是我的实体,名为 latestReading

这是我的页面LatestReading,显示最新读数。它包含三个数据视图。

这个页面没有被直接调用,因为它需要一个对象latestReading。因此,一个名为showLatestReadingPage 的微流被执行,它获取或创建latestReading 对象并将其传递给LatestReading 页面并显示LatestReading 页面。

这是微流。

getOrCreateLatestReading 是一个微流,如果 latestReading 对象可用,则返回我们;如果尚未创建,则创建新的 latestReading 对象,然后返回。

这是微流。

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

这些是TemperatureDataView data-view 内的文本小部件的属性。它的名字是temperatureText。它显示TemperatureDataView中的温度值。

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

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

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

【问题讨论】:

    标签: mendix


    【解决方案1】:

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

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

    【讨论】:

    • 为了改进答案,nanoflow 和 microflow 都必须返回布尔值“true”并具有输入参数(来自数据视图的对象)。使用微流时,仅将“在客户端刷新”操作设置为“是”的“更改对象”活动就足够了(无需提交,因此“提交”操作可以保持“否”)。对于 nanoflow,“更改对象”操作只有一个选项“提交”,必须勾选。这就是为什么我怀疑使用微流可能会更好,因为不需要提交。我已经在一个简单的可持久实体(没有关联)上对其进行了测试。
    猜你喜欢
    • 2020-06-30
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    相关资源
    最近更新 更多