【发布时间】:2010-11-23 20:48:31
【问题描述】:
当用户通过浏览器的后退按钮导航到页面时,如何阻止 ModalPopupExtender 显示弹出窗口?
我尝试实施找到here 的解决方案,它基本上使用客户端脚本处理 ModalPopup,但在实施时遇到了麻烦。 ($find("modPop") 总是返回 null)。
还有其他技术可以解决这个问题吗?
编辑:情节变厚。这只是因为我在弹出窗口中使用了 UpdatePanel。下面的代码应该重复错误。另请注意,需要使用虚拟按钮。
- 点击按钮显示模态
- 确认模态
- 离开页面
- 使用返回按钮导航回页面
- 模态显示不理想。
<%@ 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>
部分类测试
继承 System.Web.UI.Page
Protected Sub btnShow_Click(ByVal sender As Object, ByVal e As System.EventArgs) 处理 btnShow.Click
mpTest.Show()
结束子
Protected Sub btnTest_Click(ByVal sender As Object, ByVal e As System.EventArgs) 处理 btnTest.Click
mpTest.Hide()
结束子
结束类
我认为这是有道理的,因为当您确认模态不会发生完整的回发时,但我需要这样做。有什么解决方法吗?
【问题讨论】:
标签: asp.net-3.5 modalpopupextender back-button