【发布时间】:2010-06-01 14:03:50
【问题描述】:
我在任何地方都找不到答案,这些细节让我发疯。我的任务是更新旧的应用程序,只使用 JavaScript 来处理客户端 UI 的东西。过去使用 PDF 模板生成报告并手动循环遍历数据集,基本上是填写表格,然后显示报告。这使服务器崩溃了很多很多次。
我已经更新了应用程序以使用报表服务器,以帮助使报表生成负载脱机。一切正常,除了报告返回后动画 GIF 不会停止。我用:
<span id="hiddenImg" style="display: none">
<img src="" id="animate" align="middle" alt="Loading"/>
</span>
连同以下 JavaScript:
function showDiv()
{
document.getElementById('hiddenImg').style.display ="";
setTimeout('document.images["animate"].src="images/loading.gif"',100);
}
效果很好。在服务器端,我有这样的事情:
Response.AddHeader("Content-Type", "application/" + format);
Response.AddHeader("Content-Disposition", "attachment;filename=" + "report." + format);
data = report.GetBytes(reportpath, rbFormat.SelectedValue);
Response.BinaryWrite(data);
Response.End();
data 是报表服务器返回的字节流。
唯一不起作用的是,即使在报告交付并且用户单击打开/保存/取消对话框后,动画 GIF 仍将继续播放。我怀疑是Response.End(); 调用,但即使消除线路并让服务器继续运行也不能缓解这个问题。在收到报告数据后,页面似乎没有执行任何回发,并且 .html 源显然显示的是 GIF。如果我手动回发,我会丢失打开/保存/取消对话框,并且用户没有机会显示内容。
我在这里不知所措,我已经在这几个小时了,感谢任何帮助。
【问题讨论】:
-
查看链接的问题 - 您正在寻找的功能是相同的;另外,其中一个答案中有一个有趣的解决方法。
-
好的,我阅读了上面的链接。有趣的。我认为为会话 cookie 提供 nonce 密钥的解决方案会起作用。有没有人可以参考和学习的例子?
标签: javascript asp.net reporting-services dom-events