ASPxDashboard.DataLoading Event
Namespace: DevExpress.DashboardWeb
Assembly:
DevExpress.Dashboard.v24.2.Web.WebForms.dll
Declaration
public event DataLoadingWebEventHandler DataLoading
Public Event DataLoading As DataLoadingWebEventHandler
Event Data
The DataLoading event's data class is DataLoadingWebEventArgs.
The following properties provide information specific to this event:
Property |
Description |
DashboardId |
Gets the identifier of the current dashboard.
|
Data |
Gets or sets data for the current data source.
|
DataId |
Gets an object data source’s unique identifier.
|
DataSourceComponentName |
Get the component name of the data source for which the event has been raised.
|
DataSourceName |
Gets the name of the data source for which the event has been raised.
|
OverwriteDataSourceProperty |
Specifies whether the DataSource and DataMember properties of the DashboardObjectDataSource are set when data is supplied in the event handler.
|
Parameters |
Provides access to parameter values passed to the object data source.
|
The DataLoading event is raised when the dashboard needs to load data from a data source assigned using the DashboardObjectDataSource. Use the event parameter’s DataLoadingEventArgs.Data property to provide data for this data source. This object should implement the IEnumerable or IListSource interface.
For other data source types (for instance, DashboardSqlDataSource or DashboardOlapDataSource), you can handle the ASPxDashboard.ConfigureDataConnection event to customize connection parameters.
Example
In this example, the ObjectDataSource.DataSource property specifies the type of a data class. The actual data for this data source is provided by handling the ASPxDashboard.DataLoading
event.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebDesigner_DataLoading.Default" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div style="position: absolute; left: 0; right: 0; top:0; bottom:0;">
<dx:ASPxDashboard ID="ASPxDashboard1" runat="server" Width="100%" Height="100%"
ondataloading="ASPxDashboard1_DataLoading">
</dx:ASPxDashboard>
</div>
</form>
</body>
</html>
using System;
using DevExpress.DashboardCommon;
using DevExpress.DashboardWeb;
namespace WebDesigner_DataLoading {
public partial class Default : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
DashboardFileStorage dashboardFileStorage = new DashboardFileStorage("~/App_Data/Dashboards");
ASPxDashboard1.SetDashboardStorage(dashboardFileStorage);
DashboardObjectDataSource objDataSource = new DashboardObjectDataSource("Object Data Source");
objDataSource.DataId = "odsSales";
objDataSource.DataSource = typeof(SalesPersonData);
DataSourceInMemoryStorage dataSourceStorage = new DataSourceInMemoryStorage();
dataSourceStorage.RegisterDataSource("objDataSource", objDataSource.SaveToXml());
ASPxDashboard1.SetDataSourceStorage(dataSourceStorage);
}
protected void ASPxDashboard1_DataLoading(object sender, DataLoadingWebEventArgs e) {
if (e.DataId == "odsSales") {
e.Data = SalesPersonData.CreateData();
}
}
}
}
using System;
using System.Collections.Generic;
using System.Threading;
namespace WebDesigner_DataLoading {
public class SalesPersonData {
public string SalesPerson { get; set; }
public int Quantity { get; set; }
public static List<SalesPersonData> CreateData() {
List<SalesPersonData> data = new List<SalesPersonData>();
string[] salesPersons = { "Andrew Fuller", "Michael Suyama",
"Robert King", "Nancy Davolio",
"Margaret Peacock", "Laura Callahan",
"Steven Buchanan", "Janet Leverling" };
var rnd = new Random();
for(int i = 0; i < 100; i++) {
SalesPersonData record = new SalesPersonData();
record.SalesPerson = salesPersons[rnd.Next(0, salesPersons.Length)];
record.Quantity = rnd.Next(0, 100);
data.Add(record);
}
return data;
}
}
}
<%@ Page Language="vb" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="WebDesigner_DataLoading.Default" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div style="position: absolute; left: 0; right: 0; top:0; bottom:0;">
<dx:ASPxDashboard ID="ASPxDashboard1" runat="server" Width="100%" Height="100%"
ondataloading="ASPxDashboard1_DataLoading">
</dx:ASPxDashboard>
</div>
</form>
</body>
</html>
Imports System
Imports DevExpress.DashboardCommon
Imports DevExpress.DashboardWeb
Namespace WebDesigner_DataLoading
Partial Public Class [Default]
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim dashboardFileStorage As New DashboardFileStorage("~/App_Data/Dashboards")
ASPxDashboard1.SetDashboardStorage(dashboardFileStorage)
Dim objDataSource As New DashboardObjectDataSource("Object Data Source")
objDataSource.DataId = "odsSales"
objDataSource.DataSource = GetType(SalesPersonData)
Dim dataSourceStorage As New DataSourceInMemoryStorage()
dataSourceStorage.RegisterDataSource("objDataSource", objDataSource.SaveToXml())
ASPxDashboard1.SetDataSourceStorage(dataSourceStorage)
End Sub
Protected Sub ASPxDashboard1_DataLoading(ByVal sender As Object, ByVal e As DataLoadingWebEventArgs)
If e.DataId = "odsSales" Then
e.Data = SalesPersonData.CreateData()
End If
End Sub
End Class
End Namespace
Imports System
Imports System.Collections.Generic
Imports System.Threading
Namespace WebDesigner_DataLoading
Public Class SalesPersonData
Public Property SalesPerson() As String
Public Property Quantity() As Integer
Public Shared Function CreateData() As List(Of SalesPersonData)
Dim data As New List(Of SalesPersonData)()
Dim salesPersons() As String = { "Andrew Fuller", "Michael Suyama", "Robert King", "Nancy Davolio", "Margaret Peacock", "Laura Callahan", "Steven Buchanan", "Janet Leverling" }
Dim rnd = New Random()
For i As Integer = 0 To 99
Dim record As New SalesPersonData()
record.SalesPerson = salesPersons(rnd.Next(0, salesPersons.Length))
record.Quantity = rnd.Next(0, 100)
data.Add(record)
Next i
Return data
End Function
End Class
End Namespace
The following code snippet (auto-collected from DevExpress Examples) contains a reference to the DataLoading event.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.
See Also