我已经尝试过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)
)
答案 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添加它。