asp.net 防止重复提交

转自: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与当前提交内容是否相同,  
  如果相同,就不提交(这种方法的缺点是有点占服务器端内存)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值