【问题标题】:Duplicate buttons in Update Panel and JavaScript Hack更新面板和 JavaScript Hack 中的重复按钮
【发布时间】:2012-11-23 17:15:37
【问题描述】:

关于我的问题,

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>

【问题讨论】:

    标签: javascript asp.net user-controls updatepanel


    【解决方案1】:

    假设您有两种方法,一种称为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();
       }
    }
    

    【讨论】:

    • @yaron Sean 的想法很好 (+1) 只需稍微工作一下,您就可以成功。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    相关资源
    最近更新 更多