.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;
    }