DashboardObjectDataSource Class
An object data source that provides data for the dashboard.
Namespace: DevExpress.DashboardCommon
Assembly: DevExpress.Dashboard.v18.2.Core.dll
Declaration
[DataAccessMetadata("All", SupportedProcessingModes = "Simple", EnableBindingToObjectDataSource = true)]
public class DashboardObjectDataSource :
ObjectDataSource,
IDashboardDataSource,
IDashboardComponent,
IComponent,
IDisposable,
ISupportInitialize,
ISupportPrefix,
IDashboardDataSourceInternal,
IExternalSchemaConsumer
Remarks
To provide data for the DashboardObjectDataSource, assign the type of the required class to the ObjectDataSource.DataSource property and set the ObjectDataSource.DataMember property specifying the data member used to obtain the required data. Use the ObjectDataSource.Fill method to retrieve the data from the object data source.
Raise the DataLoading events to supply the dashboard with actual data at runtime:
- ASPxDashboard.DataLoading
- DashboardConfigurator.DataLoading
- DashboardDesigner.DataLoading
- DashboardViewer.DataLoading
- Dashboard.DataLoading
- DashboardControl.AsyncDataLoading
Note that an object providing the required data should implement the IEnumerable or IListSource interface.
To learn more, see ObjectDataSource.
Example
The following example demonstrates how to bind a dashboard to a List object.
In this example, information about the sold units quantity is provided at runtime. The dashboard data source is added to the Dashboard.DataSources collection on the first load.
To update the displayed data, the DashboardViewer.ReloadData method is called. This raises the DashboardViewer.DataLoading event and allows supplying the dashboard with updated data.
Note
A complete sample project is available at https://github.com/DevExpress-Examples/how-to-bind-a-dashboard-to-a-list-object-e5171.
using System;
using System.Collections.Generic;
using System.Threading;
namespace Dashboard_BindingToList {
public class Data {
public string SalesPerson { get; set; }
public int Quantity { get; set; }
public static List<Data> CreateData() {
List<Data> data = new List<Data>();
string[] salesPersons = { "Andrew Fuller", "Michael Suyama", "Robert King", "Nancy Davolio",
"Margaret Peacock", "Laura Callahan", "Steven Buchanan", "Janet Leverling" };
for (int i = 0; i < 100; i++) {
Data record = new Data();
int seed = (int)DateTime.Now.Ticks & 0x0000FFFF;
record.SalesPerson = salesPersons[new Random(seed).Next(0, salesPersons.Length)];
record.Quantity = new Random(seed).Next(0, 100);
data.Add(record);
Thread.Sleep(3);
}
return data;
}
}
}