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