Telerik报告HTML5传递参数

时间:2013-11-04 16:35:50

标签: telerik telerik-reporting

我已经尝试过MVC助手和标准的HTML5查看器。我很好奇是否有人能够使用新的查看器成功加载包含参数的报告。我无法从Telerik获得任何反馈。

@{
    var report = new UriReportSource() { Uri = "TestReport.trdx" };
    report.Parameters.Add(new Telerik.Reporting.Parameter() { Name="UserId", Value=1234 });
    report.Parameters.Add(new Telerik.Reporting.Parameter() { Name = "UserName", Value = "Test User" });
}
@(Html.TelerikReporting().ReportViewer()
           .Id("reportViewer1")
           .ServiceUrl("/api/reports/")
           .TemplateUrl("/ReportViewer/templates/telerikReportViewerTemplate.html")
               .ReportSource(report)
           .ViewMode(ViewModes.INTERACTIVE)
           .ScaleMode(ScaleModes.SPECIFIC)
           .Scale(1.0)
           .PersistSession(false)
        )

4 个答案:

答案 0 :(得分:0)

想知道您是否已经在Telerik Reporting文档中测试过How To: Pass values to report parameters

答案 1 :(得分:0)

您需要单独声明报告数据源,然后传递它,例如

@{
       var dataSource = new UriReportSource() { Uri = "rptUncashedCheckLetter.trdx" };
        dataSource.Parameters.Add(new Telerik.Reporting.Parameter() { Name = "CheckNumber", Value = "2315527" });

    }

    @(Html.TelerikReporting().ReportViewer()
           .Id("reportViewer1")
           .ServiceUrl("/api/reports/")
           .TemplateUrl("/Reports/telerikReportViewerTemplate.html")
           .ReportSource(dataSource)
           .ViewMode(ViewModes.INTERACTIVE)
           .ScaleMode(ScaleModes.FIT_PAGE_WIDTH)
           .Scale(1.0)
           .PersistSession(false)
           )

使用MVC版本时似乎没有办法直接执行此操作。

答案 2 :(得分:0)

在.cshtml中作为标题你有 @model yourModel

然后创建您的报告:

     UriReportSource urs = new UriReportSource (){
        Uri = "Report1.trdx" 
    };
    urs.Parameters.Add("id", Model.id.ToString());
    urs.Parameters.Add("start", Model.Start.ToString());
    urs.Parameters.Add("end", Model.Stop.ToString());

    @(Html.TelerikReporting().ReportViewer()
           .Id("reportViewer1")
           .ServiceUrl("/api/reports/")
           .TemplateUrl("/ReportViewer/templates/telerikReportViewerTemplate.html")
           .ReportSource(urs)
           .ViewMode(ViewModes.INTERACTIVE)
           .ScaleMode(ScaleModes.SPECIFIC)
           .Scale(1.0)
           .PersistSession(false))

和Model.cs文件:

 public class yourModel
{
    public Guid id{ get; set; }

    public DateTime Start { get; set; }

    public DateTime Stop { get; set; }}

这就是我这样做的方式,希望它有所帮助:)

答案 3 :(得分:0)

如果设置了所有参数,很可能问题出在Newtonsoft.Json.dll中。您有问题的项目很可能引用了Newtonoft的GAC版本。为了修复检查是否仍然在GAC中安装了Newtonsoft,如果是,则将其删除。要快速修复,只需从项目中删除Newtonsoft引用,然后使用nuget添加它。