items[]

Configures toolbar items. These items allow users to format text and execute commands.

Type:

Array<Object | String>

Accepted Values: 'background' | 'bold' | 'color' | 'italic' | 'link' | 'image' | 'strike' | 'subscript' | 'superscript' | 'underline' | 'blockquote' | 'header' | 'increaseIndent' | 'decreaseIndent' | 'orderedList' | 'bulletList' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'codeBlock' | 'variable' | 'separator' | 'undo' | 'redo' | 'clear'

The toolbar provides predefined items and supports custom items. To add a predefined item to the toolbar, include it in the items array:

jQuery
JavaScript
$(function(){
    $("#htmlEditorContainer").dxHtmlEditor({
        toolbar: {
            items: [ "bold", "italic", "alignCenter", "undo", "redo" ]
        }
    })
})
Angular
HTML
TypeScript
<dx-html-editor>
    <dxo-toolbar [items]="[ 'bold', 'italic', 'alignCenter', 'undo', 'redo' ]"></dxo-toolbar>
</dx-html-editor>
import { DxHtmlEditorModule } from "devextreme-angular";
// ...
export class AppComponent {
    // ...
}
@NgModule({
    imports: [
        // ...
        DxHtmlEditorModule
    ],
    // ...
})
ASP.NET MVC Controls
Razor C#
@(Html.DevExtreme().HtmlEditor()
    .Toolbar(t => t
        .Items(i => {
            i.Add().FormatName("bold");
            i.Add().FormatName("italic");
            i.Add().FormatName("alignCenter");
            i.Add().FormatName("undo");
            i.Add().FormatName("redo");
        })
    )
)

Most of the predefined items are buttons. To customize a button, assign its name to the formatName option and specify the button options in the options object:

jQuery
JavaScript
$(function(){
    $("#htmlEditorContainer").dxHtmlEditor({
        toolbar: {
            items: [ // ...
            { 
                formatName: "clear", 
                options: { icon: "clear", type: "danger" }
            }]
        }
    })
})
Angular
TypeScript
HTML
import { DxHtmlEditorModule } from "devextreme-angular";
// ...
export class AppComponent {
    items: any = [ // ...
    { 
        formatName: "clear", 
        options: { icon: "clear", type: "danger" }
    }];
}
@NgModule({
    imports: [
        // ...
        DxHtmlEditorModule
    ],
    // ...
})
<dx-html-editor>
    <dxo-toolbar [items]="items"></dxo-toolbar>
</dx-html-editor>
ASP.NET MVC Controls
Razor C#
@(Html.DevExtreme().HtmlEditor()
    .Toolbar(t => t
        .Items(i => { 
            i.Add().FormatName("clear")
                .Widget(w => w.Button()
                    .Icon("clear")
                    .Type(ButtonType.Danger)
                );
        })
    )
)

To use another widget instead of a button, specify the widget option and configure the widget in the options object. In this case, you should also implement all the logic.

The toolbar provides a short syntax for implementing a custom drop-down menu with multiple choices. Refer to the formatName description for more information.

View Demo

cssClass

Specifies a CSS class to be applied to the item.

Type:

String

Default Value: undefined

disabled

Specifies whether a widget item should be disabled.

Type:

Boolean

Default Value: false

formatName

Specifies the predefined item that this object customizes or a format with multiple choices.

Type:

String

Accepted Values: 'background' | 'bold' | 'color' | 'italic' | 'link' | 'image' | 'strike' | 'subscript' | 'superscript' | 'underline' | 'blockquote' | 'header' | 'increaseIndent' | 'decreaseIndent' | 'orderedList' | 'bulletList' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'codeBlock' | 'variable' | 'separator' | 'undo' | 'redo' | 'clear'

To customize a predefined item, assign its name to this option and specify the other item options.

This option also accepts names of formats with multiple choices. In addition to the format name, specify formatValues. On the toolbar, such formats are represented by SelectBox widgets whose options you can specify in the options object.

View Demo

In the following code, the header and size formats are configured as described in the previous paragraph:

jQuery
JavaScript
$(function(){
    $("#htmlEditorContainer").dxHtmlEditor({
        toolbar: {
            items: [ // ...
            {
                formatName: "header",
                formatValues: [1, 2, 3, false],
                options: {
                    width: 150
                }
            }, {
                formatName: "size",
                formatValues: ["11px", "14px", "16px"]
            }]
        }
    })
})
Angular
TypeScript
HTML
import { DxHtmlEditorModule } from "devextreme-angular";
// ...
export class AppComponent {
    items: any = [ // ...
    {
        formatName: "header",
        formatValues: [1, 2, 3, false],
        options: {
            width: 150
        }
    }, {
        formatName: "size",
        formatValues: ["11px", "14px", "16px"]
    }];
}
@NgModule({
    imports: [
        // ...
        DxHtmlEditorModule
    ],
    // ...
})
<dx-html-editor>
    <dxo-toolbar [items]="items"></dxo-toolbar>
</dx-html-editor>   

Refer to the Formats article for a full list of available formats.

See Also

formatValues

Specifies values for a format with multiple choices. Should be used with the formatName.

Type:

Array<String | Number | Boolean>

Formats with multiple choices are represented by SelectBox widgets whose options you can specify in the options object.

html

Specifies html code inserted into the widget item element.

Type:

String

locateInMenu

Specifies when to display an item in the toolbar's overflow menu.

Type:

String

Default Value: 'never'
Accepted Values: 'always' | 'auto' | 'never'

Use the ToolbarItemLocateInMenuMode enum to specify this option when the widget is used as an ASP.NET MVC 5 Control or a DevExtreme-Based ASP.NET Core Control. This enum accepts the following values: Always, Never, and Auto.

location

Specifies a location for the item on the toolbar.

Type:

String

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

Whatever template you use for widget items (default or a custom) will be located according to the value specified for the location field in the item data source object.

Use the ToolbarItemLocation enum to specify this option when the widget 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.

See Also

menuItemTemplate

Specifies a template that should be used to render a menu item.

Type:

template

Return Value:

String

|

DOM Node

|

jQuery

A template name or container.

Whether you use a default or a custom template for menu items, you can specify a specific template for a particular menu item. To do so, set the menuItemTemplate field for the data source object of this menu item. The following types of the specified value are available.

  • Assign a string containing the name of the required template.
  • 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.
See Also

options

Specifies a configuration object for the widget that presents a toolbar item.

Type:

Object

This data source field is used by a default item template. If you use the default template for your widget items, and specify the widget field in the toolbar data source, you can specify the options field as well. Set the configuration options that are exposed by the configuration object of the specified widget.

NOTE
If you use the Menu widget as a toolbar item, the adaptivityEnabled option does not apply.
NOTE
The fields of a configuration object passed to this option do not support two-way binding in Angular, AngularJS, and Knockout and event bindings in Angular.
See Also

showText

Specifies when to display the text for the widget item.

Type:

String

Default Value: 'always'
Accepted Values: 'always' | 'inMenu'

The text should be specified in the options configuration object.

NOTE
This option is available only for the dxButton widget that presents a toolbar item.

Use the ToolbarItemShowTextMode enum to specify this option when the widget is used as an ASP.NET MVC 5 Control or a DevExtreme-Based ASP.NET Core Control. This enum accepts the following values: Always and InMenu.

template

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

Type:

template

Return Value:

String

|

DOM Node

|

jQuery

A template name or container.

Whether you use a default or a custom template for widget items, you can specify a specific template for a particular item. To do so, set the template field for the data source object of this item. The following types of the specified value are available.

  • Assign a string containing the name of the required template.
  • 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.
See Also

text

Specifies text displayed for the widget item.

Type:

String

visible

Specifies whether or not a widget item must be displayed.

Type:

Boolean

Default Value: true

widget

The name of the widget that should represent the toolbar item.

Type:

String

Accepted Values: 'dxAutocomplete' | 'dxButton' | 'dxCheckBox' | 'dxDateBox' | 'dxMenu' | 'dxSelectBox' | 'dxTabs' | 'dxTextBox' | 'dxButtonGroup' | 'dxDropDownButton'
NOTE
Import the specified widget's module when using DevExtreme modules.

Configure the specified widget in the options object. You can find information on available widget options in the widget's API reference.

View Demo

In the following example, the CheckBox widget is added as a custom toolbar item. It has a label and a custom valueChanged event handler. The toolbar item's locateInMenu option is set to "never" to specify that the toolbar item should never be hidden in the overflow menu.

jQuery
JavaScript
$(function(){
    $("#htmlEditorContainer").dxHtmlEditor({
        toolbar: {
            items: [ // ...
            {
                widget: "dxCheckBox",
                options: {
                    text: "My Format",  
                    onValueChanged: function(e) {
                        // Implement your logic here
                    },
                    // ...
                },
                locateInMenu: "never"
            }]
        }
    })
})
Angular
TypeScript
HTML
import { DxHtmlEditorModule, DxCheckBoxModule } from "devextreme-angular";
// ...
export class AppComponent {
    items: any = [ // ...
    {
        widget: "dxCheckBox",
        options: {
            text: "My Format",
            onValueChanged: function(e) {
                // Implement your logic here
            },
            // ...
        },
        locateInMenu: "never"
    }];
}
@NgModule({
    imports: [
        // ...
        DxHtmlEditorModule,
        DxCheckBoxModule
    ],
    // ...
})
<dx-html-editor>
    <dxo-toolbar [items]="items"></dxo-toolbar>
</dx-html-editor>
ASP.NET MVC Controls
Razor C#
@(Html.DevExtreme().HtmlEditor()
    .Toolbar(t => t 
        .Items(i => {
            i.Add().LocateInMenu(ToolbarItemLocateInMenuMode.Never)
                .Widget(w => w.CheckBox()
                    .Text("My Format")
                    .OnValueChanged("myFormat_valueChanged")
                );
        })
    )
)

<script>
    function myFormat_valueChanged(e) {
        // Implement your logic here
    }
</script>
See Also