配置 ReportViewer 以实现异步呈现

若要配置 ReportViewer Web 服务器控件以实现异步呈现,必须设置呈现和处理模式。呈现行为由该控件的 AsyncRendering 属性指定,处理行为由 ProcessingMode 属性指定。这两个属性组合起来可定义 ASP.NET 页的呈现方式。

下表介绍了 ReportViewer 控件在不同呈现和处理模式下的行为。

属性设置

本地处理模式(LocalReport 类)

远程处理模式(ServerReport 类)

AsyncRendering = True

  • 使用 IFRAME

  • 无回发 1

  • 同步处理

  • 使用 IFRAME

  • 无回发 1

  • 异步处理

AsyncRendering = False

  • 嵌入式 HTML

  • 回发

  • 同步处理

  • 嵌入式 HTML

  • 回发

  • 同步处理

将 AsyncRendering 设置为 True 时,如果在代码中订阅了导航事件,将进行回发。但 Drillthrough 事件例外。此事件会始终回发,而不论是否已订阅事件。如果将该属性设置为 False,则不论是否已订阅事件,都将进行回发。

异步模式

将 AsyncRendering 属性设置为 True 时,ReportViewer 将在页面上的 IFRAME 内呈现报表。通过使用 IFRAME,可以加载页面的剩余部分,而不会被 ReportViewer 控件阻止。

本地和远程处理模式都使用 IFRAME 呈现报表。但是,二者在 ReportViewer 呈现进度指示器(如果启用)时的方式不同。当在本地处理报表时,只有在所有的处理工作全部完成之后,才能呈现报表的进度指示器。而如果在远程处理报表,则在服务器上处理报表的过程中,即可显示进度指示器(如果启用)。

ms252090.collapse_all(zh-cn,VS.140).gifXHTML 和 ReportViewer Web 服务器控件的注意事项

如果将 ReportViewer Web 服务器控件配置为在用 XHTML 编写的应用程序中以异步模式运行,则必须按照特定的步骤操作,才能正确显示 ReportViewer 控件。当 ReportViewer 控件使用相对高度(例如,将高度指定为可用空间的百分比)时,由于框架和 DIV 标记在 XHTML 格式的包含表中的呈现方式,该控件会折叠为零 (0) 像素的高度。可通过执行下列操作之一来避免此问题:

  • 将 ReportViewer 控件的高度显式设置为实际值,而不是百分比。

  • 将以下样式设置添加到 <head> 标记中:<style>html,body,form {height:100%}</style>。通过强制 HTML、主体以及窗体标记采用最大高度,ReportViewer 控件中使用的框架也会增至最大高度,进而从页面上显示出来。

  • 从页中删除 xhtml 文档类型。

同步模式

将 AsyncRendering 属性设置为 False 时,ReportViewer 将在页面的其余部分中将报表呈现为嵌入式 HTML。由于 HTML 采用嵌入形式,因此在处理和呈现报表时,将阻止页面的其余部分。

备注

如果报表包含文档结构图,且将以同步模式呈现,则不会显示该文档结构图。

请参见

参考

ReportViewer

ReportViewer 属性

概念

ReportViewer 的 Web.config 设置

ReportViewer Web 服务器控件和 Windows 窗体控件

将 ReportViewer 配置为进行本地处理

将 ReportViewer 配置为进行远程处理