[英]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.