DashboardMenuItem Class

A dashboard menu item.

Declaration

export class DashboardMenuItem

Remarks

Create a new DashboardMenuItem class instance and pass it to the ToolboxExtension.addMenuItem property to add a new item to the dashboard menu:

var customMenuItem = new DevExpress.Dashboard.DashboardMenuItem('customItem1', 'New Menu Item', 0, 20, function () { /* ... */ });
dashboardControl.findExtension('toolbox').addMenuItem(customMenuItem);

constructor(id, title, index, hotKey)

Initializes a new instance of the DashboardMenuItem class.

Declaration

constructor(id: string, title: string, index: number, hotKey: number, click?: () => void)

Parameters

Name Type Description
id string

A unique identifier of a dashboard menu item.

title string

A dashboard menu item title.

index number

A zero-based index that identifies an item's position within the dashboard menu.

hotKey number

An integer value that specifies a key code used in the keyboard shortcut.

click () => void

A function that is executed when a click occurs.

Properties

click Property

Specifies a custom function that is executed when a click occurs.

Declaration

click: () => void

Property Value

Type Description
() => void

A function that is executed when a click occurs.

Remarks

This property executes a click on a dashboard menu item as if the user manually clicked on it and handles a custom function that is invoked on a click.

data Property

Specifies data that is used by a menu item.

Declaration

data: any

Property Value

Type Description
any

An object that contains data used by a menu item.

disabled Property

Gets whether a dashboard menu item is disabled.

Declaration

disabled: ko.Subscribable<boolean>

Property Value

Type Description
Subscribable<boolean>

true, if a dashboard menu item should be disabled; otherwise, false.

Remarks

The property can accept the computed observables. To learn more, see KnockoutComputed.

For example, the function in the code below returns true when your application does not have any dashboards. In this case, the saveAsItem menu item is disabled.

function onBeforeRender(sender) {
    var dashboardControl = sender.GetDashboardControl();
    var toolbox = dashboardControl.findExtension("toolbox");

    var saveAsItem = {
        id: this.name,
        title: "Save As",
        // ... 
        disabled: ko.computed(function () { return !dashboardControl.dashboard(); })
    }
    toolbox.addMenuItem(saveAsItem);
}

hasSeparator Property

Specifies whether a dashboard menu item has a separator.

Declaration

hasSeparator: boolean

Property Value

Type Description
boolean

true, if a dashboard menu item has a separator; otherwise, false.

hotKey Property

Specifies a code of the key used in the keyboard shortcut. This shortcut allows you to invoke the current menu item.

Declaration

hotKey: number

Property Value

Type Description
number

An integer value that specifies a key code.

Remarks

You can use keyboard shortcuts to execute the dashboard menu commands. In the Web Dashboard, the ALT key is used as a modifier key to create a shortcut. To create a shortcut, assign the code of the required key to the hotKey property.

The table below shows the Web Dashboard's default shortcuts and related hotKey property values:

Menu Item Shortcut Key code
New... Alt+N 78
Open Alt+O 79
Save... Alt+S 83
Data Sources Alt+A 65
Title Alt+T 84
Currency Alt+C 67
Parameters Alt+P 80

The following example demonstrates the code of a custom menu item which can be invoked using the Alt+I hotkey combination:

function onBeforeRender(sender, args) {
    var dashboardControl = sender.GetDashboardControl();
    var toolbox = dashboardControl .findExtension('toolbox');

    var newMenuItem = {
        title: "Custom Menu Item",
        // ... 
        hotKey: 73        
    }
    toolbox.addMenuItem(newMenuItem);
}

id Property

Specifies a unique identifier of a dashboard menu item.

Declaration

id: string

Property Value

Type Description
string

A string value that is a menu item's unique identifier.

Remarks

Use the id property value to address to the dashboard menu item by id.

The following code snippet shows you how to remove the Open... item from the dashboard menu.

function onBeforeRender(sender, args) {
    var dashboardControl = sender.getDashboardControl();
    var toolbox = dashboardControl.findExtension('toolbox');

    // Removes the dashboard menu item by its id. 
    toolbox.removeMenuItem("open-dashboard");
}

index Property

Specifies the position of the dashboard menu item within the dashboard menu.

Declaration

index: number

Property Value

Type Description
number

A zero-based integer specifying the position of the current dashboard menu item.

Remarks

The following table illustrates indexes of the dashboard menu items.

Menu Item Index
New... 105
Open... 108
Save 110
Data Sources 210
Title 220
Currency 230
Parameters 240
Color Scheme 250

selected Property

Specifies whether the dashboard menu item is selected.

Declaration

selected: ko.Subscribable<boolean>

Property Value

Type Description
Subscribable<boolean>

true, if the dashboard menu item is selected; otherwise, false;

template Property

Specifies a knockout template for the extension.

Declaration

template: string

Property Value

Type Description
string

A string value that is an id of the knockout template.

Remarks

The code sample below shows you how to create a sample template for the dashboard menu item using the knockout ''template'' binding. This template has a "sample-form" id and consists of a text box and button.

<script type="text/html" id="sample-form">
    <div>Dashboard Name:</div>
    <div style="margin: 10px 0" data-bind="dxTextBox: { value: newName }"></div>
    <div data-bind="dxButton: { text: 'Save', onClick: saveAs }"></div>        
</script>

To use this template for a dashboard menu item, assign the id of the template to the template property.

To learn more about knockout templates, refer to Knockout Documentation.

title Property

Specifies a dashboard menu item title.

Declaration

title: string

Property Value

Type Description
string

A string value that is a dashboard menu item title.