LightSwitch的2013:保存,然后在刷新JS(Lightswitch 2013: Save

2019-11-03 07:27发布

我有2套的代码:

  1. 保存数据

myapp.activeDataWorkspace.ProjectHandlerData.saveChanges();

2.Refreshes页面

window.location.reload();

有没有办法让这两个上一个按钮一起工作,因为目前当我点击保存,浏览器识别变化并沿着这些线路的(你确定要离开页面)消息或东西啪啪起来..

干杯

Answer 1:

这是HTML客户端,对不对? 假定是这种情况:

调用SaveChanges()是一个异步操作,所以你想做的事:

myapp.activeDataWorkspace.ProjectHandlerData.saveChanges().then(function () {
    window.location.reload();
});

这样,它会等待,直到它完成保存更改它重新加载整个屏幕。

然而,有一个平滑的方式做到这一点,至少从用户的角度来看它的顺畅。 在编辑屏幕上,保留保存方法出来,让LightSwitch的搞定。 当用户点击保存,它将关闭编辑屏幕,并返回到他们在那里了。 使用showScreen方法的选择参数,我们可以改变这种行为。

更改调用编辑屏幕这样的方法:

myapp.showEditProject(screen.Project, {
    afterClosed: function (editScreen) {
        myapp.showViewProject(editScreen.Project);
    }
});

这样一来,经过编辑画面关闭,并已办理了更改保存操作你的应用程序会自动定位到细节查看最近编辑的项目的画面。

如果您是不是想添加一个新的实体后刷新浏览屏幕:

myapp.showAddEditProject(null, {
    beforeShown: function (addEditScreen) {
        addEditScreen.Project = new myapp.Project();
    },
    afterClosed: function () {
        screen.Projects.load();
    }
});

这两个选项,beforeShown和afterClosed,给你很多很酷的能力来影响你的应用程序导航。



Answer 2:

我了解到,您可以从添加/编辑窗口中保存,并重新加载你通过执行以下操作回到主界面:

例如:(加入以便将订单屏幕)

  1. 点击此按钮来添加顺序
  2. 输入所需的详细信息。
  3. 打你自定义的保存按钮,包括您的验证。
  4. 在你commitChanges(); 在下面的行写: screen.OrderLine.OrderTable.details.refresh(); “这需要适用于您的方案”
  5. 当您返回到你的屏幕上你的细节应已更新(例如总价值现在我的情况下显示正确的值)

希望这可以帮助...



文章来源: Lightswitch 2013: Save then Refresh in JS