asp.net OnClientClick未针对最初禁用的Button进行渲染

时间:2011-05-13 09:48:02

标签: c# javascript asp.net

我有一个禁用的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();";

有更方便的解决方法吗?

由于

2 个答案:

答案 0 :(得分:17)

您可以将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

答案 1 :(得分:2)

嗯,很明显为什么框架的行为如下:如果一个按钮被禁用,为什么它应该有一个onclick事件处理程序?如果禁用,用户无法单击它!因此,框架删除了属性。

所以,除了手动附加属性之外,我认为你没有其他选择。