天天看點

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");

繼續閱讀