我正试图在新窗口中打开水晶报告。我最终选择了一个Javascript来在新窗口中打开页面,如下所示:
ClientScript.RegisterStartupScript(this.Page.GetType(), "",
"window.open('ReportWindow.aspx?" + theQueryString + "','_blank');", true);
这很好用,新窗口打开等等。
在新窗口中,我使用此行生成报告:
contractLevelReport.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, false, "ContractLevelReport");
再一次,这有用......有点儿。在调试中它生成报告,但我捕获主题行中列出的异常。如果我通过报告显示F5(继续)。然而,当我向网络发布错误导致它挂起时。
我怀疑新窗口正在碰撞响应。这需要发生并导致它挂起。
我在几个地方尝试了以下几行。
HttpContext.Current.ApplicationInstance.CompleteRequest();
......但这似乎不起作用。
如果正在使用Response.Redirect进行调用,我可以告诉它结束当前请求,但是JavaScript窗口。打开了它。
连连呢?
谢谢!
更新
如果我遗漏了Javascript部分并且只是从当前窗口生成报告,则仍然会抛出错误(ThreadAbortException),但它会继续并显示PDF报告。
关于第二个窗口的内容以及CR如何强制响应。导致问题......只是不确定如何解决它。