dashboard-devexpress-dot-dashboardcommon-dot-dashboarditemstate.md
Gets or sets selected master filter values stored in a dashboard state.
Namespace : DevExpress.DashboardCommon
Assembly : DevExpress.Dashboard.v25.2.Core.dll
NuGet Package : DevExpress.Dashboard.Core
public List<object[]> MasterFilterValues { get; set; }
Public Property MasterFilterValues As List(Of Object())
| Type | Description |
|---|---|
| List<Object[]> |
A list of object arrays that specify selected master filter values.
|
To set master filter values (for example, a row in a Grid), create an object with an array of elements where each element is a dimension value. A number of values in the array should be the same as a number of dimensions to explicitly identify the master filter value. Values order is based on dimensions order.
View Example: How to specify a default dashboard state in code
The example illustrates how to set the master filter value if a dashboard item contains several dimensions for the ASP.NET Web Forms platform. In this example, the Grid contains two dimension columns: State and Category. To define the Grid item row, add an array with two values, for instance, “Utah” and “Bikes”.
using DevExpress.DashboardCommon;
using DevExpress.DashboardWeb;
using System;
using System.Collections.Generic;
namespace WebDashboard_ManualDashboardState {
public partial class Default : System.Web.UI.Page
{
DashboardState dashboardState = new DashboardState();
protected void Page_Load(object sender, EventArgs e) {
ASPxDashboard1.SetInitialDashboardState += ASPxDashboard1_SetInitialDashboardState;
}
protected void ASPxDashboard1_SetInitialDashboardState(object sender, SetInitialDashboardStateEventArgs e) {
var state = new DashboardState();
var itemState = new DashboardItemState("gridSalesByState");
itemState.MasterFilterValues.Add(new object[] { "Utah", "Bikes" });
state.Items.Add(itemState);
e.InitialState = state;
}
}
}
Imports DevExpress.DashboardCommon
Imports DevExpress.DashboardWeb
Imports System
Imports System.Collections.Generic
Namespace WebDashboard_ManualDashboardState
Partial Public Class [Default]
Inherits System.Web.UI.Page
Private dashboardState As New DashboardState()
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
AddHandler ASPxDashboard1.SetInitialDashboardState, AddressOf ASPxDashboard1_SetInitialDashboardState
End Sub
Protected Sub ASPxDashboard1_SetInitialDashboardState(ByVal sender As Object, ByVal e As SetInitialDashboardStateEventArgs)
Dim state = New DashboardState()
Dim itemState = New DashboardItemState("gridSalesByState")
itemState.MasterFilterValues.Add(New Object() { "Utah", "Bikes" })
state.Items.Add(itemState)
e.InitialState = state
End Sub
End Class
End Namespace
Implement the IDashboardStateService interface to manage dashboard state for ASP.NET MVC / ASP.NET Core platforms.
The following code snippet illustrates how to specify a dashboard state (such as master filter or parameter values) in code and how to apply this state when loading a dashboard for the first time. In this example, the DashboardState object holds the required dashboard state. The ASPxDashboard.SetInitialDashboardState event is used to apply the specified dashboard state when loading a dashboard.
using DevExpress.DashboardCommon;
using DevExpress.DashboardWeb;
using System;
using System.Collections.Generic;
namespace WebDashboard_ManualDashboardState
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e) {
}
protected void ASPxDashboard1_SetInitialDashboardState(object sender, SetInitialDashboardStateEventArgs e) {
e.InitialState = InitializeDashboardState();
}
public DashboardState InitializeDashboardState() {
DashboardState dashboardState = new DashboardState();
DashboardParameterState parameterState =
new DashboardParameterState("countryParameter", "USA", typeof(string));
DashboardItemState gridFilterState = new DashboardItemState("gridDashboardItem1");
gridFilterState.MasterFilterValues.AddRange(new List<object[]>() {
new string[1] { "Andrew Fuller" },
new string[1] { "Laura Callahan" }
}
);
DashboardItemState treemapDrilldownState = new DashboardItemState("treemapDashboardItem1");
treemapDrilldownState.DrillDownValues.Add("Beverages");
DashboardItemState rangeFilterState = new DashboardItemState("rangeFilterDashboardItem1");
rangeFilterState.RangeFilterState.Selection =
new RangeFilterSelection(new DateTime(2015, 1, 1), new DateTime(2016, 1, 1));
dashboardState.Parameters.Add(parameterState);
dashboardState.Items.AddRange(new List<DashboardItemState>() {
gridFilterState,
treemapDrilldownState,
rangeFilterState }
);
return dashboardState;
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
Inherits="WebDashboard_ManualDashboardState.Default" %>
<%@ Register Assembly="DevExpress.Dashboard.v17.1.Web, Version=17.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.DashboardWeb" TagPrefix="dx" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<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"
DashboardStorageFolder="~/App_Data/Dashboards"
WorkingMode="ViewerOnly"
Height="100%" Width="100%" OnSetInitialDashboardState="ASPxDashboard1_SetInitialDashboardState">
</dx:ASPxDashboard>
</div>
</form>
</body>
</html>
Imports DevExpress.DashboardCommon
Imports DevExpress.DashboardWeb
Imports System
Imports System.Collections.Generic
Namespace WebDashboard_ManualDashboardState
Partial Public Class [Default]
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Protected Sub ASPxDashboard1_SetInitialDashboardState(ByVal sender As Object, ByVal e As SetInitialDashboardStateEventArgs)
e.InitialState = InitializeDashboardState()
End Sub
Public Function InitializeDashboardState() As DashboardState
Dim dashboardState As New DashboardState()
Dim parameterState As New DashboardParameterState("countryParameter", "USA", GetType(String))
Dim gridFilterState As New DashboardItemState("gridDashboardItem1")
gridFilterState.MasterFilterValues.AddRange(New List(Of Object())() From { _
New String(0) { "Andrew Fuller" }, _
New String(0) { "Laura Callahan" } _
})
Dim treemapDrilldownState As New DashboardItemState("treemapDashboardItem1")
treemapDrilldownState.DrillDownValues.Add("Beverages")
Dim rangeFilterState As New DashboardItemState("rangeFilterDashboardItem1")
rangeFilterState.RangeFilterState.Selection = New RangeFilterSelection(New Date(2015, 1, 1), New Date(2016, 1, 1))
dashboardState.Parameters.Add(parameterState)
dashboardState.Items.AddRange(New List(Of DashboardItemState)() From {gridFilterState, treemapDrilldownState, rangeFilterState})
Return dashboardState
End Function
End Class
End Namespace
<%@ Page Language="vb" AutoEventWireup="true" CodeBehind="Default.aspx.vb"
Inherits="WebDashboard_ManualDashboardState.Default" %>
<%@ Register Assembly="DevExpress.Dashboard.v17.1.Web, Version=17.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"
Namespace="DevExpress.DashboardWeb" TagPrefix="dx" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<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"
DashboardStorageFolder="~/App_Data/Dashboards"
WorkingMode="ViewerOnly"
Height="100%" Width="100%" OnSetInitialDashboardState="ASPxDashboard1_SetInitialDashboardState">
</dx:ASPxDashboard>
</div>
</form>
</body>
</html>
To clear filters (unselect all values) of dashboard items, assign an empty array of objects to the MasterFilterValues property:
protected void ASPxDashboard1_SetInitialDashboardState(object sender, SetInitialDashboardStateEventArgs e) {
var state = new DashboardState();
// ...
var itemState = new DashboardItemState("comboBoxDashboardItem");
itemState.MasterFilterValues = new List<object[]>() { };
state.Items.Add(itemState);
// ...
e.InitialState = state;
}
Protected Sub ASPxDashboard1_SetInitialDashboardState(ByVal sender As Object, ByVal e As SetInitialDashboardStateEventArgs)
Dim state As New DashboardState()
' ...
Dim itemState As New DashboardItemState("comboBoxDashboardItem")
itemState.MasterFilterValues = New List(Of Object()) (New Object()() {})
state.Items.Add(itemState)
' ...
e.InitialState = state
End Sub
When you try to set a dashboard state in WinForms/WPF and the neutral filter mode is disabled ( UseNeutralFilterMode == false ), for the multiple master filter mode there is a difference between null and empty master filter values:
|
MasterFilterValues values
|
Behavior
| | --- | --- | |
MasterFilterValues = null
|
The control filters data by all values (all values are selected).
| |
MasterFilterValues = []
|
The control excludes all filter (no data is selected).
|
See the following topics for details on how to assign a dashboard state to a Dashboard control:
See Also