转自:http://hi.baidu.com/itman/blog/item/f3a2bc3ea3e48f
<asp:button id="btnSubmit" οnclick="btnSubmit_Click" runat="server" OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="False" />
解决重复提交:OnClientClick="this.disabled=true;this.form.submit();" UseSubmitBehavior="False"
解决方法二:
this.btnSubmit.Attributes["onclick"] = this.GetPostBackEventReference(this.btnSubmit) + ";this.disabled=true;"; //防止重复提交
Response.Write("<script>alert('上传成功,请确定返回!');window.location = '" + Request.Url + "'</script>")
<script language="javascript">
var secs = 10;
function buttonDisabled() {
window.document.csvActionForm.btnSend.disabled = true;
for(i = 1 ; i <= secs ; i ++) {
window.setTimeout("update(" + i + ")", i * 1000);
}
}
function update(num) {
if(num == secs) {
window.document.csvActionForm.btnSend.disabled = false;
}
}
</script>
在你的linkbutton的事件里,调用buttonDisabled即可。这段代码是延迟10秒。
总结:
1.提交后disable按钮一段时间
link1.attributes.add("onclick","return test()");
function test()
{
window.document.all.link1.disabled = true;
return true;
}
//执行操作
......................
string scriptString = "window.document.all.link1.disabled = false";
if(!this.IsStartupScriptRegistered("Startup"))
this.RegisterStartupScript("Startup", scriptString);
2.在数据库端更新前检查
3.重定向到本页面(ASP的方法) Response.Redirect("CureentPage.aspx")
4.用Session,把页面提交的所有状态做成Session,每次提交时检查Sesion与当前提交内容是否相同,
如果相同,就不提交(这种方法的缺点是有点占服务器端内存)