【问题标题】:Report viewer width & background issues报告查看器宽度和背景问题
【发布时间】:2013-12-26 16:31:54
【问题描述】:

我是报告服务的新手,无法在我的 ASPX 页面上正确呈现报告。我在 MS Report viewer 10 上使用了 asp.net 4.0

应用了以下属性

AsyncRendering="true" SizeToReportContent="true" Width="100%"

我的报告采用了页面的背景色而不是白色,宽度也没有正确应用。以上是相同的屏幕截图。

任何建议表示赞赏!

【问题讨论】:

    标签: asp.net reportviewer report-viewer2010


    【解决方案1】:

    将 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 存在不同的问题,需要不同的解决方案。

    【讨论】:

    • 感谢@JotaBe,在应用上述更改后,虽然它应用了白色,但报告查看器的工具栏宽度与之前相同。
    猜你喜欢
    • 2010-10-31
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多