如何处理:下载文件的按钮在事件未完成之前防止多次点击,事件完成之后又能继续点击提交

这几天真的非常不容易,搞定了一个很困难的问题。

问题:一个导出文件的按钮,在点击之后且事件未完成之前,不能再点击第二次,就算点击第二次,后台也不能响应两次。但是当这个事件处理完后,又可以再次点击。

由于一般的导出功能在.net 中都是用Response,它是直接将数据输出在客户端页面上了,也就是说此页面不会再重新生成(不继续原来的生命周期),导致点击的事件完成之后,按钮的样式和事件有些就无法回到最初的状态,这是个非常严重的问题。有的时候是点击的事件完成过程中虽防止多次点击提交,但是完成后,却无法再点击按钮;有的时候按钮完成事件能多次点击,可是却无法防止多次提交。

最后还是选择在点击按钮之后加一个层来达到防止多次提交的目的。

页面代码:其中Button1是实现该效果的

注:曾经选择用BlockUI.js来实现(被注释掉的),发现其是在弹出下载文件的窗口之后才起反应,这就无法防止多次提交的目的,被抛弃了,一个多好的JS插件啊

 

WriteFileHandler.ashx:

 

页面的后台代码:(我测试的是Button1这个按钮,其他的按钮我就没测了)

 

这个层的设计好的地方就是不仅能禁止用户点击,而且还能再反应完后点关闭回到原来的页面状态

发布了34 篇原创文章 · 获赞 1 · 访问量 15万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章