Represents a group used to arrange dashboard items within a dashboard.
Namespace: DevExpress.DashboardCommon
Assembly: DevExpress.Dashboard.v19.2.Core.dll
public class DashboardItemGroup :
DashboardItem,
IMasterFilterItem,
IInteractivityOptionsProvider,
IDashboardItemContainer
Public Class DashboardItemGroup
Inherits DashboardItem
Implements IMasterFilterItem,
IInteractivityOptionsProvider,
IDashboardItemContainer
A dashboard item group arranges dashboard items within the dashboard into a separate layout group. Moreover, the dashboard item group provides the capability to manage interaction between dashboard items within and outside of the group.
To create and manage a dashboard item group in code, use the following members:
To access interactivity settings for the current DashboardItemGroup, use the InteractivityOptions property. The DashboardItemGroupInteractivityOptions object returned by this property exposes the following members.
This example demonstrates how to combine filter elements in a group and bind them to data in code.
The dashboard contains the following filter items combined in a group:
The group serve as a master filter for the Chart dashboard item.
The complete sample project How to Group Filter Elements and Bind to Data at Runtime is available in the DevExpress Examples repository.
using DevExpress.DashboardCommon;
using DevExpress.DataAccess.ConnectionParameters;
using DevExpress.DataAccess.Sql;
using DevExpress.XtraEditors;
using System;
namespace Dashboard_FilterElements_and_Groups
{
public partial class Form1 : XtraForm {
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
DashboardSqlDataSource dataSource = CreateDataSource();
dashboardViewer1.Dashboard = CreateDashboard(dataSource);
dashboardViewer1.SetMasterFilter("comboBoxDashboardItem1", "Internet Explorer");
}
private static DashboardSqlDataSource CreateDataSource()
{
DashboardSqlDataSource dataSource = new DashboardSqlDataSource();
dataSource.ConnectionParameters =
new XmlFileConnectionParameters(@"..\..\Data\WebsiteStatisticsData.xml");
SelectQuery selectQuery = SelectQueryFluentBuilder
.AddTable("Data")
.SelectColumns("Browser", "BrowserDetails", "Date", "Count")
.Build("Statistics");
dataSource.Queries.Add(selectQuery);
return dataSource;
}
private static Dashboard CreateDashboard(DashboardSqlDataSource dataSource)
{
Dashboard dashboard1 = new Dashboard();
dashboard1.DataSources.Add(dataSource);
ComboBoxDashboardItem comboBox1 = new ComboBoxDashboardItem()
{
Name = "Browser",
DataSource = dataSource,
DataMember = "Statistics",
ComboBoxType = ComboBoxDashboardItemType.Checked
};
comboBox1.FilterDimensions.Add(new Dimension("Browser"));
ListBoxDashboardItem listBox1 = new ListBoxDashboardItem()
{
Name = "Browser Version",
DataSource = dataSource,
DataMember = "Statistics"
};
listBox1.FilterDimensions.Add(new Dimension("BrowserDetails"));
listBox1.InteractivityOptions.IgnoreMasterFilters = false;
TreeViewDashboardItem treeView1 = new TreeViewDashboardItem()
{
Name = "Date",
DataSource = dataSource,
DataMember = "Statistics",
AutoExpandNodes = true
};
treeView1.FilterDimensions.AddRange(new Dimension("Date", DateTimeGroupInterval.Year),
new Dimension("Date", DateTimeGroupInterval.Quarter));
DashboardItemGroup group1 = new DashboardItemGroup()
{
Name = "Filters"
};
group1.InteractivityOptions.IsMasterFilter = true;
dashboard1.Groups.Add(group1);
group1.AddRange(comboBox1, treeView1, listBox1);
ChartDashboardItem chart1 = new ChartDashboardItem()
{
Name = "Browser Statistics",
DataSource = dataSource,
DataMember = "Statistics",
};
chart1.Arguments.Add(new Dimension("Date", DateTimeGroupInterval.MonthYear));
chart1.SeriesDimensions.AddRange(new Dimension("Browser"), new Dimension("BrowserDetails"));
chart1.Panes.Add(new ChartPane());
SimpleSeries salesAmountSeries = new SimpleSeries(SimpleSeriesType.SplineArea);
salesAmountSeries.Value = new Measure("Count");
chart1.Panes[0].Series.Add(salesAmountSeries);
dashboard1.Items.Add(chart1);
return dashboard1;
}
}
}
Imports DevExpress.DashboardCommon
Imports DevExpress.DataAccess.ConnectionParameters
Imports DevExpress.DataAccess.Sql
Imports DevExpress.XtraEditors
Imports System
Namespace Dashboard_FilterElements_and_Groups
Partial Public Class Form1
Inherits XtraForm
Public Sub New()
InitializeComponent()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim dataSource As DashboardSqlDataSource = CreateDataSource()
dashboardViewer1.Dashboard = CreateDashboard(dataSource)
dashboardViewer1.SetMasterFilter("comboBoxDashboardItem1", "Internet Explorer")
End Sub
Private Shared Function CreateDataSource() As DashboardSqlDataSource
Dim dataSource As New DashboardSqlDataSource()
dataSource.ConnectionParameters = New XmlFileConnectionParameters("..\..\Data\WebsiteStatisticsData.xml")
Dim selectQuery As SelectQuery = SelectQueryFluentBuilder.AddTable("Data").SelectColumns("Browser", "BrowserDetails", "Date", "Count").Build("Statistics")
dataSource.Queries.Add(selectQuery)
Return dataSource
End Function
Private Shared Function CreateDashboard(ByVal dataSource As DashboardSqlDataSource) As Dashboard
Dim dashboard1 As New Dashboard()
dashboard1.DataSources.Add(dataSource)
Dim comboBox1 As New ComboBoxDashboardItem() With {.Name = "Browser", .DataSource = dataSource, .DataMember = "Statistics", .ComboBoxType = ComboBoxDashboardItemType.Checked}
comboBox1.FilterDimensions.Add(New Dimension("Browser"))
Dim listBox1 As New ListBoxDashboardItem() With {.Name = "Browser Version", .DataSource = dataSource, .DataMember = "Statistics"}
listBox1.FilterDimensions.Add(New Dimension("BrowserDetails"))
listBox1.InteractivityOptions.IgnoreMasterFilters = False
Dim treeView1 As New TreeViewDashboardItem() With {.Name = "Date", .DataSource = dataSource, .DataMember = "Statistics", .AutoExpandNodes = True}
treeView1.FilterDimensions.AddRange(New Dimension("Date", DateTimeGroupInterval.Year), New Dimension("Date", DateTimeGroupInterval.Quarter))
Dim group1 As New DashboardItemGroup() With {.Name = "Filters"}
group1.InteractivityOptions.IsMasterFilter = True
dashboard1.Groups.Add(group1)
group1.AddRange(comboBox1, treeView1, listBox1)
Dim chart1 As New ChartDashboardItem() With {.Name = "Browser Statistics", .DataSource = dataSource, .DataMember = "Statistics"}
chart1.Arguments.Add(New Dimension("Date", DateTimeGroupInterval.MonthYear))
chart1.SeriesDimensions.AddRange(New Dimension("Browser"), New Dimension("BrowserDetails"))
chart1.Panes.Add(New ChartPane())
Dim salesAmountSeries As New SimpleSeries(SimpleSeriesType.SplineArea)
salesAmountSeries.Value = New Measure("Count")
chart1.Panes(0).Series.Add(salesAmountSeries)
dashboard1.Items.Add(chart1)
Return dashboard1
End Function
End Class
End Namespace