1. 程式人生 > >asp.net 防止二次提交 以及UseSubmitBehavior屬性-轉

asp.net 防止二次提交 以及UseSubmitBehavior屬性-轉

web 復制代碼 script 為什麽 pan 一個 cli 並且 註意

頁面上有一個按鈕,點擊之後提交表單,如果什麽都不管的話,用戶可以在服務器響應完成之前再次點擊,這樣就出現了二次提交,後果可大可小。

那麽我們應該防止二次點擊,就要在用戶點第一次之後馬上Disable這個按鈕。

具體:

按鈕代碼:

 <asp:Button ID="Button1" runat="server" UseSubmitBehavior="false"  
OnClick="Button1_Click" Text="Button" OnClientClick="DisableButton(this)" />

Javascript:

技術分享圖片
 <script>
        function DisableButton(b) {
            b.disabled = true;
            b.value = ‘Submitting‘;
          
        }

      
</script>
技術分享圖片

然後在後臺代碼裏的Button1_Click事件裏再做你想做的事情。

我們可以註意到這裏是用OnClientClick的屬性來調用Javascript從而實現Disable按鈕的。開始的時候,我沒有加入UseSubmitBehavior屬性,就變成了點擊按鈕只執行客戶端的代碼,服務器端代碼就不執行了。為了解決這個問題,加入了UseSubmitBehavior屬性,並且要把他的值設為false。

為什麽要設為false呢?簡單來說,false表示不用客戶端方法提交,則從服務器端提交,也就是執行OnClick的事件。反之,如果是true,則從客戶端提交,忽略服務器端的事件。具體請看MSDN:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx

asp.net 防止二次提交 以及UseSubmitBehavior屬性-轉