从Silverlight ReportViewer应用程序设置Telerik报表参数

| 我有一个Silverlight应用程序,其中包含Telerik ReportViewer。我想选择一个报告和代码中的参数值,然后将此信息传递给报告查看器。有谁知道如何做到这一点?我所能找到的就是将Report属性设置为报告的名称。     
已邀请:
如果为ReportViewer的RenderBegin事件定义处理程序,则会收到带有一个空的NameValueDictionary属性称为ParameterValues的RenderBeginEventArgs参数。 您可以将{name,value}对添加到此集合,它们似乎在Report的Parameters集合中完成。 例如,我有两个名为\“ 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字符串每次都相同。 我的hacky解决方案是在我想强制进行更改时设置ReportServiceUri属性。
// No change, just forces the ReportViewer to re-render itself
this.ReportViewer.ReportServiceUri = new Uri(\"../ReportService.svc\", UriKind.RelativeOrAbsolute);
肯定有更好的方法,但这应该可以帮助您。     

要回复问题请先登录注册