asp.net中如何防止使用者重複點擊提交按鈕

來源:互聯網
上載者:User

標籤:net   div   字串包含   sum   rip   archive   code   read   多次   

asp.net 中防止因為網速慢等影響互動的問題導致使用者可能點擊多次提交按鈕,從而導致資料庫中出現多條重複的記錄,經過親自驗證在網上找的方法,找到兩個切實可行的方法:
第一種方法1.
頁面前台按鈕:

<asp:Button ID="btnSumbit" runat="server" Text="提交" onclick="btnSumbit_Click" />

在後台Page_load事件中添加

btnSumbit.Attributes.Add("onclick", "this.disabled=true;" +this.ClientScript.GetPostBackEventReference(btnSumbit, ""));

在按鈕點擊事件中加入:

 System.Threading.Thread.Sleep(5000);//延遲5秒鐘 

這個五秒鐘不是定值,你可以根據自己的情況而定

第二種方法:

頁面前台按鈕:

 <asp:Button ID="btnSumbit" runat="server" UseSubmitBehavior="false" OnClientClick="this.value=‘正在提交‘;this.disabled=true;"    Text="提交" onclick="btnSumbit_Click" /> 

注意這個UseSubmitBehavior 屬性
後台就沒有什麼要添加的了。

好了,說了上面的方法,有幾個問題,第一

btnSumbit.Attributes.Add("onclick", "this.disabled=true;" +this.ClientScript.GetPostBackEventReference(btnSumbit, ""));

這句話有什麼作用,什麼意思呢

第二:

UseSubmitBehavior 屬性 什麼意思呢

希望高手解答,thanks

在網上百度了一下,找到了這樣的解釋:

<W3school的解釋

UseSubmitBehavior 屬性規定按鈕控制項使用用戶端瀏覽器內建的提交功能,還是使用 ASP.NET 的 postback 機制。

該屬性被設定為 TRUE,如果控制項使用瀏覽器的提交機制。否則為 FALSE。預設值是 TRUE。

當設定為 FALSE 時,ASP.NET 會添加一段用戶端指令碼來回傳該表單。

當 UseSubmitBehavior 屬性為 false 時,控制項開發人員可以使用 GetPostBackEventReference 方法來返回 Button 的用戶端回傳事件。GetPostBackEventReference 方法返回的字串包含用戶端函數調用的文本,可以插入到用戶端事件處理常式中。

<其他的一些

Button的UseSubmitBehavior屬性設為false後它就不是執行submit的動作而是一般的Button而此時如果使用OnClientClick ="if (confirm(‘確定嗎?‘)==false) {return false;}"才會有效果

asp.net中如何防止使用者重複點擊提交按鈕

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.