Asp.net OnClientClick не отображается для первоначально отключенной кнопки

У меня отключен asp.Button, с которым я позже включаю JavaScript. Как этот

<asp:Button ID="btnSave" runat="server" Text="Save" Enabled="false" OnClientClick="; return ValidateFields();" OnClick="btnSave_Clicked" />

Однако метод "onclick" не отображается как html, когда элемент управления отключен. Моя работа заключается в том, чтобы добавить следующий код в PageLoad.

btnSave.Attributes["onclick"] = "return ValidateFields();";

Есть ли более удобная работа для этого?

Спасибо

Ответы

Ответ 1

Вы можете использовать атрибут html для отключенных

<asp:Button disabled="disabled" ID="btnSave" runat="server" Text="Save" Enabled="false" OnClientClick="; return ValidateFields();" OnClick="btnSave_Clicked" />

Я предполагаю, что вы затем включите его на стороне клиента? если это так, вы можете включить его с помощью:

document.getElementById('MainContent_btnSave').removeAttribute('disabled'); //or jquery alternative where MainContent_btnSave is the clientid of the control

Ответ 2

Ну, очевидно, почему структура работает так: если кнопка отключена, почему она должна иметь обработчик события onclick? Пользователь не может щелкнуть по нему, если он отключен! Из-за этого структура удаляет атрибут.

Итак, я не думаю, что у вас есть другие возможности, кроме добавления атрибута вручную.