【问题标题】:ReportViewer height issue. Hiding scrollbarsReportViewer 高度问题。隐藏滚动条
【发布时间】:2009-09-04 23:29:24
【问题描述】:

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

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

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

或者您知道其他解决方案吗?这真的很烦人。

提前致谢。

【问题讨论】:

  • 我想知道这些问题是否已在随 VS2010 Beta 1 一起提供的 ReportViewer 中得到纠正,是否可以在 ASP.NET 3.5 (VS2008) 中使用?

标签: reporting-services reportviewer


【解决方案1】:

您可以使用 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 上不起作用。我正在尝试找出解决方案。

【讨论】:

  • 你有没有碰巧找到 VS2010 ReportViewer 的解决方案?
【解决方案2】:

我不完全记得要走哪条路 - 但您要么需要将 ReportViewer 从异步渲染更改为同步渲染。我大约在 3 年前处理过这个问题,并认为这就是我们所做的。

【讨论】:

  • 但我真的很想避免这种情况。
  • 问题是当报表被渲染时它不知道它会有多大。在渲染完成之前,它不知道这一点。不过,自从我上次不得不处理这个问题以来,可能已经出现了一个 java 解决方案。
  • 谢谢,这对我有用。就像汤米说的那样——这并不理想,但如果你不知道报告有多大,你就无能为力了。另一种选择是通过使用 Javascript 获取客户端的浏览器窗口高度来动态设置查看器高度。
【解决方案3】:

今天在使用 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"/>

【讨论】:

    【解决方案4】:

    这应该通过与 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

    也就是说,我尝试换到新版本,但遇到了大量新的、令人兴奋的和不同的跨浏览器问题。不过,它可能对您正在尝试做的事情足够好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 2013-03-25
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多