Vue
A newer version of this page is available. Switch to the current version.

JavaScript/jQuery Popup - toolbarItems

Configures toolbar items.

Type:

Array<Object>

In the following code, two items are defined on the toolbar: one is plain text, another is the Button UI component:

jQuery
index.js
index.html
$(function() {
    $("#popupContainer").dxPopup({
        // ...
        toolbarItems: [{
            text: "Title",
            location: "before"
        }, {
            widget: "dxButton",
            location: "after",
            options: { 
                text: "Refresh", 
                onClick: function(e) { /* ... */ }
            }
        }]
    });
});
<div id="popupContainer">
    <p>Popup content</p>
</div>
Angular
app.component.html
app.component.ts
app.module.ts
<dx-popup ... >
    <div *dxTemplate="let data of 'content'">
        <p>Popup content</p>
    </div>
    <dxi-toolbar-item
        text="Title"
        location="before">
    </dxi-toolbar-item>
    <dxi-toolbar-item
        widget="dxButton"
        location="after"
        [options]="{
            text: 'Refresh',
            onClick: refresh
        }">
    </dxi-toolbar-item>
</dx-popup>
import { Component } from '@angular/core';

@Component({
    selector: 'app-root',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css']
})
export class AppComponent {
    refresh () { /* ... */ }
}
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';

import { DxPopupModule } from 'devextreme-angular';

@NgModule({
    declarations: [
        AppComponent
    ],
    imports: [
        BrowserModule,
        DxPopupModule
    ],
    providers: [],
    bootstrap: [AppComponent]
})
export class AppModule { }
ASP.NET MVC Controls
Index.cshtml
@(Html.DevExtreme().Popup()
    <!-- ... -->
    .ContentTemplate(@<text>
        <p>Popup content</p>
    </text>)
    .ToolbarItems(ti => {
        ti.Add()
            .Text("Title")
            .Location(ToolbarItemLocation.Before);
        ti.Add()
            .Widget(w => w.Button()
                .Text("Refresh")
                .OnClick("refresh"))
            .Location(ToolbarItemLocation.After);
    }
)

<script type="text/javascript">
    function refresh() { /* ... */ }
</script>
Vue
App.vue
<template> 
    <DxPopup ... >
        <p>Popup content</p>
        <DxToolbarItem 
            text="Title" 
            location="before">
        </DxToolbarItem>
        <DxToolbarItem 
            widget="dxButton" 
            :options="buttonOptions" 
            location="after">
        </DxToolbarItem>
    </DxPopup>
</template>
<script>
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';

import DxPopup, { DxToolbarItem } from 'devextreme-vue/popup';

export default {
    components: {
        DxPopup
    },
    data() {
        return {
            buttonOptions: {
                text: 'Refresh',
                onClick: function(e) { /* ... */ }
            }
        }
    }
}
</script>
React
App.js
import React from 'react';
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';

import { Popup, ToolbarItem } from 'devextreme-react/popup';

class App extends React.Component {
    constructor() {
        this.buttonOptions = {
            text: 'Refresh',
            onClick: function(e) { /* ... */ }
        };
    }
    render() {
        return (
            <Popup ... >
                <p>Popup Content</p>
                <ToolbarItem 
                    text="Title" 
                    location="before">
                </ToolbarItem>
                <ToolbarItem 
                    widget="dxButton" 
                    location="after" 
                    options={this.buttonOptions}>
                </ToolbarItem>
            </Popup>
        );
    }
}
export default App;

component

An alias for the template property specified in React. Accepts a custom component. Refer to Using a Custom Component for more information.

disabled

Specifies whether the toolbar item responds to user interaction.

Type:

Boolean

Default Value: false

html

Specifies html code inserted into the toolbar item element.

Type:

String

location

Specifies a location for the item on the toolbar.

Type:

String

Default Value: 'center'
Accepted Values: 'after' | 'before' | 'center'

Use the ToolbarItemLocation enum to specify this property when the UI component is used as an ASP.NET MVC 5 Control or a DevExtreme-Based ASP.NET Core Control. This enum accepts the following values: Before, After, and Center.

options

Configures the DevExtreme UI component used as a toolbar item.

Type:

Object

options should contain the properties of the DevExtreme UI component specified in the widget property. Because of this dependency, options cannot be typed and are not implemented as nested configuration components in Angular, Vue, and React. In these frameworks, specify options with an object. We recommend that you declare the object outside the configuration component in Vue and React to prevent possible issues caused by unnecessary re-rendering.

Angular
app.component.html
app.module.ts
<dx-popup ... >
    <dxi-toolbar-item
        widget="dxCheckBox"
        [options]="{ text: 'Show IDs' }">
    </dxi-toolbar-item>
</dx-popup>
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';

import { DxPopupModule } from 'devextreme-angular';

@NgModule({
    declarations: [
        AppComponent
    ],
    imports: [
        BrowserModule,
        DxPopupModule
    ],
    providers: [ ],
    bootstrap: [AppComponent]
})
export class AppModule { }
Vue
App.vue
<template>
    <DxPopup>
        <DxToolbarItem ...
            widget="dxCheckBox"
            :options="checkBoxOptions"
        />
    </DxPopup>
</template>

<script>
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';

import DxPopup, {
    DxToolbarItem
} from 'devextreme-vue/popup';

export default {
    components: {
        DxPopup,
        DxToolbarItem
    },
    data() {
        return {
            checkBoxOptions: { text: 'Show IDs' }
        }
    }
}
</script>
React
App.js
import React from 'react';

import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';

import Popup, {
    ToolbarItem
} from 'devextreme-react/popup';

class App extends React.Component {
    checkBoxOptions = { text: 'Show IDs' };

    render() {
        return (
            <Popup ... >
                <ToolbarItem
                    widget="dxCheckBox"
                    options={this.checkBoxOptions}
                />
            </Popup>
        );
    }
}
export default App;

When using ASP.NET MVC 5 Controls or DevExtreme-Based ASP.NET Core Controls, configure the UI component with a lambda expression as follows:

Razor C#
Razor VB
@(Html.DevExtreme().Popup()
    .ToolbarItems(items => {
        items.Add().Widget(w => w
            // Instead of Button here can be any other UI component
            .Button()
            .Text("Back")
        );
    })
)
@(Html.DevExtreme().Popup() _
    .ToolbarItems(Sub(items)
        items.Add().Widget(Function(w)
            ' Instead of Button here can be any other UI component
            Return w.Button().Text("Back")
        End Function)
    End Sub)
)

render

An alias for the template property specified in React. Accepts a rendering function. Refer to Using a Rendering Function for more information.

template

Specifies a template that should be used to render this item only.

Type:

template

Template Data: undefined

The following types of the specified value are available.

  • Assign a jQuery object of the template's container.
  • Assign a DOM Node of the template's container.
  • Assign a function that returns the jQuery object or a DOM Node of the template's container.
NOTE
The dxTemplate component can not be used as a toolbarItems template.

text

Specifies text displayed for the toolbar item.

Type:

String

toolbar

Specifies whether the item is displayed on a top or bottom toolbar.

Type:

String

Default Value: 'top'
Accepted Values: 'bottom' | 'top'

Use the Toolbar enum to specify this property when the UI component is used as an ASP.NET MVC 5 Control or a DevExtreme-Based ASP.NET Core Control. This enum accepts the following values: Top and Bottom.

visible

Specifies whether or not a UI component item must be displayed.

Type:

Boolean

Default Value: true

widget

A UI component that presents a toolbar item.

Type:

String

Accepted Values: 'dxAutocomplete' | 'dxButton' | 'dxCheckBox' | 'dxDateBox' | 'dxMenu' | 'dxSelectBox' | 'dxTabs' | 'dxTextBox' | 'dxButtonGroup' | 'dxDropDownButton'

NOTE
Import the specified UI component's module when using DevExtreme modules.

When using ASP.NET MVC 5 Controls or DevExtreme-Based ASP.NET Core Controls, configure the UI component with a lambda expression as follows:

Razor C#
Razor VB
// Instead of Popup here you can use Popover
@(Html.DevExtreme().Popup()
    .ToolbarItems(items => {
        items.Add().Widget(w => w
            // Instead of Button here can be any other UI component
            .Button()
            .Text("Back")
        );
    })
)
' Instead of Popup here you can use Popover
@(Html.DevExtreme().Popup() _
    .ToolbarItems(Sub(items)
        items.Add().Widget(Function(w)
            ' Instead of Button here can be any other UI component
            Return w.Button().Text("Back")
        End Function)
    End Sub)
)