如何處理:下載文件的按鈕在事件未完成之前防止多次點擊,事件完成之後又能繼續點擊提交

這幾天真的非常不容易,搞定了一個很困難的問題。

問題:一個導出文件的按鈕,在點擊之後且事件未完成之前,不能再點擊第二次,就算點擊第二次,後臺也不能響應兩次。但是當這個事件處理完後,又可以再次點擊。

由於一般的導出功能在.net 中都是用Response,它是直接將數據輸出在客戶端頁面上了,也就是說此頁面不會再重新生成(不繼續原來的生命週期),導致點擊的事件完成之後,按鈕的樣式和事件有些就無法回到最初的狀態,這是個非常嚴重的問題。有的時候是點擊的事件完成過程中雖防止多次點擊提交,但是完成後,卻無法再點擊按鈕;有的時候按鈕完成事件能多次點擊,可是卻無法防止多次提交。

最後還是選擇在點擊按鈕之後加一個層來達到防止多次提交的目的。

頁面代碼:其中Button1是實現該效果的

注:曾經選擇用BlockUI.js來實現(被註釋掉的),發現其是在彈出下載文件的窗口之後才起反應,這就無法防止多次提交的目的,被拋棄了,一個多好的JS插件啊

 

WriteFileHandler.ashx:

 

頁面的後臺代碼:(我測試的是Button1這個按鈕,其他的按鈕我就沒測了)

 

這個層的設計好的地方就是不僅能禁止用戶點擊,而且還能再反應完後點關閉回到原來的頁面狀態

發佈了34 篇原創文章 · 獲贊 1 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章