将 ReportViewer 包装在一个 div 中。在您的包装 div 中设置宽度(通常为 100%)和背景颜色(应为白色)。
这将解决后台问题。但是,使用不同的浏览器您仍然会遇到不同的问题:问题因浏览器和版本而异。
在 ReportViewer 11.0 中(您可以在 web.config 中轻松检查您的 ReportViewer 版本),即使您将宽度设置为 100%,在大多数情况下您也会在右侧看到空白区域。填充它的唯一方法是将样式“width:100%”应用于呈现的报表查看器 HTML 内的表格。
此表的 id 是ReportViewer 控件的ClientId,带有_fixedTable 后缀。例如,如果报表控件的客户端 ID 是 Container1_Container2_ReportViewer1,则将有一个 ID 为 Container1_Container2_ReportViewer1_fixedTable 的表。如果将样式应用于此表,它将占用所有空间。检查当前版本的 FF (25)、IE (10) 和 Chrome (31)。
如果您始终在同一页面中呈现报告,则 ClientId 以及固定表 ID 将始终相同,因此您可以将其添加到您的 .CSS 文件中:
#Container1_Container2_ReportViewer1_fixedTable {
width: 100%
}
如果不是这样,您可以使用这样的 CSS3 选择器:
table[id$='_fixedTable'] {
width: 100%
}
它选择所有具有以 _fixedTable 结尾的 id 的表。您使用的确切 CSS 将取决于您的特定情况,但请记住,最具体越好(仅将其应用于受影响的页面或页面,将其应用于已知容器......请记住“以”结尾检查浏览器中的所有表格)。所以你可以这样做:
<style type="text/css">
#<%=reportViewer.ClientID%>_fixedTable {
width: 100%;
}
</style>
请注意,不能保证这将解决所有浏览器的所有版本的问题。 reportViewer 的 HTML 如此复杂和棘手,势必会引发问题。旧版本的 reportViewer 存在不同的问题,需要不同的解决方案。