更新面板和JavaScript Hack中的重复按钮

时间:2012-11-23 17:15:37

标签: javascript asp.net user-controls updatepanel

参考我的问题,

Page.Unload Event inside a Update Panel

我能够使它工作,但我有两个按钮,部分回发,然后在我的脚本我可以做我想要的,但我希望它只工作一个按钮而不是两个,最好的是按钮我想让这个请求工作是图像按钮,而其他按钮只是一个简单的按钮。顺便说一下,这是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>

1 个答案:

答案 0 :(得分:2)

假设您有两种方法,一种称为button1_Click,另一种称为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事件处理程序。

EndRequest javascript函数中:

function EndRequest(sender, args) {
   // after update occur on UpdatePanel run the code.
   var hidIsTheButton = document.getElementById('<%=hidIsTheButton.ClientID%>');
   if (hidIsTheButton.Value == "1") {
       UnloadMsgBox();
   }
}