.net 页面中,需有有一个button按钮,点击后,设置本按钮的disabled属性,并触发服务器端事件。代码如下:
html:
<form id="form1" runat="server">
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" OnClientClick="this.disabled=true;return true;" />
</form>
c#
protected void Button1_Click(object sender, EventArgs e)
{ }
但是问题来了,他只触发了客户端事件,服务器端事件压根就没有执行。
查了一下资料。添加属性UseSubmitBehavior="false" 后可以实现先触发客户端事件,设置disabled属性,再执行服务器端事件。
但是执行完服务器端事件后,属性disabled 又重新变成 enabled了。
最后为了达到要求,索性直接在服务器端设置性enabled。然后客户端可以通过某一必填项,触发,再清除button的属性disabled
完整代码如下:
js代码:
function display1()
{
document.getElementById("<%=Button1.ClientID%>").removeAttribute("disabled");
}
html代码:
<form id="form1" runat="server">
<input type="text" runat="server" οnchange="display1()" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button"/>
</form>
c#代码:
protected void Button1_Click(object sender, EventArgs e)
{
this.Button1.Enabled = false;
}