您的位置:首页 > 编程语言 > ASP

asp.net 防止重复提交

2008-04-29 15:48 381 查看
转自:http://hi.baidu.com/itman/blog/item/f3a2bc3ea3e48f

<asp:button id="btnSubmit" onclick="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与当前提交内容是否相同,
如果相同,就不提交(这种方法的缺点是有点占服务器端内存)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: