如何防止在服务器处理完成之前用户多次点击提交按钮(转)
2010-02-04 11:06
871 查看
方法一:
代码
protected void Page_Load(object sender, EventArgs e)
{
btn.Attributes.Add("onclick", "state=true;");
StringBuilder sb = new StringBuilder();
sb.Append("if (!state) return;");
sb.Append("var button=document.getElementById('btn');");
sb.Append("button.value='Please Wait...';");
sb.Append("document.body.style.cursor='wait';");
sb.Append("button.disabled=true;");
string strScript = "<script>";
strScript = strScript + "var state=false;";
//将函数绑定到页面的onbeforeunload事件:
strScript = strScript + "window.attachEvent('onbeforeunload',function(){" + sb.ToString() + "});";
strScript = strScript + "</" + "script>";
Page.RegisterStartupScript("onbeforeunload", strScript);
}
protected void Submit_Click(object sender, EventArgs e)
{
//模拟长时间的按钮处理
System.Threading.Thread.Sleep(2000);
Response.Write("<script>alert('bbbbbb!!');" + "</" + "script>");
}
<asp:Button ID="btn" Text="Submit" OnClick="Submit_Click"
runat="server"/>方法2:
<asp:button id="btnSubmit" OnClick="Submit_Click" runat="server" OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="False"/>
方法3:
this.btnSubmit.Attributes["onclick"]=this.GetPostBackEventReference(this.btnSubmit)+";this.disabled=true;";//防止重复提交
代码
protected void Page_Load(object sender, EventArgs e)
{
btn.Attributes.Add("onclick", "state=true;");
StringBuilder sb = new StringBuilder();
sb.Append("if (!state) return;");
sb.Append("var button=document.getElementById('btn');");
sb.Append("button.value='Please Wait...';");
sb.Append("document.body.style.cursor='wait';");
sb.Append("button.disabled=true;");
string strScript = "<script>";
strScript = strScript + "var state=false;";
//将函数绑定到页面的onbeforeunload事件:
strScript = strScript + "window.attachEvent('onbeforeunload',function(){" + sb.ToString() + "});";
strScript = strScript + "</" + "script>";
Page.RegisterStartupScript("onbeforeunload", strScript);
}
protected void Submit_Click(object sender, EventArgs e)
{
//模拟长时间的按钮处理
System.Threading.Thread.Sleep(2000);
Response.Write("<script>alert('bbbbbb!!');" + "</" + "script>");
}
<asp:Button ID="btn" Text="Submit" OnClick="Submit_Click"
runat="server"/>方法2:
<asp:button id="btnSubmit" OnClick="Submit_Click" runat="server" OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="False"/>
方法3:
this.btnSubmit.Attributes["onclick"]=this.GetPostBackEventReference(this.btnSubmit)+";this.disabled=true;";//防止重复提交
相关文章推荐
- 防止在服务器处理完成之前用户多次点击提交按钮处理代码
- 防止在服务器处理完成之前用户多次点击提交按钮处理代码
- 如何处理:下载文件的按钮在事件未完成之前防止多次点击,事件完成之后又能继续点击提交
- 如何防止用户不小心多次点击按钮导致多次提交
- 【KMS】如何预防用户多次点击提交按钮
- 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理
- 防止用户多次点击提交方法一:在js中的处理
- 【asp.net中如何防止用户重复点击提交按钮】
- 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理
- 关于Asp.Net中避免用户连续多次点击按钮,重复提交表单的处理
- asp.net中如何防止用户重复点击提交按钮
- 控制服务器处理请求的数量(高并发)-防止用户重复点击导致多次请求
- 防止用户多次点击按钮导致页面被多次提交
- 防止用户连续多次点击提交请求,防止对服务器造成负担
- asp.net中如何防止用户重复点击提交按钮
- Android-如何防止用户过快频繁点击按钮(三)
- JS防止表单提交之后用户点击浏览器后退按钮再次提交
- 如何防止由于卡顿用户多次点击UINavigation push操作。
- js防止用户多次点击提交
- 防止页面在提交的过程中多次点击按钮