【问题标题】:Setting Telerik Report Parameters from Silverlight ReportViewer application从 Silverlight ReportViewer 应用程序设置 Telerik 报告参数
【发布时间】:2011-04-14 13:58:21
【问题描述】:

我有一个 Silverlight 应用程序,其中包含 Telerik ReportViewer。我想在代码中选择一个报表和参数值并将此信息传递给报表查看器。有谁知道如何做到这一点?我所能找到的只是将 Report 属性设置为报告的名称。

【问题讨论】:

    标签: silverlight parameters telerik reportviewer


    【解决方案1】:

    如果您为 ReportViewer 的 RenderBegin 事件定义了一个处理程序,您将收到一个带有名为 ParameterValues 的空 NameValueDictionary 属性的 RenderBeginEventArgs 参数。

    您可以将 {name, value} 对添加到此集合中,它们似乎在报告的参数集合中完成。

    例如,我有两个名为“InputElementID”和“ReportPeriod”的报表参数。我的 RenderBegin 处理程序如下所示:

        private void ReportViewer_RenderBegin(object sender, Telerik.ReportViewer.Silverlight.RenderBeginEventArgs args)
        {
            args.ParameterValues.Add("InputElementID", this.elementId);
            args.ParameterValues.Add("ReportPeriod", "fortnight");
        }
    

    但这会引发另一个问题:如何让报表使用新参数重新呈现自身以响应用户交互?例如,在我的例子中,我设置了一个主从页面,左侧是 RadTreeListView,右侧是 ReportViewer。每次所选项目更改时,我都需要让 ReportViewer 重新计算自身。

    ReportViewer 没有强制重新渲染的方法。并且设置它的 Report 属性没有任何作用,因为如果你改变的只是参数,那么每次的 Report 字符串都是一样的。

    当我想强制更改时,我的老生常谈的解决方案是设置 ReportServiceUri 属性。

    // No change, just forces the ReportViewer to re-render itself
    this.ReportViewer.ReportServiceUri = new Uri("../ReportService.svc", UriKind.RelativeOrAbsolute);
    

    肯定有更好的方法,但这应该能让你继续前进。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2012-03-25
    • 2013-11-15
    相关资源
    最近更新 更多