我有两组代码:
- 保存数据
myapp.activeDataWorkspace.ProjectHandlerData.saveChanges();
2.刷新页面
window.location.reload();
有没有办法让这两个按钮在一个按钮上一起工作,因为目前当我单击保存时,浏览器会识别更改并且(您确定要离开页面)消息或类似这些行的内容弹出..
干杯
我有两组代码:
myapp.activeDataWorkspace.ProjectHandlerData.saveChanges();
2.刷新页面
window.location.reload();
有没有办法让这两个按钮在一个按钮上一起工作,因为目前当我单击保存时,浏览器会识别更改并且(您确定要离开页面)消息或类似这些行的内容弹出..
干杯
这是针对 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,为您提供了许多非常酷的功能来影响应用程序中的导航。
我了解到您可以从添加/编辑窗口保存,并通过执行以下操作重新加载您要返回的主页:
例如:(将订单添加到订单屏幕)
commitChanges();
写下以下行之前:screen.OrderLine.OrderTable.details.refresh();
“这需要应用于您的场景”希望这可以帮助...