在JavaScript中嵌入C#代码?

时间:2016-06-14 14:16:25

标签: javascript c# asp.net

在我的.aspx文件中,我有一个按钮

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

通常在.cs文件中,如果我需要调用该按钮的任何方法,我会调用BtnSearch.method(),但我在EditClick()的JavaScript中有一个函数,我想调用BtnSearch.Enable = false但我得到了一个例外。如何在JavaScript函数中禁用此按钮?

2 个答案:

答案 0 :(得分:1)

您可以使用

OnClientClick=""
asp按钮中的

属性?

然后运行类似于

的内联代码
$(this).prop('disabled', true);

最终观点:

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

答案 1 :(得分:1)

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

由于您无法在运行时预测服务器控件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",除非我没有任何其他选择。