1

我可能会问一个非常基本的问题,对此我很抱歉。

我有一个类似于报告门户的 Web 应用程序。我有一个 ReportViewer.aspx 页面,上面有 Crystalreportviewer 控件,我使用同一个查看器来显示不同的报告。这些报告是由其他人制作的,所以我只有一个 .rpt 文件,该文件已包含在我的项目中。

我动态提供报告数据源,因此没有静态数据绑定。(也动态传递参数)

报告通常不止一页。

问题是当我移动到下一页时,有一个回发,它再次执行所有数据绑定。

如果我将报告文档对象保存在会话中并检查 IsPostback 并将其从会话中取出,它工作正常。

问题是这是否是正确的做法。因为如果我打开一个新选项卡并看到相同的报告,我最终会丢失我的第一个报告......(我可以通过做一些古怪的会话管理来避免这种情况,比如在查询字符串中传递一个 guid,然后检索正确的报告对象)但是这仍然是正确的方法吗?

任何关于它如何完成的例子都会非常棒......

干杯,

盎司

4

1 回答 1

1

好吧,您将 ReportDocument 保持在会话中,并在 PostBack 时将其绑定到 CrystalViewer。

重要的一点是在 Page_Init 而不是 Page_Load 中完成所有操作,否则当您单击下一步按钮时,多页水晶报表将卡在第 2 页上......

于 2010-05-26T15:54:43.223 回答