如何在详细空间中传递Telerik报表文本框中的参数值

时间:2013-06-15 10:05:52

标签: asp.net telerik telerik-reporting

我使用Telerik报告我的aspx项目,在这个项目中我希望用户可以设置一些报告项目。为了实现这个目标我使用参数和创建参数如pic 1和图2中的参数属性,我在我的报告中使用它,如图3,但至少当我运行我的项目时,我看到图4我的问题是: 我的代码是错误的,当我使用参数加载并在参数区域中显示时,如何在报表空间中设置我的报表项目如何在报表的详细空间中显示它们?我的代码中有什么问题吗?enter image description here 这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using schduleing_report;//its my dll report

namespace telerikreporttest
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Report2 report = new Report2();

            var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
            instanceReportSource.ReportDocument = new schduleing_report.Report2();
            instanceReportSource.Parameters.Add("param", "hi it work");
            this.ReportViewer1.ReportSource = instanceReportSource;

            instanceReportSource.Parameters.Add("testparam", "textbox2 is work too");

            ReportViewer1.RefreshReport();

        }
    }
}

1 个答案:

答案 0 :(得分:2)

当您定义了第一个参数,即“param”时,您已选择MultiValue = True。因此,当您将参数的值直接读入文本框时 - 它会说出对象数组的类型。多值将使文本框接受多个值。

相反,如果您设置MultiValue = false,则参数将始终只保留1个值,然后它将在报表上显示正确的值。

如果您需要在param参数上使用MultiValue = true - 那么请执行以下操作以将文本放入报告的文本框中:

  • 在设计器中 - 右键单击​​文本框。选择表达
  • 在编辑表达式窗口中 - 添加以下表达式 - = Join(“,”,Parameters.param.Value)

运行报告,现在您将正确的文本设置为文本框的值。

Join()函数有2个参数。第一个是分隔符字符串,第二个是包含需要连接的值的对象数组。因此,当MultiValue设置为true时,参数值是object []的参数值。因此,您需要使用join()函数将其转换为文本格式。

希望这有帮助。