这是我的情况。
我的 ASP.NET 网络表单上有一个按钮。此按钮创建一个新的浏览器窗口,指向一个包含许多隐藏字段(动态生成)的页面。此表单在 body onload 事件上将自身提交给 SQL Reporting Services。这工作正常,报告显示在这个新窗口中。
但是,现在我仍想将表单发布到 SQL 报告服务,但我想取回一个 Excel 电子表格。所以我添加了另一个隐藏输入,名称为 rs:Format 和 Excel 值。这有效,用户可以选择下载 excel 文件。
然而,他们现在被创建的额外窗口困住了。我该如何解决这个问题?我尝试在同一个窗口中创建动态表单和 POST,但随后他们看到了带有表单的(空)页面,而不是他们从中生成报告的页面。我试过关闭我创建的窗口,但我不知道在哪里放置 javascript 来执行此操作。如果我把它放在 onload 上,那么窗口会在没有提交表单的情况下关闭。
关于在这里做什么的任何想法?
编辑:我在这里所做的并不是获得所需结果的最佳方式。我最终使用 WebRequest 从 Reporting Services 获取 excel 报告,而不是发布表单,因此我根本不需要第二个窗口。