我怎么知道.aspx电话什么时候结束?

时间:2008-10-24 20:27:05

标签: asp.net javascript flex

我正在构建一个Flex应用程序,该应用程序在使用SQL Reporting Services构建PDF报告的同一Web服务器上调用.aspx页面。生成报告时,它会提示用户打开或保存PDF。

我们正在尝试找到一种方法来显示进度条,让用户知道他们正在构建他们请求的报告,然后在报告完成后销毁进度条。

我尝试使用JavaScript打开一个新窗口并尝试捕获窗口关闭时,以及尝试XMLHTTPRequest,但似乎没有任何工作。

有人有任何建议吗?

3 个答案:

答案 0 :(得分:1)

有两个选项:

  1. 使用Flex中的FileReference类以编程方式调用您的aspx文件。您可以通过收听其活动来跟踪Flex内部呼叫的进度。但是用户只能保存PDF,而不能打开它。
  2. 有一个中间HTML页面,显示加载图标,然后刷新自己的PDF生成ASPX页面。对您的aspx URL进行编码以及参数等,并将其设置为此中间页面的参数,以便它知道要加载的内容。

答案 1 :(得分:0)

如果您无法控制页面以便能够在其上放置JavaScript以访问URL(或回调父/开启者),那么您可能会考虑将自己的aspx页面添加到主机中一个ReportViewer控件,并在其中显示报表。这将要求您创建一个带有页面和web.config的.NET网站 - 您不需要做更多的事情,只需让它接收您的报告需要的任何参数,并且它可以通过inline-to-the来实现。 -aspx代码,而不是需要深入的.NET知识。

或者,您可以点击SS-RS API并直接呈现报告。在这里,您可以使用SS-RS API站点上的报告参数创建一个URL来接受。我想,虽然我不确定,SS-RS UI在幕后使用API​​本身。默认情况下,API托管在名为“reportserver”的站点中 - 您可能会在呈现报表时嗅探HTTP流量,以便开始使用您需要访问的URL。

答案 2 :(得分:0)

此处未提及的另一个选项是创建.Net webservice,将其添加到flex项目中,当它到达结果处理程序时,您知道该文件是在该点创建的。