#c# #silverlight #telerik-reporting
#c# #silverlight #telerik-отчетность
Вопрос:
Я передаю параметры таким образом:
public PrintReport()
{
InitializeComponent();
this.ReportViewer1.RenderBegin = new Telerik.ReportViewer.Silverlight.RenderBeginEventHandler(ReportViewer1_RenderBegin);
}
void ReportViewer1_RenderBegin(object sender, Telerik.ReportViewer.Silverlight.RenderBeginEventArgs args)
{
args.ParameterValues["ObjectTypeId"] = 40;
args.ParameterValues["Page"] = 1;
args.ParameterValues["PageSize"] = 10;
}
И на сервере я делаю это:
public partial class ObjectInstancesReport : Telerik.Reporting.Report
{
private IEnumerable<ObjectInstance> _objectInstances;
public ObjectInstancesReport()
{
InitializeComponent();
var objectTypeId = this.ReportParameters["ObjectTypeId"].Value == null ? 40 : (int)this.ReportParameters["ObjectTypeId"].Value;
var searchText = (string)this.ReportParameters["SearchText"].Value;
var page = this.ReportParameters["Page"].Value == null ? 1 : (int)this.ReportParameters["Page"].Value;
var pageSize = this.ReportParameters["PageSize"].Value == null ? 20 : (int)this.ReportParameters["PageSize"].Value;
но я получаю только нулевые значения
Ответ №1:
Нашел ответ, параметры недоступны в конструкторе, нужно использовать это:
public ObjectInstancesReport()
{
//
// Required for telerik Reporting designer support
//
InitializeComponent();
table1.ItemDataBinding = new EventHandler(table1_ItemDataBinding);
this.DataSource = null;
this.Report.NeedDataSource = new EventHandler(Report_NeedDataSource);
}
void Report_NeedDataSource(object sender, EventArgs e)
{
var objectTypeId = this.ReportParameters["ObjectTypeId"].Value == null ? 1 : Convert.ToInt32(this.ReportParameters["ObjectTypeId"].Value);
var searchText = (string)this.ReportParameters["SearchText"].Value;
var page = this.ReportParameters["Page"].Value == null ? 1 : Convert.ToInt32(this.ReportParameters["Page"].Value);
var pageSize = this.ReportParameters["PageSize"].Value == null ? 20 : Convert.ToInt32(this.ReportParameters["PageSize"].Value);