我是报道服务的新手,无法在我的ASPX页面上正确呈现报表。我已经在 MS报表查看器10上使用asp.net 4.0
应用了以下属性AsyncRendering =“true”SizeToReportContent =“true”Width =“100%”
我的报告采用了页面的背景颜色而不是采用白色,宽度也未正确应用。以上是相同的屏幕截图。
任何建议都赞赏!!
答案 0 :(得分:4)
将ReportViewer包装在div中。在包装div中设置宽度(通常为100%)和背景颜色(应为白色)。
这将解决背景问题。但是,对于不同的浏览器,您仍会遇到不同的问题:浏览器与浏览器以及版本之间存在不同的问题。
在ReportViewer 11.0中(您可以在web.config中轻松检查ReportViewer版本),即使您将宽度设置为100%,在大多数情况下您也会获得右侧的空白区域。填充它的唯一方法是将样式“width:100%”应用于渲染的报表查看器HTML中的表格。
此表的ID是ClientId
控件的ReportViewer
,后缀为_fixedTable
。例如,如果报告控件的客户端ID为Container1_Container2_ReportViewer1
,则会有一个带有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%
}
选择所有id以_fixedTable结尾的表。您使用的确切CSS将取决于您的具体情况,但请记住最具体,更好(仅将其应用于受影响的页面或页面,将其应用于已知容器...请记住“以...结尾”将检查浏览器中的所有表格。所以你可以这样做:
<style type="text/css">
#<%=reportViewer.ClientID%>_fixedTable {
width: 100%;
}
</style>
请注意,无法保证这将解决所有浏览器版本的问题。 reportViewer的HTML非常复杂和棘手,它必然会引发问题。旧版本的reportViewer存在不同的问题,需要不同的解决方案。