我有两套代码:
myapp.activeDataWorkspace.ProjectHandlerData.saveChanges();
2.刷新页面
window.location.reload();
有没有办法让这两个工作在一个按钮上一起工作,因为目前当我点击保存时,浏览器会识别出这些更改并且(你确定要离开页面)消息或其他东西沿着那些行弹出向上..
欢呼声
答案 0 :(得分:5)
这是针对HTML客户端的,对吗? 假设情况如此:
saveChanges()是一个异步操作,所以你想要这样做:
myapp.activeDataWorkspace.ProjectHandlerData.saveChanges().then(function () {
window.location.reload();
});
这样它会等到它重新加载屏幕之前保存更改完毕。
然而,有一种更平滑的方式,至少从用户的角度来看,它更顺畅。 在编辑屏幕上,保留Save方法,让LightSwitch处理它。当用户单击“保存”时,它将关闭编辑屏幕,然后返回到之前的位置。使用showScreen方法的options参数,我们可以改变这种行为。
更改调用编辑屏幕的方法,如下所示:
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,为你提供了许多非常酷的能力来影响应用程序中的导航。
答案 1 :(得分:0)
我了解到您可以从添加/编辑窗口进行保存,并通过执行以下操作重新加载要返回的主页面:
例如:(向订单屏幕添加订单)
commitChanges();
写入以下行之前screen.OrderLine.OrderTable.details.refresh();
“这需要适用于您的方案”希望这会有所帮助...