【问题标题】:'Go to Report' (drillthrough) action not working in SSRS and ASP.NET“转到报告”(钻取)操作在 SSRS 和 ASP.NET 中不起作用
【发布时间】:2010-08-11 16:00:50
【问题描述】:

我最近开始使用 SSRS 2008 和 ASP.Net。 我必须编写一份具有 3 个不同详细程度的报告。因此,我决定最好的解决方案是开发 3 个不同的报告并提供一些钻取机制以允许导航。为此,我将其中一个文本框的 'Action' 属性设置为 'Go to report' 并设置正确的 url。

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

        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() 方法缺少一些东西。

这是个问题,因为需求说明需要隐藏参数。

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

这是 ReportViewer 控件的错误还是我在这里遗漏了什么? 提前致谢。

问候,

贡萨洛。

【问题讨论】:

    标签: asp.net ssrs-2008


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多