【问题标题】:OnClick/OnClientClick event with Asp.Net使用 Asp.Net 的 OnClick/OnClientClick 事件
【发布时间】:2011-11-22 15:24:32
【问题描述】:

我对使用这个脚本以及它的实际工作方式有点困惑?

这是我的脚本:

 <script type="text/javascript">
        $(document).ready(function () {
            $('#<%=TextBox1.ClientID%>').change(function () {
                $('#various3').attr('href', $(this).val());
            });


                $("#<%=Button1.ClientID%>").click(function (event) {
                    setTimeout(showStickySuccessToast, 1000);
                    function showStickySuccessToast() {
                        $().toastmessage('showToast', {
                            text: 'Finished taking Screenshot!',
                            sticky: false,
                            position: 'middle-center',
                            type: 'success',
                            closeText: '',
                            close: function () {

                            }
                        });
                    }

                })                
        });
      </script>

这是我的按钮:

<a id="various3" href="#"><asp:Button ID="Button1" runat="server" 
    Text="Button" OnClientClick="Button1_Click"/></a>

这是我的 button1_Click 事件代码:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim NewTh As New Threading.Thread(AddressOf DoIT)
    NewTh.SetApartmentState(Threading.ApartmentState.STA)
    NewTh.Start()
    ImgPreview.ImageUrl = "~/uploads/Sample.jpg"
End Sub

现在,如果我单击按钮,它应该会打开 iframe 并显示我能够执行的消息。 现在的问题是如何同时调用代码隐藏中的 button1_Click 事件。 我使用了OnClickOnClientClick 事件,如下所示,但它不起作用,我没有收到任何错误。

【问题讨论】:

    标签: javascript asp.net vb.net onclientclick


    【解决方案1】:

    看起来你把事情搞反了:

    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" />
    

    上面的例子假定Button1_Click 是代码隐藏点击事件处理程序。由于您在 jQuery 中分配客户端单击事件,因此您根本不需要使用 OnClientClick

    编辑

    我会检查以确保验证不会干扰点击。您可以通过在 Button 上设置 CausesValidation="false" 来进行测试。

    【讨论】:

    • 感谢您的回复如果我使用 OnClick 它不会启动代码隐藏代码。
    • 代码隐藏中有Button1_Click 方法吗?是否标记为protected?你重新编译了吗?
    • 是的,我已经重建,我有一个 Button1_Click 方法,它受到保护,如上面的代码所示。
    • @James-非常感谢它现在起作用了,有什么具体原因吗?
    • 您在某处进行了验证,阻止它回发。
    【解决方案2】:

    Onclick = 引发回发,执行服务器事件处理程序。

    OnClientClick = 引发客户端点击事件,您可以调用 javascript 函数,但不能直接处理 asp 事件,尽管在调用 javascript 函数后会发生回发。

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      相关资源
      最近更新 更多