This topic describes how to access the DashboardViewer control in a WinForms application and the ASPxDashboard control in an ASP.NET application.
Important
Before you proceed, ensure that:
- your WinForms module project references the DevExpress.Dashboard.v18.1.Win.dll and DevExpress.ExpressApp.Dashboards.Win.v18.1.dll assemblies;
- your ASP.NET module project references the DevExpress.Dashboard.v18.1.Web.dll and DevExpress.ExpressApp.Dashboards.Web.v18.1.dll assemblies.
Follow these steps in WinForms and ASP.NET module projects to access the dashboard control:
using System;
using DevExpress.DashboardWin;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Dashboards.Win;
using DevExpress.Persistent.Base;
// ...
public class WinDashboardController : ObjectViewController<DetailView, IDashboardData> {
private WinDashboardViewerViewItem dashboardViewerViewItem;
protected override void OnActivated() {
base.OnActivated();
dashboardViewerViewItem = View.FindItem("DashboardViewer") as WinDashboardViewerViewItem;
if(dashboardViewerViewItem != null) {
if(dashboardViewerViewItem.Viewer != null) {
CustomizeDashboardViewer(dashboardViewerViewItem.Viewer);
}
else {
dashboardViewerViewItem.ControlCreated += DashboardViewerViewItem_ControlCreated;
}
}
}
private void DashboardViewerViewItem_ControlCreated(object sender, EventArgs e) {
CustomizeDashboardViewer(((WinDashboardViewerViewItem)sender).Viewer);
}
private void CustomizeDashboardViewer(DashboardViewer dashboardViewer) {
dashboardViewer.AllowPrintDashboardItems = true;
}
protected override void OnDeactivated() {
if(dashboardViewerViewItem != null) {
dashboardViewerViewItem.ControlCreated -= DashboardViewerViewItem_ControlCreated;
dashboardViewerViewItem = null;
}
base.OnDeactivated();
}
}
Imports System
Imports DevExpress.DashboardWin
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Dashboards.Win
Imports DevExpress.Persistent.Base
' ...
Public Class WinDashboardController
Inherits ObjectViewController(Of DetailView, IDashboardData)
Private dashboardViewerViewItem As WinDashboardViewerViewItem
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
dashboardViewerViewItem = TryCast(View.FindItem("DashboardViewer"), WinDashboardViewerViewItem)
If dashboardViewerViewItem IsNot Nothing Then
If dashboardViewerViewItem.Viewer IsNot Nothing Then
CustomizeDashboardViewer(dashboardViewerViewItem.Viewer)
Else
AddHandler dashboardViewerViewItem.ControlCreated, AddressOf DashboardViewerViewItem_ControlCreated
End If
End If
End Sub
Private Sub DashboardViewerViewItem_ControlCreated(ByVal sender As Object, ByVal e As EventArgs)
CustomizeDashboardViewer((CType(sender, WinDashboardViewerViewItem)).Viewer)
End Sub
Private Sub CustomizeDashboardViewer(ByVal dashboardViewer As DashboardViewer)
dashboardViewer.AllowPrintDashboardItems = True
End Sub
Protected Overrides Sub OnDeactivated()
If dashboardViewerViewItem IsNot Nothing Then
RemoveHandler dashboardViewerViewItem.ControlCreated, AddressOf DashboardViewerViewItem_ControlCreated
dashboardViewerViewItem = Nothing
End If
MyBase.OnDeactivated()
End Sub
End Class
using System;
using DevExpress.DashboardWeb;
using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Dashboards.Web;
using DevExpress.Persistent.Base;
// ...
public class WebDashboardController : ObjectViewController<DetailView, IDashboardData> {
private WebDashboardViewerViewItem dashboardViewerViewItem;
protected override void OnActivated() {
base.OnActivated();
dashboardViewerViewItem = View.FindItem("DashboardViewer") as WebDashboardViewerViewItem;
if(dashboardViewerViewItem != null) {
if(dashboardViewerViewItem.DashboardControl != null) {
SetHeight(dashboardViewerViewItem.DashboardControl);
}
else {
dashboardViewerViewItem.ControlCreated += DashboardViewerViewItem_ControlCreated;
}
}
}
private void DashboardViewerViewItem_ControlCreated(object sender, EventArgs e) {
SetHeight(((WebDashboardViewerViewItem)sender).DashboardControl);
}
private void SetHeight(ASPxDashboard dashboardControl) {
dashboardControl.Height = 760;
}
protected override void OnDeactivated() {
if(dashboardViewerViewItem != null) {
dashboardViewerViewItem.ControlCreated -= DashboardViewerViewItem_ControlCreated;
dashboardViewerViewItem = null;
}
base.OnDeactivated();
}
}
Imports System
Imports DevExpress.DashboardWeb
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Dashboards.Web
Imports DevExpress.Persistent.Base
' ...
Public Class WebDashboardController
Inherits ObjectViewController(Of DetailView, IDashboardData)
Private dashboardViewerViewItem As WebDashboardViewerViewItem
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
dashboardViewerViewItem = TryCast(View.FindItem("DashboardViewer"), WebDashboardViewerViewItem)
If dashboardViewerViewItem IsNot Nothing Then
If dashboardViewerViewItem.DashboardControl IsNot Nothing Then
SetHeight(dashboardViewerViewItem.DashboardControl)
Else
AddHandler dashboardViewerViewItem.ControlCreated, AddressOf DashboardViewerViewItem_ControlCreated
End If
End If
End Sub
Private Sub DashboardViewerViewItem_ControlCreated(ByVal sender As Object, ByVal e As EventArgs)
SetHeight((CType(sender, WebDashboardViewerViewItem)).DashboardControl)
End Sub
Private Sub SetHeight(ByVal dashboardControl As ASPxDashboard)
dashboardControl.Height = 760
End Sub
Protected Overrides Sub OnDeactivated()
If dashboardViewerViewItem IsNot Nothing Then
RemoveHandler dashboardViewerViewItem.ControlCreated, AddressOf DashboardViewerViewItem_ControlCreated
dashboardViewerViewItem = Nothing
End If
MyBase.OnDeactivated()
End Sub
End Class