【问题标题】:ModalPopupExtender shows popup when the user hits the back button当用户点击后退按钮时,ModalPopupExtender 显示弹出窗口
【发布时间】:2010-11-23 20:48:31
【问题描述】:

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

我尝试实施找到here 的解决方案,它基本上使用客户端脚本处理 ModalPopup,但在实施时遇到了麻烦。 ($find("modPop") 总是返回 null)。

还有其他技术可以解决这个问题吗?

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

  1. 点击按钮显示模态
  2. 确认模态
  3. 离开页面
  4. 使用返回按钮导航回页面
  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>
部分类测试
    继承 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


    【解决方案1】:

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

    【讨论】:

    • 这是我最初测试解决方案的方式,但它不起作用。
    • 尝试显式设置模态弹出窗口的BehaviorId
    猜你喜欢
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多