window.beforeunload提示符不会隐藏ajax更新进度

时间:2018-01-02 09:53:12

标签: jquery ajax updatepanel updateprogress

我使用了捕获

的代码
$(window).on('beforeunload unload', function (element) { 
  return 'Are you sure you want to leave?';
});

在同一页面上,我有一个更新面板和更新进度。 如果用户通过单击按钮导航到其他页面,则会出现提示消息,并且更新进度也会启动。

如果用户在警报窗口中选择“否”并停留在同一页面上,则更新进度仍然处于可见状态。

是否有任何方法可以捕获用户对“更改可能未保存的提示”的响应,因此根据结果我将隐藏更新进度图像。

 <asp:UpdatePanel runat="server" ID="ProductSelectorContainerPanel" UpdateMode="Conditional">
                <ContentTemplate>

 <asp:Button runat="server" ID="DoPartialPostBack" OnClick="DoPartialPostBack_Click" Text="Do Postback"/>

   </ContentTemplate>
 </asp:UpdatePanel>

.cs代码

  

protected void DoPartialPostBack_Click(object sender,EventArgs e)           {               的Response.Redirect( “page2.aspx”);           }

现在,如果添加调试器,则首先调用Response重定向。这将调用jquery的beforeunload代码。并根据选定的结果(在我的情况下保留),更新进度将作为回发触发。

2 个答案:

答案 0 :(得分:0)

  

...所以基于结果我将隐藏更新进度图像

只需将其隐藏在beforeunload处理程序中即可。如果用户离开页面,它是否隐藏并不重要;他们离开了这个页面。如果他们没有,你就得到了你想要的结果。

答案 1 :(得分:0)

我更改了为按钮添加完整回发触发器的代码。 因此,按钮的行为就像普通按钮一样,当用户在警报中选择“否”时,按钮调用就会停止。