asp.net關於WEB端用戶重複提交問題。禁用服務器控件按鈕問題。
之前也經常遇到這種問題。但是沒有去刻意研究並解決。也知道有很多解決方案。但是都沒有去親自實現。直到現在工作中出現這個棘手問題,才去尋找各種解決方案並研究。
還好網上有很多前輩的經驗。現在問題算是解決了。因此做個筆記以防後麵還會遇到此種問題。雖然這個解決方法不一定很好,但是還是可以實現的。
點擊一個按鈕,隻讓此按鈕的事件執行一次,防止用戶多次點擊,造成多次提交數據。因為此事件的方法執行需要一段時間,如果多次點擊會出現連接超時的情況。我的解決方案是點擊之後禁用這個按鈕,執行完方法後啟用。本以為直接設置Enabled就行了,但是這樣設置後,事件直接不會執行。因為是服務器空間。其實用js也可以控製。所以現在解決如下。
protected void Page_Load(object sender, EventArgs e)
{
this.report_output.Attributes["onclick"] = this.GetPostBackEventReference(this.report_output) + ";this.disabled=true;";
this.data_output.Attributes["onclick"] = this.GetPostBackEventReference(this.data_output) + ";this.disabled=true;";
this.message.Text = "";
}
在事件方法執行後,執行以下代碼
this.report_output.Style.Remove("disabled");
this.data_output.Style.Remove("disabled");
最後更新:2017-04-02 06:51:53