asp.net实现点击按钮后设按钮不可用并提交
<asp:Button ID=\"Button1\" runat=\"server\" Text=\"123456\" OnClientClick=\"this.disabled=true;this.form.submit(); \" UseSubmitBehavior= \"False\" onclick=\"Button1_Click\" />
客户端加载的时候,重新将这个操作再启动
<script language=\"javascript\" type=\"text/javascript\">
function controlButton(flag) {
var btnObj = document.getElementById(\"Button1\");
btnObj.disabled = flag;
}
</script>
</head>
<body onload=\"controlButton(false);\">
后台代码:
protected void Button1_Click(object sender, EventArgs e)
{
Thread.Sleep(3000);
Response.Write(\"123213<br>\");
Response.Write(\"123213<br>\");
Response.Write(\"123213<br>\");
}
如果页面按钮很多,那么可以采用另一种方式:
后台page_load代码:
this.BtnSend.Attributes.Add(\"onclick\", this.GetPostBackEventReference(this.BtnSend) + \";this.disabled=true; \");
前台button的代码:
<asp:button id=\"BtnSend\" runat=\"server\" Width=\"80px\" ForeColor=\"White\"
Text=\"发送\" BackColor=\"#376091\" BorderColor=\"#FFFFFF\" Font-Bold=\"True\"
style=\"height: 24px\" Font-Size=\"13px\" BorderStyle=\"None\" OnClick=\"BtnSend_Click\" ></asp:button>
因为控件的this.disabled设置后,控件为禁用状态,无法在回发调用后台的事件方法,所以必须用GetPostBackEventReference先进行回调后台的事件方法后,再调用disabled=true。
ASP.NET UseSubmitBehavior 属性
定义和用法
UseSubmitBehavior 属性规定按钮控件使用客户端浏览器内建的提交功能,还是使用 ASP.NET 的 postback 机制。
该属性被设置为 TRUE,如果控件使用浏览器的提交机制。否则为 FALSE。默认值是 TRUE。
当设置为 FALSE 时,ASP.NET 会添加一段客户端脚本来回传该表单。
当 UseSubmitBehavior 属性为 false 时,控件开发人员可以使用 GetPostBackEventReference 方法来返回 Button 的客户端回发事件。GetPostBackEventReference 方法返回的字符串包含客户端函数调用的文本,可以插入到客户端事件处理程序中。
语法
<asp:Button UseSubmitBehavior=\"TRUE|FALSE\" runat=\"server\" /> 实例
下面的例子使用 ASP.NET 的 postback 机制:
<script runat=\"server\">
Sub SubmitBtn(obj As Object, e As EventArgs)
lblMsg.Text = \"Submitted using the ASP.NET postback mechanism.\"
End Sub
</script>
<form runat=\"server\">
Click the button:
<asp:button id=\"Button1\" runat=\"server\"
Text=\"Submit\" onclick=\"SubmitBtn\"
UseSubmitBehavior=\"FALSE\" />
<br />
<asp:label id=\"lblMsg\" runat=\"server\"/>
</form>