我的Lightswitch应用程序中有Back Button
,我需要直接链接到特定屏幕。
链接的屏幕需要ProjectID
值,我从您点击Back
的页面提供该值。
问题在于,当我单击后退时,我被带到正确的页面,但在页面刷新之后才会显示任何记录。我需要在加载完成后刷新页面
我一直在弄setTimeout
和setInterval
而没有运气。这可以在我的按钮点击中完成,还是我应该完全使用不同的导航方法?
代码setTimeout
(不向后导航):
myapp.ViewRecordDetails.BackButton_execute = function (screen) {
// window.history.back();
showDetails = function () {
setTimeout(function () {
window.location.reload(true);
}, 0)
}
window.location.reload(true);
};
导航回来但需要刷新以显示数据的代码:
myapp.ViewRecordDetails.BackButton_execute = function (screen) {
// window.history.back();
myapp.showViewProjectDetails(screen.TBG_V_TimeLog_Detail), function () {
}//Need to execute reload AFTER show screen has completed
};
您可能会注意到我已注释掉widow.history.back();
...这在我的应用程序的第一次迭代中有效,但现在有两种不同的方式登陆页面,因此历史记录不可靠
答案 0 :(得分:0)
不确定我之前是怎么做不到的。
BobbyJ的回答让我思考commitChanges
让我想到跳过javascript技巧,并使用我已经拥有的东西。
此代码有效:
myapp.ViewRecordDetails.BackButton_execute = function (screen) {
// window.history.back();
myapp.showViewProjectDetails(screen.TBG_V_TimeLog_Detail).then(function(){
myapp.commitChanges()
}).then(function () {
window.location.reload(true);//Need to execute reload AFTER show screen has completed
})
};
这就是我实际需要的所有内容:
myapp.ViewRecordDetails.BackButton_execute = function (screen) {
myapp.showViewProjectDetails(screen.TBG_V_TimeLog_Detail).then(function(){
window.location.reload(true);
})
};
仅使用.then()
功能。漂亮俏皮