JavaScript/jQuery Popup - toolbarItems
In the following code, two items are defined on the toolbar: one is plain text, another is the Button UI component:
jQuery
$(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
<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
@(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
<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
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.
location
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
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
<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
<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
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:
@(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
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.
toolbar
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
.
widget
When using ASP.NET MVC 5 Controls or DevExtreme-Based ASP.NET Core Controls, configure the UI component with a lambda expression as follows:
// 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) )