程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> ASP.NET中防止頁面多次提交的代碼實現

ASP.NET中防止頁面多次提交的代碼實現

編輯:.NET實例教程


此處提供的代碼用來實現當ASP.Net頁面中的某個Button被點擊後disable掉該頁面中所有的Button,從而防止提交延時導致的多次提交。基於之前的onceclickbutton腳本。

//ASP.Net中防止頁面多次提交的代碼:Javascript< script language=”Javascript”> < !– function disableOtherSubmit() { 
var obj = event.srcElement; 
var obJS = document.getElementsByTagName(’INPUT’); 
for(var i=0; i< obJS.length; i++) 

if(obJS[i].type.toLowerCase() == ’submit’) 

obJS[i].disabled = true; 


} //–> < /script>//ASP.NET中防止頁面多次提交的代碼:ASP.Netpublic class PreventMultiClick : System.Web.UI.Page { 
protected System.Web.UI.WebControls.Button Button1; protected System.Web.UI.WebControls.Button Button2; 
protected System.Web.UI.WebControls.LinkButton LinkButton1; protected System.Web.UI.WebControls.Button Button3; private void Page_Load(object sender, System.EventArgs e) 

this.GetPostBackEventReference(this.Button3); 
//保證 __doPostBack(eventTarget, eventArgument) 正確注冊 if(!IsPostBack) 

System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
sb.Append(”if (typeof(Page_ClIEntValidate) == ‘function’) 

if (Page_ClIEntValidate() == false) 

return false; 

}”); //保證驗證函數的執行 sb.Append(”if(window.confirm(’are you sure?’)==false) return false; “); 
//自定義客戶端腳本 sb.Append(”disableOtherSubmit(); “); 
// disable所有submit按鈕 sb.Append(this.GetPostBackEventReference(this.Button3)); 
//用__doPostBack來提交,保證按鈕的服務器端click事件執行 sb.Append(”; “); 
Button3.Attributes.Add(”onclick”,sb.ToString()); 

} #region Web Form Designer generated code override protected void OnInit(EventArgs e) 

// // CODEGEN: This call is required by the ASP.Net Web Form Designer. // InitializeComponent(); 
base.OnInit(e); 

/// < summary> /// Required method for Designer support – do not modify /// the contents of this method with the code editor. /// < /summary> private void InitializeComponent() 

this.Button3.Click += new System.EventHandler(this.Button3_Click); this.Load += new System.EventHandler(this.Page_Load); 

#endregion private void Button3_Click(object sender, System.EventArgs e) 

System.Threading.Thread.Sleep(3000); 
Response.Write(”Hello world!”); 

}

此處只是disable掉所有的submit button, 我覺得其它的可提交控件也是可以通過類似的方法來disable的.

以上就是ASP.Net中防止頁面多次提交的代碼實現。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved