2012-03-09 46 views
4

我目前正在尋找一種方法來防止在ASP.NET中進行多個表單提交(即用戶多次單擊提交按鈕,導致OnClick事件同時觸發幾次) 。防止在ASP.NET中進行多個表單提交

目前,我正在做這樣的:

protected override void OnLoad(EventArgs e) 
    { 
     base.OnLoad(e); 
     Page.ClientScript.RegisterOnSubmitStatement(GetType(), "ServerForm", 
     "if (this.submitted) return false; this.submitted = true; return true;"); 
    } 

這就像同步回發一個魅力 - 在「submitted'價值將每次回發之後被提交多個復位,防止形式次,但是,這種方法不適用於AsyncPostbacks,即使用UpdatePanel,所以現在我正在尋找一個想法來實現這一點,而不必在單擊按鈕後通過JS來分離和啓用每個按鈕。

感謝,

丹尼斯

+3

簡單的JavaScript爲什麼不能禁用按鈕禁用按鈕? – 2012-03-09 10:37:49

+0

因爲我真的不想在我的頁面中使用很多JS,所以它必須爲幾個瀏覽器(嗨IE)工作,這實際上可能是一個痛苦的實現,我希望找到一個簡單的解決方案,比如因爲這可以在派生於Page的派生類中實現。 – 2012-03-09 10:39:20

回答

0
  1. 您可以檢查存在於Sys.WebForms.PageRequestManager類開始&末方法檢查異步請求。
  2. Sys.WebForms.PageRequestManager您可以修改上面的示例代碼&使用像

    document.getElementById("YouButton.ClientID").disabled = true;