之前也經常遇到這種問題。但是沒有去刻意研究并解決。也知道有很多解決方案。但是都沒有去親自實作。直到現在工作中出現這個棘手問題,才去尋找各種解決方案并研究。
還好網上有很多前輩的經驗。現在問題算是解決了。是以做個筆記以防後面還會遇到此種問題。雖然這個解決方法不一定很好,但是還是可以實作的。
點選一個按鈕,隻讓此按鈕的事件執行一次,防止使用者多次點選,造成多次送出資料。因為此事件的方法執行需要一段時間,如果多次點選會出現連接配接逾時的情況。我的解決方案是點選之後禁用這個按鈕,執行完方法後啟用。本以為直接設定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");