Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services ReportViewer高度问题。隐藏滚动条_Reporting Services_Reportviewer - Fatal编程技术网

Reporting services ReportViewer高度问题。隐藏滚动条

Reporting services ReportViewer高度问题。隐藏滚动条,reporting-services,reportviewer,Reporting Services,Reportviewer,我使用的是MSSQL 2005 Reporting Services,在本例中,我需要使用ReportViewer控件在ASP.NET页面上显示一些报告(我想这是唯一的方法,对吧?) 问题是我无法使属性SizeToReportContent正常工作。显示报告时,我会看到一个垂直滚动条,因为报告太大了。它看起来像一个iframe窗口。 在谷歌上搜索似乎是一个bug。可以通过将AsyncRendering设置为false来修复它,但我不希望这样。我需要另一个解决办法 我想知道在加载报表后是否可以使用

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

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

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

或者你知道另一种解决方案吗?这真让人讨厌


提前感谢。

我想不起该怎么做了,但您需要将ReportViewer从异步渲染更改为同步渲染。我大约在3年前处理过这个问题,并认为这就是我们所做的。

这应该是通过与Visual Studio 2010 beta 2捆绑的ReportViewer解决的:


也就是说,我尝试切换到新版本,但遇到了大量新的、令人兴奋的、不同的跨浏览器问题。不过,对于您尝试执行的操作,它可能已经足够好了。

您可以使用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>

函数doResize(){
var viewer=document.getElementById(“”);
var htmlheight=document.documentElement.clientHeight;
viewer.style.height=(htmlheight-150)+“px”;
}
window.onresize=函数resize()
{ 
doResize();
}
doResize();

但是,这在VS2010 ReportViewer上不起作用。我正试图找到解决方案。

今天在2010 report viewer中遇到了同样的问题。这似乎很有效

  <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"/>

.fixScrollBarBug分区
{
溢出:可见;
}
.fixScrollBarBug分区
{
溢出:隐藏;
}

但我真的希望避免这种情况。问题是,当报表呈现时,它不知道它会有多大。直到渲染完成,它才知道这一点。不过,自从我上次不得不处理这个问题以来,可能有一个java解决方案问世了。谢谢,这对我很有用。正如汤米所说,这并不理想,但如果你不知道报告有多大,你就无能为力。另一个选项是通过使用Javascript获取客户端的浏览器窗口高度来动态设置查看器高度。我想知道这些问题是否在VS2010 Beta 1附带的ReportViewer中得到了纠正,以及我是否可以在ASP.NET 3.5(VS2008)中使用这些问题?您是否碰巧找到了VS2010 ReportViewer的解决方案?