0

我正在编写此方法来跟踪页面上是否发生更改,以便用户可以触发依赖系统的重新加载。因此,当用户尝试离开页面时,您可以看到触发器。如果 e.Cancel 不存在,则行为似乎很好,异步 Web 服务调用按预期发生,但我不确定后面到底发生了什么。

重新加载按钮单击方法会触发一系列事件,这些事件通常会更新显示,但由于用户已离开页面,因此组件不再可见。这会给应用程序带来问题吗?我是否应该强迫用户留在同一页面上以防止可能出现的回调问题?

    protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
    {
        base.OnNavigatingFrom(e);
        if (hasDataBeenModified)
        {
            if (System.Windows.Browser.HtmlPage.Window.Confirm("You have not reloaded the policies\nDo you want to do it now?"))
            {
                //e.Cancel = true;
                ReloadButton_Click(null, null);
            }
        }
    }
4

1 回答 1

0

不要使用 OnNavigatingFrom,而是使用 OnBackKeyPress

protected override void OnBackKeyPress(CancelEventArgs e)
{
    if (hasDataBeenModified)
    {
        if (System.Windows.Browser.HtmlPage.Window.Confirm("You have not reloaded the policies\nDo you want to do it now?"))
        {
            e.Cancel = true;
            ReloadButton_Click(null, null);
        }
    }
}
于 2012-05-16T21:28:37.520 回答