React UI Widgets

dxAccordion

The Accordion widget contains several panels displayed one under another. These panels can be collapsed or expanded by an end user, which makes this widget very useful for presenting information in a limited amount of space.

import Accordion from "devextreme-react/accordion"
Type: AccordionTypes.default

dxActionSheet

The ActionSheet widget is a sheet containing a set of buttons located one under the other. These buttons usually represent several choices relating to a single task.

import ActionSheet from "devextreme-react/action-sheet"
Type: ActionSheetTypes.default

dxAutocomplete

The Autocomplete widget is a textbox that provides suggestions while a user types into it.

import Autocomplete from "devextreme-react/autocomplete"
Type: AutocompleteTypes.default

dxBox

The Box widget allows you to arrange various elements within it. Separate and adaptive, the Box widget acts as a building block for the layout.

import Box from "devextreme-react/box"
Type: BoxTypes.default

dxButton

The Button widget is a simple button that performs specified commands when a user clicks it.

import Button from "devextreme-react/button"
Type: ButtonTypes.default

dxButtonGroup

The ButtonGroup is a widget that contains a set of toggle buttons and can be used as a mode switcher.

import ButtonGroup from "devextreme-react/button-group"
Type: ButtonGroupTypes.default

dxCalendar

The Calendar is a widget that displays a calendar and allows an end user to select the required date within a specified date range.

import Calendar from "devextreme-react/calendar"
Type: CalendarTypes.default

dxCheckBox

The CheckBox is a small box, which when selected by the end user, shows that a particular feature has been enabled or a specific option has been chosen.

import CheckBox from "devextreme-react/check-box"
Type: CheckBoxTypes.default

dxColorBox

The ColorBox is a widget that allows an end user to enter a color or pick it out from the drop-down editor.

import ColorBox from "devextreme-react/color-box"
Type: ColorBoxTypes.default

dxContextMenu

The ContextMenu widget displays a single- or multi-level context menu. An end user invokes this menu by a right click or a long press.

import ContextMenu from "devextreme-react/context-menu"
Type: ContextMenuTypes.default

dxDataGrid

The DataGrid is a widget that represents data from a local or remote source in the form of a grid. This widget offers such basic features as sorting, grouping, filtering, as well as more advanced capabilities, like state storing, export to Excel, master-detail interface, and many others.

import DataGrid from "devextreme-react/data-grid"
Type: DataGridTypes.default

dxDateBox

The DateBox is a widget that displays date and time in a specified format, and enables a user to pick or type in the required date/time value.

import DateBox from "devextreme-react/date-box"
Type: DateBoxTypes.default

dxDeferRendering

The DeferRendering is a widget that waits for its content to be ready before rendering it. While the content is getting ready, the DeferRendering displays a loading indicator.

import DeferRendering from "devextreme-react/defer-rendering"
Type: DeferRenderingTypes.default

See Also

dxDiagram CTP

The Diagram widget provides a visual interface to help you design new and modify existing diagrams.

NOTE
DevExtreme Diagram is available as a community technology preview (CTP). Should you have any questions or suggestions prior to its official release, please email your comments to support@devexpress.com.
import Diagram from "devextreme-react/diagram"
Type: DiagramTypes.default

dxDrawer

The Drawer is a dismissible or permanently visible panel used for navigation in responsive web application layouts.

import Drawer from "devextreme-react/drawer"
Type: DrawerTypes.default

dxDropDownBox

The DropDownBox widget consists of a text field, which displays the current value, and a drop-down field, which can contain any UI element.

import DropDownBox from "devextreme-react/drop-down-box"
Type: DropDownBoxTypes.default

dxDropDownButton

The DropDownButton is a button that opens a drop-down menu.

import DropDownButton from "devextreme-react/drop-down-button"
Type: DropDownButtonTypes.default

dxFileManager CTP

The FileManager is a widget that allows users to upload, select, and manage files and directories in different file storages.

NOTE
DevExtreme FileManager is available as a community technology preview (CTP). Should you have any questions or suggestions prior to its official release, please email your comments to support@devexpress.com.
import FileManager from "devextreme-react/file-manager"
Type: FileManagerTypes.default

dxFileUploader

The FileUploader widget enables an end user to upload files to the server. An end user can select files in the file explorer or drag and drop files to the FileUploader area on the page.

import FileUploader from "devextreme-react/file-uploader"
Type: FileUploaderTypes.default

dxFilterBuilder

The FilterBuilder widget allows a user to build complex filter expressions with an unlimited number of filter conditions, combined by logical operations using the UI.

import FilterBuilder from "devextreme-react/filter-builder"
Type: FilterBuilderTypes.default

dxForm

The Form widget represents fields of a data object as a collection of label-editor pairs. These pairs can be arranged in several groups, tabs and columns.

import Form from "devextreme-react/form"
Type: FormTypes.default

dxGallery

The Gallery is a widget that displays a collection of images in a carousel. The widget is supplied with various navigation controls that allow a user to switch between images.

import Gallery from "devextreme-react/gallery"
Type: GalleryTypes.default

dxHtmlEditor CTP

HtmlEditor is a WYSIWYG editor that allows you to format textual and visual content and to output it in HTML or Markdown. HtmlEditor is built on top of and requires Quill.

NOTE
DevExtreme HtmlEditor is available as a community technology preview (CTP). Should you have any questions or suggestions prior to its official release, please email your comments to support@devexpress.com.
import HtmlEditor from "devextreme-react/html-editor"
Type: HtmlEditorTypes.default

dxList

The List is a widget that represents a collection of items in a scrollable list.

import List from "devextreme-react/list"
Type: ListTypes.default

dxLoadIndicator

The LoadIndicator is a UI element notifying the viewer that a process is in progress.

import LoadIndicator from "devextreme-react/load-indicator"
Type: LoadIndicatorTypes.default

dxLoadPanel

The LoadPanel is an overlay widget notifying the viewer that loading is in progress.

import LoadPanel from "devextreme-react/load-panel"
Type: LoadPanelTypes.default

dxLookup

The Lookup is a widget that allows an end user to search for an item in a collection shown in a drop-down menu.

import Lookup from "devextreme-react/lookup"
Type: LookupTypes.default

dxMap

The Map is an interactive widget that displays a geographic map with markers and routes.

import Map from "devextreme-react/map"
Type: MapTypes.default

dxMenu

The Menu widget is a panel with clickable items. A click on an item opens a drop-down menu, which can contain several submenus.

import Menu from "devextreme-react/menu"
Type: MenuTypes.default

dxMultiView

The MultiView is a widget that contains several views. An end user navigates through the views by swiping them in the horizontal direction.

import MultiView from "devextreme-react/multi-view"
Type: MultiViewTypes.default

dxNavBar

The NavBar is a widget that navigates the application views.

import NavBar from "devextreme-react/nav-bar"
Type: NavBarTypes.default

dxNumberBox

The NumberBox is a widget that displays a numeric value and allows a user to modify it by typing in a value, and incrementing or decrementing it using the keyboard or mouse.

import NumberBox from "devextreme-react/number-box"
Type: NumberBoxTypes.default

dxPivotGrid

The PivotGrid is a widget that allows you to display and analyze multi-dimensional data from a local storage or an OLAP cube.

import PivotGrid from "devextreme-react/pivot-grid"
Type: PivotGridTypes.default

dxPivotGridFieldChooser

A complementary widget for the PivotGrid that allows you to manage data displayed in the PivotGrid. The field chooser is already integrated in the PivotGrid and can be invoked using the context menu. If you need to continuously display the field chooser near the PivotGrid widget, use the PivotGridFieldChooser widget.

import PivotGridFieldChooser from "devextreme-react/pivot-grid-field-chooser"
Type: PivotGridFieldChooserTypes.default

Both the PivotGridFieldChooser and the PivotGrid must be bound to one and the same instance of the PivotGridDataSource. Create the PivotGridDataSource individually and then assign it to both widgets as shown in the code above.

View Demo

See Also

dxPopover

The Popover is a widget that shows notifications within a box with an arrow pointing to a specified UI element.

import Popover from "devextreme-react/popover"
Type: PopoverTypes.default

dxPopup

The Popup widget is a pop-up window overlaying the current view.

import Popup from "devextreme-react/popup"
Type: PopupTypes.default

dxProgressBar

The ProgressBar is a widget that shows current progress.

import ProgressBar from "devextreme-react/progress-bar"
Type: ProgressBarTypes.default

dxRadioGroup

The RadioGroup is a widget that contains a set of radio buttons and allows an end user to make a single selection from the set.

import RadioGroup from "devextreme-react/radio-group"
Type: RadioGroupTypes.default

dxRangeSlider

The RangeSlider is a widget that allows an end user to choose a range of numeric values.

import RangeSlider from "devextreme-react/range-slider"
Type: RangeSliderTypes.default

dxResizable

The Resizable widget enables its content to be resizable in the UI.

import Resizable from "devextreme-react/resizable"
Type: ResizableTypes.default

Read Guides

See Also

dxResponsiveBox

The ResponsiveBox widget allows you to create an application or a website with a layout adapted to different screen sizes.

import ResponsiveBox from "devextreme-react/responsive-box"
Type: ResponsiveBoxTypes.default

dxScheduler

The Scheduler is a widget that represents scheduled data and allows a user to manage and edit it.

import Scheduler from "devextreme-react/scheduler"
Type: SchedulerTypes.default

dxScrollView

The ScrollView is a widget that enables a user to scroll its content.

import ScrollView from "devextreme-react/scroll-view"
Type: ScrollViewTypes.default

dxSelectBox

The SelectBox widget is an editor that allows an end user to select an item from a drop-down list.

import SelectBox from "devextreme-react/select-box"
Type: SelectBoxTypes.default

dxSlideOut

The SlideOut widget is a classic slide-out menu paired with a view. An end user opens the menu by swiping away the view.

import SlideOut from "devextreme-react/slide-out"
Type: SlideOutTypes.default

dxSlideOutView

The SlideOutView widget is a classic slide-out menu paired with a view. This widget is very similar to the SlideOut with only one difference - the SlideOut always contains the List in the slide-out menu, while the SlideOutView can hold any collection there.

import SlideOutView from "devextreme-react/slide-out-view"
Type: SlideOutViewTypes.default

Read Guides

See Also

dxSlider

The Slider is a widget that allows an end user to set a numeric value on a continuous range of possible values.

import Slider from "devextreme-react/slider"
Type: SliderTypes.default

dxSpeedDialAction

The SpeedDialAction is a button that performs a custom action. It can be represented by a Floating Action Button (FAB) or a button in a speed dial menu opened with the FAB.

import SpeedDialAction from "devextreme-react/speed-dial-action"
Type: SpeedDialActionTypes.default

When there is only one SpeedDialAction on a page, it is represented by a Floating Action Button (FAB).

When there are multiple SpeedDialActions, they are collected in a speed dial menu that can contain up to five actions. In this case, the FAB opens the menu. You can use the floatingActionButtonConfig object to change the maximum number of actions, and the FAB's position and icons in the opened and closed states.

View Demo

See Also

dxSwitch

The Switch is a widget that can be in two states: "On" and "Off".

import Switch from "devextreme-react/switch"
Type: SwitchTypes.default

dxTabPanel

The TabPanel is a widget consisting of the Tabs and MultiView widgets. It automatically synchronizes the selected tab with the currently displayed view and vice versa.

import TabPanel from "devextreme-react/tab-panel"
Type: TabPanelTypes.default

dxTabs

The Tabs is a tab strip used to switch between pages or views. This widget is included in the TabPanel widget, but you can use the Tabs separately as well.

import Tabs from "devextreme-react/tabs"
Type: TabsTypes.default

dxTagBox

The TagBox widget is an editor that allows an end user to select multiple items from a drop-down list.

import TagBox from "devextreme-react/tag-box"
Type: TagBoxTypes.default

dxTextArea

The TextArea is a widget that enables a user to enter and edit a multi-line text.

import TextArea from "devextreme-react/text-area"
Type: TextAreaTypes.default

dxTextBox

The TextBox is a widget that enables a user to enter and edit a single line of text.

import TextBox from "devextreme-react/text-box"
Type: TextBoxTypes.default

dxTileView

The TileView widget contains a collection of tiles. Tiles can store much more information than ordinary buttons, that is why they are very popular in apps designed for touch devices.

import TileView from "devextreme-react/tile-view"
Type: TileViewTypes.default

dxToast

The Toast is a widget that provides pop-up notifications.

import Toast from "devextreme-react/toast"
Type: ToastTypes.default

dxToolbar

The Toolbar is a widget containing items that usually manage screen content. Those items can be plain text or widgets.

import Toolbar from "devextreme-react/toolbar"
Type: ToolbarTypes.default

dxTooltip

The Tooltip widget displays a tooltip for a specified element on the page.

import Tooltip from "devextreme-react/tooltip"
Type: TooltipTypes.default

dxTreeList

The TreeList is a widget that represents data from a local or remote source in the form of a multi-column tree view. This widget offers such features as sorting, filtering, editing, selection, etc.

import TreeList from "devextreme-react/tree-list"
Type: TreeListTypes.default

dxTreeView

The TreeView widget is a tree-like representation of textual data.

import TreeView from "devextreme-react/tree-view"
Type: TreeViewTypes.default

dxValidationGroup

The ValidationGroup is a widget that allows you to validate several editors simultaneously.

import ValidationGroup from "devextreme-react/validation-group"
Type: ValidationGroupTypes.default

View Demo Read Guides

You can use the DevExpress.validationEngine.validateGroup(group) method to validate a particular validation group by passing its instance as a parameter.

JavaScript
DevExpress.validationEngine.validateGroup($("#sampleGroup").dxValidationGroup("instance"));

In addition, you can access a validation group's configuration using the DevExpress.validationEngine.getGroupConfig(group) method. The returned configuration exposes the validators included to the group, the validate() method to validate the editors that are associated with the validators and the validated event that occurs after the group is validated.

NOTE
Nested validation groups are not supported.
See Also

dxValidationSummary

A widget for displaying the result of checking validation rules for editors.

import ValidationSummary from "devextreme-react/validation-summary"
Type: ValidationSummaryTypes.default

dxValidator

A widget that is used to validate the associated DevExtreme editors against the defined validation rules.

import Validator from "devextreme-react/validator"
Type: ValidatorTypes.default

Errors and Warnings

This section lists errors and warnings that may occur in UI widgets.

Markup Components

This section describes components that can be used when defining a widget markup.

UI Events

The events used to handle user interaction with UI elements.

Name Description
dxclick

Raised when the element is clicked.

dxcontextmenu

Raised when the right mouse button is clicked on the element or when the element is held during a specified time period.

dxdblclick

Raised when a user has performed a double click on the element.

dxdrag

Raised when the drag gesture has been performed.

dxdragend

Raised when the drag gesture has been completed.

dxdragenter

Raised when a user moves the pointer into the element, provided that the drag gesture is being performed.

dxdragleave

Raised when a user moves the pointer out of the element, provided that the drag gesture is being performed.

dxdragstart

Raised when the drag gesture has been started.

dxdrop

Raised when dragged data has been dropped on the element.

dxhold

Raised when the element was held for a specified time. The default time interval is 750 ms.

dxhoverend

Raised when the mouse pointer leaves the element.

dxhoverstart

Raised when the mouse pointer appears over the element.

dxpinch

Raised when the pinch gesture has been performed.

dxpinchend

Raised when the pinch gesture has been completed.

dxpinchstart

Raised when the pinch gesture has been started.

dxpointercancel

Raised when the browser decides that the pointer is unlikely to produce any more events.

dxpointerdown

Raised when the pointer takes on the active buttons state.

dxpointerenter

Raised when a pointer is moved to either the hit test area of an element or one of its descendants.

dxpointerleave

Raised when a pointer is moved from either the hit test area of an element or one of its descendants.

dxpointermove

Raised when any pointer parameter has been changed. (Position, tilt, pressure, button state, or contact geometry).

dxpointerout

Raised when a pointer is moved from either the hit test area of an element or one of its descendants.

dxpointerover

Raised when a pointer is moved to the hit test area of an element or one of its descendants.

dxpointerup

Raised when the pointer loses the active buttons state.

dxremove

Raised when a widget associated with an element is being removed from the DOM.

dxrotate

Raised when the rotate gesture has been performed.

dxrotateend

Raised when the rotate gesture has been completed.

dxrotatestart

Raised when the rotate gesture has been started.

dxswipe

Raised when the swipe gesture has been performed.

dxswipeend

Raised when the swipe gesture is finished.

dxswipestart

Raised when the swipe gesture is started.

dxtransform

Raised when the transform gesture has been performed.

dxtransformend

Raised when the transform gesture has been completed.

dxtransformstart

Raised when the transform gesture has been started.

dxtranslate

Raised when the translate gesture has been performed.

dxtranslateend

Raised when the translate gesture has been completed.

dxtranslatestart

Raised when the translate gesture has been started.

DevExtreme provides UI events for processing a user's interaction with a specific UI element. The DevExpress.events namespace exposes an API to work with the UI events.

The following code shows how to attach, trigger and then detach a dxhold event handler from a page element with the target ID. The timeout parameter specifies how long the target should be held to allow the handler to execute:

jQuery
JavaScript
var dxholdHandler = function(jQueryEvent) {
    alert(`The ${$(jQueryEvent.target).text()} element was held for ${jQueryEvent.data.timeout} ms.`);
};

$("#target").on("dxhold", { timeout: 1000 }, dxholdHandler); 
$("#target").trigger("dxhold");
$("#target").off("dxhold", dxholdHandler);

See jQuery documentation for details.

Angular
JavaScript
import { on, trigger, off } from "devextreme/events";
// ...
export class AppComponent implements AfterViewInit {
    ngAfterViewInit() {
        const dxholdHandler = (event) => {
            alert(`The ${event.target.textContent} element was held for ${event.data.timeout} ms.`);
            return true; // true - continues event propagation, false - stops
        }
        const target: HTMLElement = document.getElementById("target");

        on(target, "dxhold", { timeout: 1000 }, dxholdHandler);
        trigger(target, "dxhold");
        off(target, "dxhold", dxholdHandler);
    }
}
Knockout
HTML
JavaScript
<div id="target" data-bind="dxhold: { execute: dxholdHandler, timeout: 1000 }">
    Target element
</div>
var viewModel = {
    dxholdHandler: function(viewModel, jQueryEvent) {
        alert(`The ${$(jQueryEvent.target).text()} element was held for ${jQueryEvent.data.timeout} ms.`);
    }
}
NOTE
Knockout does not provide an API to unsubscribe from an event.

See Knockout documentation for details.

AngularJS
HTML
JavaScript
<div id="target" dx-hold="{ execute: 'dxholdHandler($event)', timeout: 1000 }">
    Target element
</div>
angular.module("DemoApp", ["dx"])
    .controller("DemoController", function DemoController($scope) {
        $scope.dxholdHandler = function(jQueryEvent) {
            alert(`The ${$(jQueryEvent.target).text()} element was held for ${jQueryEvent.data.timeout} ms.`);
        }
    });
NOTE
AngularJS does not provide an API to unsubscribe from an event.

CSS Classes

This section describes the DevExtreme CSS classes you can use to define the appearance of an element.