2010-11-23 108 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

相關問題