簡體   English   中英

按鈕屬性在單擊事件中不會更改

[英]Button properties not changing on click event

這可能很簡單,但是,當頁面有效時,按鈕文本和啟用狀態不會更改。

我在Web表單上有一個按鈕,在save click事件上有以下代碼:

if (Page.IsValid) {
    btnSave.Enabled = false;
    btnSave.Text = "Saving, please wait...";

    // Save method, etc...        
}

您首先要設置“按鈕啟用”狀態和“文本”,然后才能運行保存方法。

所有這些都發生在服務器端,在由Button單擊引起的Request中。 除非運行Save方法,否則客戶端瀏覽器將不會收到完整的響應。

如果要在運行Save方法之前更改Button,則必須在客戶端使用JavaScript進行更改。

我猜您正在嘗試禁止用戶在處理過程中反復單擊“保存”按鈕。

但是代碼是寫在服務器端的,瀏覽器只會在最后獲得響應。 要實現您要執行的操作,您需要禁用客戶端上的按鈕。

這可以使用javascript並處理按鈕的onClientClick事件來完成。

請訪問以下網址閱讀: http ://encosia.com/disable-a-button-control-during-postback/

<asp:Button runat="server" ID="BtnSubmit" 
  OnClientClick="this.disabled = true; this.value = 'Submitting...';" 
  UseSubmitBehavior="false" 
  OnClick="BtnSubmit_Click" 
  Text="Submit Me!" />

注意:這將適用於完整的回發,而不適用於啟用Ajax的情況。

編輯:試試這個

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

<script>
        function DisableAfterValidation(btn) {

            if (typeof (Page_ClientValidate) == 'function') {
                var isPageValid = Page_ClientValidate();
                if (isPageValid) {                        
                    btn.disabled = true;
                    btn.value = "please wait...";
                }
            }
        }
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM