2016-06-14 91 views
2

在我.aspx文件我在.cs文件按钮在JavaScript中嵌入C#代码?

<asp:Button ID="BtnSearch" runat="server" Text="Search" ValidationGroup="SearchRoles" CausesValidation="true" OnClick="BtnSearch_Click" /> 

通常情况下,如果我需要调用的按钮任何方法我会打电话BtnSearch.method()但我在JavaScript中的函数EditClick(),我想拨打BtnSearch.Enable = false但我收到一个例外。如何禁用JavaScript功能中的此按钮?

回答

1

您可以使用jQuery。现在,你通常不会看到一个不使用jQuery或Javascript框架的网站。

由于您无法在运行时预测服务器控件ID,因此您希望使用#<%= SearchButton.ClientID %>

enter image description here

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<asp:Button ID="SearchButton" runat="server" Text="Search" 
    ValidationGroup="SearchRoles" CausesValidation="true" 
    OnClick="SearchButton_Click" /> 
<br /> 
<input type="checkbox" id="DisableButtonCheckBox" /> 
    Check to disable button 
<script type="text/javascript"> 
    $(function() { 
     $("#DisableButtonCheckBox").click(function() { 
      if (this.checked) { 
       $("#<%= SearchButton.ClientID %>").prop("disabled", true); 
      } else { 
       $("#<%= SearchButton.ClientID %>").prop("disabled", false); 
      } 
     }); 
    }); 
</script> 

我个人不喜欢使用ClientIDMode="static",除非我没有任何其他选择。

1

你可以使用在ASP按钮

OnClientClick="" 

属性?

然后运行类似于

$(this).prop('disabled', true); 

最后查看内嵌代码:

<asp:Button ID="BtnSearch" runat="server" Text="Search" ValidationGroup="SearchRoles" CausesValidation="true" OnClick="BtnSearch_Click" OnClientClick="$(this).prop('disabled', true);"/>