问题:我正试图将页面上的查询字符串中的"报表参数"值传递给已定义该参数的报表。我只是似乎无法将值一直传递到报告中。
Telerik.Reporting.Report report = new MyCustomReportLibrary.TelerikReport();
report.ReportParameters["parameterName"].Value = Request.QueryString["Id"];
ReportViewer.Report = report;
上面的语法很好,但当变量"report">由TelerikReport((构造函数创建时,它还没有参数值,当我在事后设置它时,这似乎无关紧要。即使我尝试调用ReportViewer.RefreshReport((.
我看过的地方:
- Telerik关于在Web应用程序中使用Telerik报告的文档
- Telerik社区支持
- 我还提交了一张telerik支持票,但明天是保加利亚独立日
感谢您的帮助,
Chris
我通过更改MyCustomReportLibrary.TelerikReport的构造函数使其发挥作用。希望这能帮助任何寻找答案的人。
很像这个例子Telerik论坛|将报告参数从Rad窗口传递到Telerik报告
Telerik报告代码(TelerikReport.cs(
public TelerikReport(int Id)
{
//
// Required for telerik Reporting designer support
//
InitializeComponent();
this.ReportParameters["parameterName"].Value = Id;
}
ASP.Net页面代码(ReportViewerPage.cs(
protected void Page_Load(object sender, EventArgs e)
{
Report raReport = new TelerikReport(Request.QueryString["Id"] as int);
ReportViewer1.Report = raReport;
}
我将提供另一个简单且适用于MVC的答案(2015年第3季度(。
MVC
@(Html
.TelerikReporting()
.ReportViewer()
.Id("reportViewer1")
.ServiceUrl(Url.Content("/Controllers/Reports/"))
//Setting the ReportSource Parameters overrides the default specified in the report.
.ReportSource(new TypeReportSource() { TypeName = @ViewBag.TypeName, Parameters = { new Parameter("startDate", Request.QueryString["startDate"]) } })
//To make the query string parameter optional, try:
//.ReportSource(new TypeReportSource() { TypeName = @ViewBag.TypeName, Parameters = { Request.QueryString["startDate"] != null ? new Parameter("startDate", Request.QueryString["startDate"]) : new Parameter() } })
.ViewMode(ViewMode.Interactive)
.ScaleMode(ScaleMode.Specific)
.Scale(1.0)
.PersistSession(false)
.PrintMode(PrintMode.AutoSelect)
)
这份报告没有什么特别之处。
public TelerikApplicationReport()
{
InitializeComponent();
}
这是另一个例子。将参数直接传递到报表。
在Asp.net页面
protected void Button1_Click(object sender, EventArgs e)
{
var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
instanceReportSource.ReportDocument = new SampleReport(TextBox1.Text);
this.ReportViewer1.ReportSource = instanceReportSource;
}
报告中
public partial class SampleReport : Telerik.Reporting.Report
{
public SampleReport(string invoiceNumber)
{
InitializeComponent();
}
}