将值传递给报表查看器

时间:2015-07-10 04:09:28

标签: asp.net report

我有一个由reportviewer组成的aspx文件。我所拥有的报告不是表格,而是由几个textbo组成(需要一些以前的aspx值)。如何将这些值传递给报表查看器?

下面的图片是报告的设计。 enter image description here

我正在使用rdlc来创建报告。 我创建一个文本框名称为para01。 只是想知道如何从C#代码中传入报告查看器。 我正在使用VS2014网络应用程序。

1 个答案:

答案 0 :(得分:1)

如果您的值很少,则可以使用查询字符串将其传递到ReportViewer页面;即:

Me.Response.Redirect("~/yourFolder/yourReportViewerPage.aspx?" _
    & "staffname=" & txtStaffName.Text & "&" _
    & "taskName=" & txtTaskName.Text)

然后转换ReportParameter页面ReportViewer中的每个值(我通常使用Page_Load事件):

Dim parStaffName As New ReportParameter("parStaffName", Me.Request.QueryString("staffName"))
Dim parTaskName As New ReportParameter("parTaskName", Me.Request.QueryString("taskName"))

yourReportViewer.LocalReport.SetParameters(New ReportParameter() {parStaffName, parTaskName})

在报告中定义这些参数并使用以下方式阅读:

=Parameters!parStaffName.Value

这是C#代码;希望它有效!

查询字符串:

Response.Redirect("~/yourFolder/yourReportViewerPage.aspx?staffname=" + txtStaffName.Text + "&taskName=" + txtTaskName.Text);

报告参数:

ReportParameter parStaffName = new ReportParameter("parStaffName", Request.QueryString("staffName"));
ReportParameter parTaskName = new ReportParameter("parTaskName", Request.QueryString("taskName"));
yourReportViewer.LocalReport.SetParameters(new ReportParameter[] {parStaffName, parTaskName});