.NET ---------- 解決防止點擊多次,使數據重復提交


 

解決防止多次點擊,使數據重復提交,也就是防止二次提交

     由於趁網絡不注意,多點了幾次,發生了不可描述的事情,可以在 aps.net 的   Button 中添加以下兩個屬性

UseSubmitBehavior="false" OnClientClick="this.disabled=true;"

使用 OnClientClick 的原因是用OnClientClick的屬性來調用Javascript從而實現Disable按鈕,加入UseSubmitBehavior屬性防止點擊按鈕只執行客戶端的代碼,服務器端代碼就不執行了,值有false和 true,false表示不用客戶端方法提交,則從服務器端提交,也就是執行OnClick的事件。反之,如果是true,則從客戶端提交,忽略服務器端的事件。

 

UseSubmitBehavior屬性可以指定Button控件是使用客戶端瀏覽器的提交機制還是ASP.NET回發機制。默認情況下,此屬性的值為true,導致Button控件使用瀏覽器的提交機制。如果指定false,則ASP.NET頁面框架會將客戶端腳本添加到頁面,以將表單發布到服務器。當UseSubmitBehavior屬性為時false,控件開發人員可以使用GetPostBackEventReference方法返回Button的客戶端回發事件。GetPostBackEventReference方法返回的字符串包含客戶端函數調用的文本,可以將其插入客戶端事件處理程序中。

 

OnClientClick 和 OnClick  區別:

  OnClientClick是客戶端事件處理方法,一般采用JavaScript進行處理,可以直接在瀏覽器中運行,不跟后台發生交互。
  OnClick是服務器端事件處理方法,在服務器端,也就是IIS中運行。執行順序為:點擊按鈕->頁面回傳(PostBack)->執行Click事件綁定的方法

 

在 .NET 的 button中添加上述兩個屬性

<asp:Button ID="btnAddUpt" runat="server" Text="保存" CssClass="ttbtn" onclick="btnAddUpt_Click" UseSubmitBehavior="false" OnClientClick="this.disabled=true;" style="width:80px; display:none;" />

 

 

官方文檔:

https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.button.usesubmitbehavior?redirectedfrom=MSDN&view=netframework-4.8#System_Web_UI_WebControls_Button_UseSubmitBehavior

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM