2010-11-23 71 views
2

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

我试图实施解决方案发现here它本质上处理ModalPopup使用客户端脚本,但其实施有问题。 ($ find(“modPop”)总是返回null)。

是否有其他技术来处理?编辑:该地块加厚这只是因为我在弹出窗口中使用UpdatePanel。下面的代码应该重复错误。另请注意,需要使用虚拟按钮。

  1. 点击按钮,从
  2. 页面远
  3. 导航显示模式
  4. 确认模式
  5. 导航回到页面瓦特/后退按钮
  6. 莫代尔undesireably出现。
<%@ 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

我觉得这是有道理的,当你确认模式完全回发不会发生,因为,但我需要做的是这样的。有没有解决方法?

回答

0

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

+0

这是我最初测试解决方案的方式,它不起作用。 – plntxt 2010-12-01 14:33:30

相关问题