【发布时间】:2017-02-01 19:03:02
【问题描述】:
我有一个使用 ajax 与 asp.net 和 C# 的 Web 应用程序。现在,我尝试在单击 ASP 按钮时将报告查看器从 CodeBehind(页面名称为 original.aspx)导出为 PDF 文件。一切都很完美,除非我将按钮放在 UpdatePanel 中。所以在搜索了互联网之后,我发现 Response.BinaryWrite、Response.Flush 等不适用于 UpdanePanel,除非我将按钮指定为 PostBackTrigger,然后忽略使用 UpdatePanel 的目的,因为页面有很多控件在到达导出步骤之前还有很多步骤。
所以我将用于导出到 PDF 的代码转移到另一个页面上的页面加载事件(比如说 Default.aspx)并考虑使用 Response.Redirect 到为导出页面打开一个新选项卡。
真正发生的是 PDF 会自动下载(虽然仍在原始页面 (original.aspx) 中)并且没有重定向 - 这很好 - 但 UpdateProgress被激活并且从未停止显示gif图片。继续循环。从代码中删除 UpdateProgress 时,一切都按预期运行。当按钮位于 UpdatePanel(异步而不是 PostBackTrigger)内并使用 CodeBehind 中的 Response.Redirect 时,文件被导出和下载。
是否有任何解决方案可以禁用、从后面的代码中杀死 UpdateProgress 进程,只需要一个特定点击甚至此问题的任何其他解决方案?
【问题讨论】:
标签: c# asp.net ajax updatepanel updateprogress