1

在 Lightswitch HTML 客户端中,我们创建了一个屏幕来显示特定业务流程正在进行的工作。

这将显示在大屏幕上,就像您去 Argos 取货时一样。这是屏幕截图...

在此处输入图像描述

我们正在使用一些 java 脚本每 30 秒刷新一次页面。

setTimeout(function () {
    window.location.reload(1);
}, 30000);

但是,这有两个问题。

  1. 用户输入的“最大结果数”文本在刷新时丢失。
  2. 刷新整个页面看起来不太好。

因此是否可以只触发每个查询而不是整个页面重新加载?

(数据由 WCF RIA 服务提供给 LightSwitch)

4

3 回答 3

3

在 JavaScript 中,使用screen.MyList.load(). 它将异步重新加载列表。

请注意,IntelliSense 并不总是建议screen对象上的列表名称,但如果您键入名称,它会识别它们。

结合setTimeout()方法和created屏幕事件,它应该可以工作。

于 2013-04-19T07:53:21.923 回答
3

我有同样的问题,终于找到了解决方案。我在我创建的事件中添加了这个:

myapp.BrowseMembers.created = function (screen) {
    setInterval(function () {screen.Members.load(true);}, 1000);
};

ii 工作,只是屏幕在重新加载数据时闪烁。setTimeout 只会触发一次,但 setInterval 会每 1 秒触发一次。

于 2013-07-20T13:33:24.133 回答
0

我在使用 LightSwitch VS2012 Update 3 时遇到了同样的问题,就我而言,只要失效就足够了,所以我总是可以使用新实体。此代码在入口屏幕上运行一次,每 30 秒使加载的实体无效,并在需要时强制重新获取。

myapp.aaHome.created = function (screen) {
    setInterval(function () { 
        screen.details.dataWorkspace.ApplicationData.Currencies._loadedEntities = {};
    }, 30000);
};
于 2013-07-31T02:40:09.143 回答