ReportViewer高度问题。隐藏滚动条

时间:2009-09-04 23:29:25

标签: reporting-services reportviewer

我正在使用MSSQL 2005 Reporting Services,在这种情况下,我需要使用ReportViewer控件在ASP.NET页面上显示一些报告(我想这是唯一的方法,对吧?)。

问题是我无法使属性SizeToReportContent起作用。显示报告时,我得到一个垂直滚动条,因为报告太大。它看起来像一个iframe窗口。 在谷歌搜索它似乎是一个错误。可以通过将AsyncRendering设置为false来修复,但我不希望这样。我需要另一种解决方案。

我想知道在加载报告后是否可以使用JavaScript在报表元素上设置高度?

或者你知道另一个解决方案吗?这真令人讨厌。

提前致谢。

4 个答案:

答案 0 :(得分:4)

您可以使用javascript设置高度并保持Async = true。我现在在2008版本上使用它。这是我使用的代码:

<script language="JavaScript" type="text/JavaScript">
    function doResize() {
        var viewer = document.getElementById("<%=ReportViewer1.ClientID %>");
        var htmlheight = document.documentElement.clientHeight; 
        viewer.style.height = (htmlheight - 150) + "px";
    }

    window.onresize=function resize()
    { 
        doResize();
    }
</script>

<rsweb:ReportViewer ID="ReportViewer1" BackColor="#f2f2f2" 
    InternalBorderStyle="Solid" InternalBorderColor="Gray" ProcessingMode="Remote" 
    AsyncRendering="true" Width="100%" runat="server" 
    meta:resourcekey="ReportViewer1Resource1">
    <ServerReport  />        
</rsweb:ReportViewer>

<script language="JavaScript" type="text/JavaScript">
    doResize();
</script>

然而,这不适用于VS2010 ReportViewer。我正试图找到解决方案。

答案 1 :(得分:1)

我无法完全回想起要走哪条路 - 但您需要将ReportViewer从Asynch更改为Synch渲染。我大约3年前处理过这个问题,认为这就是我们所做的。

答案 2 :(得分:1)

今天与2010年报告查看器陷入同样的​​问题。这看起来效果很好......

  <style type="text/css">
        .fixScrollBarBug div div
        {
            overflow: visible;
        }

        .fixScrollBarBug div div div
        {
            overflow: hidden;
        }
    </style>

<rsweb:reportviewer ID="reportMonthlyReport" runat="server" ProcessingMode="Remote"
      CssClass="fixScrollBarBug"  AsyncRendering="false" SizeToReportContent="true"/>

答案 3 :(得分:0)

这可以通过与Visual Studio 2010 beta 2捆绑在一起的ReportViewer解决:

http://blogs.msdn.com/brianhartman/archive/2010/01/21/asyncrendering-and-all-the-baggage-that-comes-with-it.aspx

也就是说,我尝试更换新版本,并遇到了大量新的,令人兴奋的,不同的跨浏览器问题。它可能适用于您尝试做的事情。