当用户点击后退按钮时,ModalPopupExtender会显示弹出窗口

时间:2010-11-23 20:48:32

标签: asp.net-3.5 modalpopupextender back-button

当用户通过浏览器的后退按钮导航到页面时,如何阻止ModalPopupExtender显示弹出窗口?

我尝试实现找到here的解决方案,该解决方案基本上使用客户端脚本处理ModalPopup但是在实现时遇到了问题。 ($ find(“modPop”)总是返回null)。

还有其他处理方法吗?

编辑:情节变粗。这只是因为我在弹出窗口中使用UpdatePanel。下面的代码应该复制错误。另请注意,需要使用虚拟按钮。

  1. 点击按钮显示模态
  2. 确认模态
  3. 离开页面
  4. 导航回页面w /后退按钮
  5. 模态显得不合情理。
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Test.aspx.vb" Inherits="Test" %>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true"> </asp:ScriptManager>

<span style="display:none;"><asp:Button ID="btnDummy" runat="server" Text="Dummy" /></span>
<asp:Button id="btnShow" runat="server" Text="Show Modal"/>
<ajax:ModalPopupExtender ID="mpTest" runat="server" TargetControlID="btnDummy" PopupControlID="pnlTest"></ajax:ModalPopupExtender>
<asp:Panel id="pnlTest" style="display:none;border:10px solid green" DefaultButton="btnTest" runat="server">        
<asp:UpdatePanel ID="upTest" runat="server">
<ContentTemplate>
        <asp:Button ID="btnTest" runat="server" Text="Test" />        
</ContentTemplate>
<Triggers>
    <ajax:AsyncPostBackTrigger ControlID="btnTest" />
</Triggers>
</asp:UpdatePanel>
</asp:Panel>
<a href="http://stackoverflow.com">StackOverflow</a>
</div>
</form>
Partial Class Test
    Inherits System.Web.UI.Page

    Protected Sub btnShow_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShow.Click
        mpTest.Show()
    End Sub

    Protected Sub btnTest_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnTest.Click
        mpTest.Hide()
    End Sub

End Class

我认为这是有道理的,因为当您确认模态时,完整的回发不会发生,但我需要这样做。有没有解决方法?

1 个答案:

答案 0 :(得分:0)

在ASP.NET论坛的解决方案中,modPop中的$find("modPop")是模式弹出窗口的行为ID,在您的情况下为mpTest。尝试在BehaviorId="mpTest"上明确设置ModalPopupExtender,看看它是否有效。