JavaScript/jQuery Popover - 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() {
    $("#popoverContainer").dxPopover({
        // ...
        toolbarItems: [{
            text: "Title",
            location: "before"
        }, {
            widget: "dxButton",
            location: "after",
            options: { 
                text: "Refresh", 
                onClick: function(e) { /* ... */ }
            }
        }]
    });
});
<div id="popoverContainer">
    <p>Popover content</p>
</div>
Angular
app.component.html
app.component.ts
app.module.ts
<dx-popover ... >
    <div *dxTemplate="let data of 'content'">
        <p>Popover 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-popover>
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 { DxPopoverModule } from 'devextreme-angular';

@NgModule({
    declarations: [
        AppComponent
    ],
    imports: [
        BrowserModule,
        DxPopoverModule
    ],
    providers: [],
    bootstrap: [AppComponent]
})
export class AppModule { }
ASP.NET MVC Controls
Index.cshtml
@(Html.DevExtreme().Popover()
    <!-- ... -->
    .ContentTemplate(@<text>
        <p>Popover 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> 
    <DxPopover ... >
        <p>Popover content</p>
        <DxToolbarItem 
            text="Title" 
            location="before">
        </DxToolbarItem>
        <DxToolbarItem 
            widget="dxButton" 
            :options="buttonOptions" 
            location="after">
        </DxToolbarItem>
    </DxPopover>
</template>
<script>
import 'devextreme/dist/css/dx.light.css';

import DxPopover, { DxToolbarItem } from 'devextreme-vue/popover';

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

import { Popover, ToolbarItem } from 'devextreme-react/popover';

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

Popup Demo

disabled

Specifies whether the toolbar item responds to user interaction.

Type:

Boolean

Default Value: false

html

Specifies the HTML markup to be inserted into the toolbar item element.

Type:

String

The Popover component evaluates the html property's value. This evaluation, however, makes the Popover potentially vulnerable to XSS attacks. To guard against these attacks, encode the HTML markup before you assign it to the html property. Refer to the following help topic for more information: Potentially Vulnerable API - html.

You can use the text property as a safe alternative.

location

Specifies a location for the item on the toolbar.

Type:

String

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

options

Configures the DevExtreme UI component used as a toolbar item.

Type: any

Popup Demo

Angular

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. Specify options with an object.

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

import { DxPopoverModule } from 'devextreme-angular';

@NgModule({
    declarations: [
        AppComponent
    ],
    imports: [
        BrowserModule,
        DxPopoverModule
    ],
    providers: [ ],
    bootstrap: [AppComponent]
})
export class AppModule { }
Vue

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. Specify options with an object. We recommend that you declare the object outside the configuration component to prevent possible issues caused by unnecessary re-rendering.

App.vue
<template>
    <DxPopover>
        <DxToolbarItem ...
            widget="dxCheckBox"
            :options="checkBoxOptions"
        />
    </DxPopover>
</template>

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

import DxPopover, {
    DxToolbarItem
} from 'devextreme-vue/popover';

export default {
    components: {
        DxPopover,
        DxToolbarItem
    },
    data() {
        return {
            checkBoxOptions: { text: 'Show IDs' }
        }
    }
}
</script>
React

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. Specify options with an object. We recommend that you declare the object outside the configuration component to prevent possible issues caused by unnecessary re-rendering.

App.js
import React from 'react';

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

import Popover, {
    ToolbarItem
} from 'devextreme-react/popover';

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

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

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'

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.

Popup Demo