1

私の質問を参考に、

更新パネル内の Page.Unload イベント

私はそれを機能させることができますが、部分的なポストバックを行う2つのボタンを取得し、スクリプトで必要なことを実行できますが、2つではなく1つのボタンで機能するようにしたいです。このリクエストを機能させるのは画像ボタンですが、他のボタンは単純なボタンです。ちなみに、これは ASP.NET のユーザー コントロールです。

    <script type="text/javascript"> 
   // if you use jQuery, you can load them when dom is read.
   $(document).ready(function () {
       var prm = Sys.WebForms.PageRequestManager.getInstance();    
       prm.add_initializeRequest(InitializeRequest);
       prm.add_endRequest(EndRequest);

    });        

    function InitializeRequest(sender, args) {
    }

    function EndRequest(sender, args) {
       // after update occur on UpdatePanel run the code.
       UnloadMsgBox();
    }

    function UnloadMsgBox()
    {
        alert("Message");
    }
    </script>
4

1 に答える 1

2

2 つのメソッドがあるとします。1 つは と呼ばれbutton1_Click、もう 1 つは と呼ばれimageButton1_Clickます。次のようにページに HiddenField を追加します。

<asp:HiddenField runat="server" ID="hidIsTheButton" value="0" />

私たちのbutton1_Click方法では:

hidIsTheButton.Value = "0";

私たちのimageButton1_Click方法では:

hidIsTheButton.Value = "1";

ここで、button1_Clickは標準のボタン イベント ハンドラを指し、 は のイベント ハンドラを指しimageButton1_ClickますImageButton

あなたのEndRequestJavaScript関数で:

function EndRequest(sender, args) {
   // after update occur on UpdatePanel run the code.
   var hidIsTheButton = document.getElementById('<%=hidIsTheButton.ClientID%>');
   if (hidIsTheButton.Value == "1") {
       UnloadMsgBox();
   }
}
于 2012-11-23T17:22:20.857 に答える