我有一个<asp:button />
生成 PDF 报告的文件。我想使用 jQuery BlockUI 来显示一条消息:生成报告..
使用:Response.BinaryWrite
然后我将文件发送给用户,使其在浏览器中显示为文件下载。
我不能$.unblockUI();
开火。一旦文件下载开始或完成或被取消,我希望它消失。目前它从来没有.. 就好像页面没有重新加载一样,我已经点击了服务器,但它返回了相同的页面。
我尝试过的事情:
- 将JS中的变量
document.ready()
设置为true,如果设置为true,它将调用一个函数。这不起作用,因为即使我更改了代码中的变量,它也不会更改发送到客户端的 HTML。 - 这种事情:
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function() { $.unblockUI; }); //register with Microsoft way $(document).ajaxStop($.unblockUI); //double the insurance and register with jquery way
永远不会被调用..
这可以通过更新面板来实现吗?
有什么想法吗?
如果它有帮助:
Response.AddHeader("Content-Disposition", "attachment;filename=""" & ShortFilename & """")
Response.AddHeader("Content-Length", byteArray.Length)
Response.BinaryWrite(byteArray)
Response.Flush()
Response.End()
我可以明白为什么这不起作用,无论如何页面都没有刷新,只是有一个响应流被发送到浏览器,但肯定有一个事件我可以锁定?