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


這是一個非常普通的需求。

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

那么我們應該防止二次點擊,就要在用戶點第一次之后馬上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


免責聲明!

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



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