【问题标题】:Unbind the client click event of a asp button but keep the server click event of the asp button attached取消绑定asp按钮的客户端点击事件,但保持asp按钮的服务器点击事件附加
【发布时间】:2015-09-25 00:19:53
【问题描述】:

对于某些特定条件,我需要在客户端点击事件中触发服务器点击事件。我知道,如果客户端单击返回 true,则触发服务器单击事件。 OnClientClick 我正在显示一个 jConfirm。当 jConfirm 返回 true 时,我想触发服务器单击同一按钮。我正在尝试这个:

<asp:Button ID="Button1" runat="server" Text="ADD" OnClick="btnAdd_Click" ValidationGroup="Add" CausesValidation="true" OnClientClick="return Validate()" />


function Validate() {
     if (Page_ClientValidate('Add')) {
         if ($('#<%=ddlTestField.ClientID%>').val() == '0') {
             var strMessage = 'Continue?';
             $.alerts.okButton = 'OK';
             $.alerts.cancelButton = 'CANCEL';
             jConfirm(strMessage, 'CONFIRM MESSAGE', function (r) {
                if(r)
                {
                    $('#<%=Button1.ClientID%>').unbind("click"); // To unbind the client event
                    $('#<%=Button1.ClientID%>').click(); // To fire the server click event, But it is firing the client click also. A loop goes on
                }
            });
        }
        return true;
    }
    return false;
}

【问题讨论】:

  • 当您使用 asp.net 事件时,我建议您使用两个按钮来执行此操作 - runat=server 一个隐藏,一个客户端专用,一个调用您的 btnAdd_Click 然后调用 $( "Button1").click()`
  • @freedomn-m 目前我正在按照您所说的方式进行管理。但是,这是唯一的方法,添加一个额外的 html 按钮并隐藏 asp 按钮吗?

标签: javascript jquery asp.net controls


【解决方案1】:

我找到了解决办法

if(r)
{
      <%= Page.ClientScript.GetPostBackEventReference(Button1, String.Empty) %>;
}

【讨论】:

    猜你喜欢
    • 2015-08-28
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 2011-12-30
    • 2023-04-09
    相关资源
    最近更新 更多