2010-08-11 43 views
1

不工作我最近开始与2008年SSRS和ASP.Net工作。 我必须制定一份具有3个不同层次细节的报告。因此,我决定最好的解决方案是开发3个不同的报告并提供一些钻取机制以便导航。为此,我将其中一个文本框的“操作”属性设置为“转至报告”并设置正确的网址。“转到报告”(钻取)行动SSRS和ASP.NET

传递到报表的参数需要先验证。因此,为了获得灵活性和更好的用户体验,我让用户使用标准的ASP.Net控件输入参数。当我的自定义按钮“显示报告”用户CLICS下面的代码执行:

 ReportViewer2.ServerReport.ReportPath = ".. my report path .."; 
     ReportViewer2.ServerReport.ReportServerUrl = new Uri(".. my report url .."); 
     ReportParameter p1 = new ReportParameter("dateStart", dateStart.ToString()); 
     ReportParameter p2 = new ReportParameter("dateEnd", dateEnd.ToString()); 
     ReportViewer2.ServerReport.SetParameters(p1); 
     ReportViewer2.ServerReport.SetParameters(p2); 
     ReportViewer2.ServerReport.Refresh(); 

然后报告显示,但对于导航到其他报告的链接不工作。 您可能会注意到添加的参数是可见的,因此可以让我按下“查看报告”按钮,该按钮嵌入在报告查看器中。如果我这样做了,那么报告会再次呈现,然后永久正常。这就像ReportViewer.ServerReport.Refresh()方法缺少一些东西。

这是一个问题,因为该要求指出parameteres需要隐藏。

当我从内VS或报表服务器的链接工作正常执行报表,但在这种情况下,我总是必须按标准的“查看报告”按钮。

这是ReportViewer控件的错误还是我失去了一些东西? 在此先感谢。

Regards,

贡萨洛。

回答

2

报表查看器包含一个更新面板。你必须调用更新面板的更新方法预渲染的报表查看器的事件:

protected void ReportViewer2_PreRender(object sender, EventArgs e) { ((UpdatePanel)this.ReportViewer2.Controls[1]).Update(); }

+0

它的工作确定。非常感谢! – 2010-11-30 17:10:46