The requested page is not available for the requested platform. You are viewing the content for Default platform.

DashboardObjectDataSource Class

An object data source that provides data for the dashboard.

Namespace: DevExpress.DashboardCommon

Assembly: DevExpress.Dashboard.v19.2.Core.dll

Declaration

[DataAccessMetadata("All", SupportedProcessingModes = "Simple", EnableBindingToObjectDataSource = true)]
public class DashboardObjectDataSource :
    ObjectDataSource,
    IDashboardDataSource,
    IDashboardComponent,
    IComponent,
    IDisposable,
    ISupportInitialize,
    ISupportPrefix,
    IDashboardDataSourceInternal,
    IExternalSchemaConsumer,
    IFederationDataProvider,
    IFederationDataSchemaProvider
<DataAccessMetadata("All", SupportedProcessingModes:="Simple", EnableBindingToObjectDataSource:=True)>
Public Class DashboardObjectDataSource
    Inherits ObjectDataSource
    Implements IDashboardDataSource,
               IDashboardComponent,
               IComponent,
               IDisposable,
               ISupportInitialize,
               ISupportPrefix,
               IDashboardDataSourceInternal,
               IExternalSchemaConsumer,
               IFederationDataProvider,
               IFederationDataSchemaProvider

Remarks

To provide data for the DashboardObjectDataSource, assign the type of the required class to the DataSource property and set the DataMember property specifying the data member used to obtain the required data.

Important

Starting with 19.2, do not call the Fill method in your code. Instead, handle the DataLoading or AsyncDataLoading events to supply data. The DashboardObjectDataSource is filled automatically.

Handle the following events to supply the dashboard with actual data at runtime:

Platform Event
ASP.NET ASPxDashboard.DataLoading, DashboardConfigurator.DataLoading
WinForms DashboardDesigner.DataLoading, DashboardViewer.DataLoading
WinForms, in Async Mode DashboardDesigner.AsyncDataLoading, DashboardViewer.AsyncDataLoading
WPF DashboardControl.AsyncDataLoading
Any platform, not in Async Mode Dashboard.DataLoading

An object that provides data should implement the IEnumerable or IListSource interface.

Tip

You can create a custom fill service with the IObjectDataSourceCustomFillService interface, get access to the DashboardObjectDataSource configuration and use configuration parameters to modify the current data query.

Examples

The following example demonstrates how to bind a dashboard to a List object.

The quantity values are provided at runtime. The dashboard data source is added to the Dashboard.DataSources collection on the first load.

Click the Reload Data button to call the DashboardViewer.ReloadData method. It raises the DashboardViewer.DataLoading event and supplies the dashboard with updated data.

Note

The complete sample project How to Bind a Dashboard to a List of Objects is available in the DevExpress Examples repository.

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;
        }
    }
}

Inheritance

Object
MarshalByRefObject
Component
DevExpress.DataAccess.DataComponentBase
ObjectDataSource
DashboardObjectDataSource
See Also