Updatepanel下文件导出问题
今天遇到很头疼的问题,浪费了几个小时,搞得我都快怀疑人生了,特做个记录。
功能:页面上点击一个按钮,实现Excel导出
实现:按钮添加点击事件,事件调用导出方法,输出Excel文件流,如下:

问题:点击按钮,触发事件,调用上面的方法,获取Excel二进制流,对Response进行设置,结果没有任何反应,不会下载,通过抓包请求,看到数据的确输出到前端了,咋回事呢。
好奇怪!!!!
然后各种排查,如:二进制流的排查,Response设置是否正确等,还是不行,有点烦躁呀
真的好奇怪!!!!!
然后继续排查,一如既往的尝试,流的问题、Response设置的问题,各种百度、谷歌,还是不行,有点受不了
奇怪到我怀疑人生!!!
开始找高手,拉过来捋一遍,也没解决,通过url地址直接访问以及其它页面用按钮触发下载都可以成功,就是这个页面点击按钮不行,啊啊啊啊啊啊……崩溃呀!!!!!!!!!!
冷静……,冷静……,冷静………………,肯定哪里有问题,突然想起来,这个按钮被Updatepanel包着,秒懂呀
Updatepanel下面控件,触发动作,属于异步(Ajax)操作,Ajax不支持文件导出,然后各种百度、谷歌,求证,果然是这样子。
问题终于得到解决!
现在主流的js框架,对于附件导出也都是做了特殊处理的,比如使用a标签、拼接Form表单、window.open等。
售楼框架就封装了一个Form表单的实现,在Common.js中有个CustomPost,如下:

浙公网安备 33010602011771号