当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

ASP.NET中防止页面多次提交的代码实现

此处提供的代码用来实现当asp.net页面中的某个Button被点击后disable掉该页面中所有的Button,从而防止提交延时导致的多次提交。基于之前的onceclickbutton脚本.

  1. //ASP.NET中防止页面多次提交的代码:javascript
  2. < script language="javascript"> 
  3.  < !--  
  4.    
  5.  function disableOtherSubmit()  
  6.  { var obj = event.srcElement;  
  7.  var objs = document.getElementsByTagName('INPUT');  
  8.  for(var i=0; i< objs.length; i++)  
  9.  {  
  10.  if(objs[i].type.toLowerCase() == 'submit')  
  11.  {  
  12.  objs[i].disabled = true;  
  13.  }  
  14.  } }  
  15.    
  16.  //--> 
  17.  < /script>
  1. //ASP.NET中防止页面多次提交的代码:asp.net
  2. public class PreventMultiClick : System.Web.UI.Page    
  3.  {    
  4.  protected System.Web.UI.WebControls.Button Button1;    
  5.  protected System.Web.UI.WebControls.Button Button2;    
  6.  protected System.Web.UI.WebControls.LinkButton LinkButton1;    
  7.  protected System.Web.UI.WebControls.Button Button3;    
  8.      
  9.  private void Page_Load(object sender, System.EventArgs e)    
  10.  {    
  11.  this.GetPostBackEventReference(this.Button3); //保证 __doPostBack(eventTarget, eventArgument) 正确注册    
  12.  if(!IsPostBack)    
  13.  {    
  14.  System.Text.StringBuilder sb = new System.Text.StringBuilder();    
  15.  sb.Append("if (typeof(Page_ClientValidate) == 'function') { if (Page_ClientValidate() == false) { return false; }}"); //保证验证函数的执行    
  16.  sb.Append("if(window.confirm('are you sure?')==false) return false;"); //自定义客户端脚本    
  17.  sb.Append("disableOtherSubmit();"); // disable所有submit按钮    
  18.  sb.Append(this.GetPostBackEventReference(this.Button3)); //用__doPostBack来提交,保证按钮的服务器端click事件执行    
  19.  sb.Append(";");    
  20.  Button3.Attributes.Add("onclick",sb.ToString());    
  21.  }    
  22.  }    
  23.  #region Web Form Designer generated code    
  24.  override protected void OnInit(EventArgs e)    
  25.  {    
  26.  //    
  27.  // CODEGEN: This call is required by the ASP.NET Web Form Designer.    
  28.  //    
  29.  InitializeComponent();    
  30.  base.OnInit(e);    
  31.  }    
  32.      
  33.  /// < summary>   
  34.  /// Required method for Designer support - do not modify    
  35.  /// the contents of this method with the code editor.    
  36.  /// < /summary>   
  37.  private void InitializeComponent()    
  38.  {     
  39.  this.Button3.Click += new System.EventHandler(this.Button3_Click);    
  40.  this.Load += new System.EventHandler(this.Page_Load);    
  41.  }    
  42.  #endregion    
  43.  private void Button3_Click(object sender, System.EventArgs e)    
  44.  {    
  45.  System.Threading.Thread.Sleep(3000);    
  46.  Response.Write("Hello world!");    
  47.  }    
  48.  }   

此处只是disable掉所有的submit button, 我觉得其它的可提交控件也是可以通过类似的方法来disable的.

以上就是ASP.NET中防止页面多次提交的代码实现。

相关内容
赞助商链接