New to Telerik Reporting? Download free 30-day trial
How to Bind to a DataView
The following example illustrates how to use a DataView as the source for an ObjectDataSource component.
The sample code below shows how to pass a DataView object to the DataSource property of the ObjectDataSource component. DataView is usually used when we want to work only with a subset of data from the DataTable. Additionally a sample calculated field is added that can be used in the report definition in the same way as a regular field.
void Form3_Load(object sender, EventArgs e) { // Creating and configuring the ObjectDataSource component: var objectDataSource = new Telerik.Reporting.ObjectDataSource(); objectDataSource.DataSource = GetData("Name LIKE 'Mountain%'"); // GetData returns a DataView with the specified row filter. objectDataSource.CalculatedFields.Add(new Telerik.Reporting.CalculatedField("FullName", typeof(string), "=Fields.Name + ' ' + Fields.ProductNumber")); // Adding a sample calculated field. // Creating a new report var report = new Report1(); // Assigning the ObjectDataSource component to the DataSource property of the report. report.DataSource = objectDataSource; // Use the InstanceReportSource to pass the report to the viewer for displaying var reportSource = new Telerik.Reporting.InstanceReportSource(); reportSource.ReportDocument = report; // Assigning the report to the report viewer. reportViewer1.ReportSource = reportSource; // Calling the RefreshReport method in case this is a WinForms application. reportViewer1.RefreshReport(); } static DataView GetData(string rowFilter) { const string connectionString = "Data Source=(local)\\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=True"; string selectCommandText = "SELECT Name, ProductNumber FROM Production.Product;"; SqlDataAdapter dataAdapter = new SqlDataAdapter(selectCommandText, connectionString); DataTable dataTable = new DataTable(); dataAdapter.Fill(dataTable); DataView dataView = dataTable.DefaultView; dataView.RowFilter = rowFilter; // View only those records that match a certain criteria. return dataView; }