2010-11-23 13 views
2

ユーザーがブラウザの戻るボタンを使用してページに移動したときに、ModalPopupExtenderがポップアップを表示しないようにするにはどうすればよいですか?ModalPopupExtenderは、ユーザーが戻るボタンを押すとポップアップを表示します。

クライアントサイドスクリプトを使用してModalPopupを処理するが実装上問題があったhereという解決策を実装しようとしました。 ($ find( "modPop")は常にnullを返します)。

これを処理する他の方法はありますか?

編集:プロットは、を濃くします。これは、ポップアップ内でUpdatePanelを使用しているためにのみ発生します。次のコードは、エラーを複製する必要があります。また、ダミーボタンの使用が必要です。バックページへ

  • 確認モーダル
  • 移動離れページ
  • 移動からのモーダルを表示する

    1. クリックボタンバック/ Wボタン
    2. モーダル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フォーラムのソリューションでは、$find("modPop")modPopが、モーダルポップアップの動作IDであり、あなたのケースではmpTestとなります。あなたのModalPopupExtenderに明示的にBehaviorId="mpTest"を設定して、それが機能するかどうかを確認してみてください。

    +0

    これは私が元々ソリューションをテストしたもので、動作しませんでした。 – plntxt

    +0

    モーダルポップアップの 'BehaviorId'を明示的に設定してみてください – batwad

    関連する問題