Vue TreeView Props
An object defining configuration properties for the TreeView UI component.
See Also
accessKey
Specifies the shortcut key that sets focus on the UI component.
The value of this property will be passed to the accesskey
attribute of the HTML element that underlies the UI component.
activeStateEnabled
Specifies whether the UI component changes its visual state as a result of user interaction.
The UI component switches to the active state when users press down the primary mouse button. When this property is set to true, the CSS rules for the active state apply. You can change these rules to customize the component.
Use this property when you display the component on a platform whose guidelines include the active state change for UI components.
collapseIcon
Specifies a custom collapse icon.
This property accepts one of the following:
- The icon's URL
- The icon's name if the icon is from the DevExtreme icon library
- The icon's CSS class if the icon is from an external icon library (see External Icon Libraries)
- The icon in the Base64 format
- The icon in the SVG format. Ensure that the source is reliable.
The following code snippet shows how to specify custom collapse and expand icons:
jQuery
$(function() { $("#treeView").dxTreeView({ // ... collapseIcon: "minus", // icon from the DevExtreme icon library expandIcon: "https://path/to/the/expand_icon.svg", // icon in the SVG format }); });
Angular
<dx-tree-view ... collapseIcon="minus" // icon from the DevExtreme icon library expandIcon="https://path/to/the/expand_icon.svg" // icon in the SVG format > </dx-tree-view>
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { // ... }
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DxTreeViewModule } from 'devextreme-angular'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, DxTreeViewModule ], providers: [ ], bootstrap: [AppComponent] }) export class AppModule { }
Vue
<template> <DxTreeView ... collapseIcon="minus" // icon from the DevExtreme icon library expandIcon="https://path/to/the/expand_icon.svg" // icon in the SVG format /> </template> <script> import 'devextreme/dist/css/dx.light.css'; import DxTreeView from 'devextreme-vue/tree-view'; export default { components: { DxTreeView }, // ... } </script>
<template> <DxTreeView ... collapseIcon="minus" // icon from the DevExtreme icon library expandIcon="https://path/to/the/expand_icon.svg" // icon in the SVG format /> </template> <script setup> import 'devextreme/dist/css/dx.light.css'; import DxTreeView from 'devextreme-vue/tree-view'; // ... </script>
React
import React from 'react'; import 'devextreme/dist/css/dx.light.css'; import TreeView from 'devextreme-react/tree-view'; export default function App() { return ( <TreeView ... collapseIcon="minus" // icon from the DevExtreme icon library expandIcon="https://path/to/the/expand_icon.svg" // icon in the SVG format /> ); }
See Also
createChildren
Allows you to load nodes on demand.
The node that has been expanded; null for the root node.
createChildren is called at the beginning of the UI component's lifetime and each time a user expands a node whose child nodes have not been loaded yet. It allows you to load the entire tree in portions: load root nodes first (when the function's parentNode parameter is null) and the child nodes of each expanded node later.
This function has the following restrictions:
Neither the dataSource, nor the items property should be specified.
The dataStructure property should be set to "plain".
Since the search will be performed on loaded nodes only and thus produce incorrect results, it is not recommended that you enable this functionality.
The following code shows how to use this function with a remote service:
jQuery
$(function() { $("#treeViewContainer").dxTreeView({ dataStructure: "plain", rootValue: 0, createChildren: function (parentNode) { var d = $.Deferred(); $.get("http://url/to/the/service", { // Here, 0 is the "rootValue" property's value. parentId: parentNode ? JSON.stringify(parentNode.key) : "0" }) .done(function (result) { d.resolve(result); }); return d.promise(); } }); });
Angular
<dx-tree-view [rootValue]="0" dataStructure="plain" [createChildren]="createChildren"> </dx-tree-view>
import { ..., Inject } from "@angular/core"; import { HttpClient, HttpClientModule, HttpParams } from "@angular/common/http"; import { lastValueFrom } from 'rxjs'; import { DxTreeViewModule } from "devextreme-angular"; // ... export class AppComponent { constructor(@Inject(HttpClient) httpClient: HttpClient) { } createChildren = (parentNode) => { let params: HttpParams = new HttpParams() .set("parentId", parentNode ? JSON.stringify(parentNode.key) : "0"); const request$ = this.httpClient.get("http://url/to/the/service", { params: params }); return lastValueFrom(request$); } } @NgModule({ imports: [ // ... DxTreeViewModule, HttpClientModule ], // ... })
Vue
<template> <DxTreeView :create-children="createChildren" :root-value="''" data-structure="plain" /> </template> <script> import DxTreeView from 'devextreme-vue/tree-view'; import 'whatwg-fetch'; export default { components: { DxTreeView }, methods: { createChildren: function(parent) { let parentId = parent ? parent.itemData.id : ''; return fetch(`http://url/to/the/service?parentId=${parentId}`) .then(response => response.json()) .catch(() => { throw 'Data Loading Error'; }); } } }; </script>
React
import React from 'react'; import TreeView from 'devextreme-react/tree-view'; import 'whatwg-fetch'; const App = () => { return ( <TreeView dataStructure="plain" rootValue="''" createChildren={createChildren} /> ); } const createChildren = (parent) => { let parentId = parent ? parent.itemData.id : ''; return fetch(`http://url/to/the/service?parentId=${parentId}`) .then(response => response.json()) .catch(() => { throw 'Data Loading Error'; }); } export default App;
See Also
dataSource
Binds the UI component to data.
The TreeView works with object collections that can have a plain or hierarchical structure. Depending on the structure, the objects should provide different data fields. Specify the dataStructure property to notify the TreeView of the used structure and refer to the property's description for information on the required fields.
Depending on your data source, bind the TreeView to data as follows.
Data Array
Assign the array to the dataSource option.Read-Only Data in JSON Format
Set the dataSource property to the URL of a JSON file or service that returns JSON data.OData
Implement an ODataStore.Web API, PHP, MongoDB
Use one of the following extensions to enable the server to process data according to the protocol DevExtreme UI components use:Then, use the createStore method to configure access to the server on the client as shown below. This method is part of DevExtreme.AspNet.Data.
jQuery
JavaScript$(function() { let serviceUrl = "https://url/to/my/service"; $("#treeViewContainer").dxTreeView({ // ... dataSource: DevExpress.data.AspNet.createStore({ key: "ID", loadUrl: serviceUrl + "/GetAction", insertUrl: serviceUrl + "/InsertAction", updateUrl: serviceUrl + "/UpdateAction", deleteUrl: serviceUrl + "/DeleteAction" }) }) });
Angular
app.component.tsapp.component.htmlapp.module.tsimport { Component } from '@angular/core'; import CustomStore from 'devextreme/data/custom_store'; import { createStore } from 'devextreme-aspnet-data-nojquery'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { store: CustomStore; constructor() { let serviceUrl = "https://url/to/my/service"; this.store = createStore({ key: "ID", loadUrl: serviceUrl + "/GetAction", insertUrl: serviceUrl + "/InsertAction", updateUrl: serviceUrl + "/UpdateAction", deleteUrl: serviceUrl + "/DeleteAction" }) } }
<dx-tree-view ... [dataSource]="store"> </dx-tree-view>
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DxTreeViewModule } from 'devextreme-angular'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, DxTreeViewModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
Vue
App.vue<template> <DxTreeView ... :data-source="store" /> </template> <script> import 'devextreme/dist/css/dx.light.css'; import CustomStore from 'devextreme/data/custom_store'; import { createStore } from 'devextreme-aspnet-data-nojquery'; import { DxTreeView } from 'devextreme-vue/tree-view'; export default { components: { DxTreeView }, data() { const serviceUrl = "https://url/to/my/service"; const store = createStore({ key: "ID", loadUrl: serviceUrl + "/GetAction", insertUrl: serviceUrl + "/InsertAction", updateUrl: serviceUrl + "/UpdateAction", deleteUrl: serviceUrl + "/DeleteAction" }); return { store } } } </script>
React
App.jsimport React from 'react'; import 'devextreme/dist/css/dx.light.css'; import CustomStore from 'devextreme/data/custom_store'; import { createStore } from 'devextreme-aspnet-data-nojquery'; import TreeView from 'devextreme-react/tree-view'; const serviceUrl = "https://url/to/my/service"; const store = createStore({ key: "ID", loadUrl: serviceUrl + "/GetAction", insertUrl: serviceUrl + "/InsertAction", updateUrl: serviceUrl + "/UpdateAction", deleteUrl: serviceUrl + "/DeleteAction" }); class App extends React.Component { render() { return ( <TreeView ... dataSource={store} /> ); } } export default App;
Any other data source
Implement a CustomStore.
Regardless of the data source on the input, the TreeView always wraps it in the DataSource object. This object allows you to sort, filter, group, and perform other data shaping operations. To get its instance, call the getDataSource() method.
Review the following notes about data binding:
Do not specify the items property if you specified the dataSource, and vice versa.
Data field names cannot be equal to
this
and should not contain the following characters:.
,:
,[
, and]
.
jQuery
- The stores are immutable. You cannot change their configurations at runtime. Instead, create a new store or DataSource and assign it to the dataSource property as shown in the following help topic: Get and Set Properties.
Angular
- The stores are immutable. You cannot change their configurations at runtime. Instead, create a new store or DataSource and assign it to the dataSource property as shown in the following help topic: Two-Way Property Binding.
Vue
- The stores are immutable. You cannot change their configurations at runtime. Instead, create a new store or DataSource and assign it to the dataSource property as shown in the following help topic: Two-Way Property Binding.
React
- The stores are immutable. You cannot change their configurations at runtime. Instead, create a new store or DataSource and assign it to the dataSource property as shown in the following help topic: Controlled Mode.
See Also
dataStructure
Notifies the UI component of the used data structure.
The UI component expects that data has a hierarchical structure where each data item contains a text
, a unique id
, and an items
array if the data item nests other data items:
var hierarchicalData = [{ id: '1', text: 'Fruits', items: [ { id: '1_1', text: 'Apples' }, { id: '1_2', text: 'Oranges' } ] }, { id: '2', text: 'Vegetables', items: [ { id: '2_1', text: 'Cucumbers' }, { id: '2_2', text: 'Tomatoes' } ] }];
If data has a plain structure, set the dataStructure property to "plain". In this case, each data item should have a text
, a unique id
, and a parentId
. For root items, parentId
should be equal to 0 or undefined:
var plainData = [ { id: '1', text: 'Fruits' }, // A root item { id: '1_1', text: 'Apples', parentId: '1' }, { id: '1_2', text: 'Oranges', parentId: '1' }, { id: '2', text: 'Vegetables' }, // Also a root item { id: '2_1', text: 'Cucumbers', parentId: '2' }, { id: '2_2', text: 'Tomatoes', parentId: '2' } ];
id
, text
, items
, and parentId
are conventional field names. To use other names, change the keyExpr, displayExpr, itemsExpr, and parentIdExpr properties, respectively. You can also specify the rootValue property to change the parentId
value that root items should have.
See Also
disabled
Specifies whether the UI component responds to user interaction.
disabledExpr
Specifies the name of the data source item field whose value defines whether or not the corresponding UI component item is disabled.
displayExpr
Specifies the data field whose values should be displayed.
The current item's data object.
The displayed value.
Set this property to the name of a data field that provides displayed values...
displayExpr: "name"
... or to a function that returns the displayed value:
displayExpr: function(item) { // "item" can be null return item && 'ID: ' + item.id + ', Name: ' + item.name; }
See Also
elementAttr
Specifies the global attributes to be attached to the UI component's container element.
jQuery
$(function(){ $("#treeViewContainer").dxTreeView({ // ... elementAttr: { id: "elementId", class: "class-name" } }); });
Angular
<dx-tree-view ... [elementAttr]="{ id: 'elementId', class: 'class-name' }"> </dx-tree-view>
import { DxTreeViewModule } from "devextreme-angular"; // ... export class AppComponent { // ... } @NgModule({ imports: [ // ... DxTreeViewModule ], // ... })
Vue
<template> <DxTreeView ... :element-attr="treeViewAttributes"> </DxTreeView> </template> <script> import DxTreeView from 'devextreme-vue/tree-view'; export default { components: { DxTreeView }, data() { return { treeViewAttributes: { id: 'elementId', class: 'class-name' } } } } </script>
React
import React from 'react'; import TreeView from 'devextreme-react/tree-view'; class App extends React.Component { treeViewAttributes = { id: 'elementId', class: 'class-name' } render() { return ( <TreeView ... elementAttr={this.treeViewAttributes}> </TreeView> ); } } export default App;
expandIcon
Specifies a custom expand icon.
This property accepts one of the following:
- The icon's URL
- The icon's name if the icon is from the DevExtreme icon library
- The icon's CSS class if the icon is from an external icon library (see External Icon Libraries)
- The icon in the Base64 format
- The icon in the SVG format. Ensure that the source is reliable.
The following code snippet shows how to specify custom expand and collapse icons:
jQuery
$(function() { $("#treeView").dxTreeView({ // ... collapseIcon: "minus", // icon from the DevExtreme icon library expandIcon: "https://path/to/the/expand_icon.svg", // icon in the SVG format }); });
Angular
<dx-tree-view ... collapseIcon="minus" // icon from the DevExtreme icon library expandIcon="https://path/to/the/expand_icon.svg" // icon in the SVG format > </dx-tree-view>
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { // ... }
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DxTreeViewModule } from 'devextreme-angular'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, DxTreeViewModule ], providers: [ ], bootstrap: [AppComponent] }) export class AppModule { }
Vue
<template> <DxTreeView ... collapseIcon="minus" // icon from the DevExtreme icon library expandIcon="https://path/to/the/expand_icon.svg" // icon in the SVG format /> </template> <script> import 'devextreme/dist/css/dx.light.css'; import DxTreeView from 'devextreme-vue/tree-view'; export default { components: { DxTreeView }, // ... } </script>
<template> <DxTreeView ... collapseIcon="minus" // icon from the DevExtreme icon library expandIcon="https://path/to/the/expand_icon.svg" // icon in the SVG format /> </template> <script setup> import 'devextreme/dist/css/dx.light.css'; import DxTreeView from 'devextreme-vue/tree-view'; // ... </script>
React
import React from 'react'; import 'devextreme/dist/css/dx.light.css'; import TreeView from 'devextreme-react/tree-view'; export default function App() { return ( <TreeView ... collapseIcon="minus" // icon from the DevExtreme icon library expandIcon="https://path/to/the/expand_icon.svg" // icon in the SVG format /> ); }
See Also
expandNodesRecursive
Specifies whether or not all parent nodes of an initially expanded node are displayed expanded.
hasItemsExpr
Specifies the name of the data source item field whose value defines whether or not the corresponding node includes child nodes.
height
Specifies the UI component's height.
This property accepts a value of one of the following types:
Number
The height in pixels.String
A CSS-accepted measurement of height. For example,"55px"
,"20vh"
,"80%"
,"inherit"
.Function (deprecated since v21.2)
Refer to the W0017 warning description for information on how you can migrate to viewport units.
hint
Specifies text for a hint that appears when a user pauses on the UI component.
items[]
An array of items displayed by the UI component.
The TreeView works with object collections that can have a plain or hierarchical structure. Depending on the structure, the objects should provide different data fields. Specify the dataStructure property to notify the TreeView of the used structure and refer to the property's description for information on the required fields.
If you need to update the UI component items, reassign the entire items array as shown in the following example:
treeViewInstance.option('items', newItems);
As an alternative to items, you can use the dataSource property. It accepts the DataSource object, whose underlying stores provide an API that allows you to update individual items without reassigning the entire item collection.
itemsExpr
Specifies which data field contains nested items. Applies only if the dataStructure property is "tree".
itemTemplate
Specifies a custom template for items.
keyExpr
Specifies which data field provides keys for TreeView items.
See Also
noDataText
Specifies the text or HTML markup displayed by the UI component if the item collection is empty.
The TreeView component evaluates the noDataText property's value. This evaluation, however, makes the TreeView potentially vulnerable to XSS attacks. To guard against these attacks, encode the HTML markup before you assign it to the noDataText property. Refer to the following help topic for more information: Potentially Vulnerable API - noDataText.
onContentReady
A function that is executed when the UI component is rendered and each time the component is repainted.
Information about the event.
Name | Type | Description |
---|---|---|
model | any |
The model data. Available only if you use Knockout. |
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
component |
The UI component's instance. |
onDisposing
A function that is executed before the UI component is disposed of.
Information about the event.
Name | Type | Description |
---|---|---|
model | any |
The model data. Available only if you use Knockout. |
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
component |
The UI component's instance. |
onInitialized
A function used in JavaScript frameworks to save the UI component instance.
Information about the event.
Name | Type | Description |
---|---|---|
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
component |
The UI component's instance. |
Angular
<dx-tree-view ... (onInitialized)="saveInstance($event)"> </dx-tree-view>
import { Component } from "@angular/core"; import TreeView from "devextreme/ui/data_grid"; // ... export class AppComponent { treeViewInstance: TreeView; saveInstance (e) { this.treeViewInstance = e.component; } }
Vue
<template> <div> <DxTreeView ... @initialized="saveInstance"> </DxTreeView> </div> </template> <script> import DxTreeView from 'devextreme-vue/tree-view'; export default { components: { DxTreeView }, data: function() { return { treeViewInstance: null }; }, methods: { saveInstance: function(e) { this.treeViewInstance = e.component; } } }; </script>
<template> <div> <DxTreeView ... @initialized="saveInstance"> </DxTreeView> </div> </template> <script setup> import DxTreeView from 'devextreme-vue/tree-view'; let treeViewInstance = null; const saveInstance = (e) => { treeViewInstance = e.component; } </script>
React
import TreeView from 'devextreme-react/tree-view'; class App extends React.Component { constructor(props) { super(props); this.saveInstance = this.saveInstance.bind(this); } saveInstance(e) { this.treeViewInstance = e.component; } render() { return ( <div> <TreeView onInitialized={this.saveInstance} /> </div> ); } }
See Also
onItemClick
A function that is executed when a collection item is clicked or tapped.
Information about the event.
Name | Type | Description |
---|---|---|
model | any |
Model data. Available only if Knockout is used. |
itemIndex |
The clicked item's index. |
|
itemElement |
The clicked item's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
itemData |
The clicked item's data object. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is an EventObject or a jQuery.Event when you use jQuery. |
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
component |
The UI component's instance. |
|
node |
The clicked item's node. |
onItemCollapsed
A function that is executed when a tree view item is collapsed.
Information about the event.
Name | Type | Description |
---|---|---|
component |
The UI component's instance. |
|
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is an EventObject or a jQuery.Event when you use jQuery. |
itemData |
The collapsed item's data. |
|
itemElement |
The item's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
itemIndex |
The item's index. |
|
model | any |
Model data. Available only if Knockout is used. |
node |
The item's node. |
See Also
onItemContextMenu
A function that is executed when a collection item is right-clicked or pressed.
Information about the event.
Name | Type | Description |
---|---|---|
model | any |
Model data. Available only if Knockout is used. |
itemIndex |
The target item's index. |
|
itemElement |
The target item's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
itemData |
The target item's data object. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is an EventObject or a jQuery.Event when you use jQuery. |
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
component |
The UI component's instance. |
|
node |
The target item's node. |
onItemExpanded
A function that is executed when a tree view item is expanded.
Information about the event.
Name | Type | Description |
---|---|---|
component |
The UI component's instance. |
|
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is an EventObject or a jQuery.Event when you use jQuery. |
itemData |
The expanded item's data. |
|
itemElement |
The item's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
itemIndex |
The item's index. |
|
model | any |
Model data. Available only if Knockout is used. |
node |
The item's node. |
See Also
onItemHold
A function that is executed when a collection item has been held for a specified period.
Information about the event.
Name | Type | Description |
---|---|---|
model | any |
Model data. Available only if Knockout is used. |
itemIndex |
The item's index. |
|
itemElement |
The item's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
itemData |
The data object of the item being held. |
|
event | Event (jQuery or EventObject) |
The event that caused the function to execute. It is an EventObject or a jQuery.Event when you use jQuery. |
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
component |
The UI component's instance. |
|
node |
The node of the item being held. |
onItemRendered
A function that is executed after a collection item is rendered.
Information about the event.
Name | Type | Description |
---|---|---|
model | any |
Model data. Available only if Knockout is used. |
itemIndex |
The rendered item's index. |
|
itemElement |
The rendered item's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
itemData |
The rendered item's data object. |
|
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
component |
The UI component's instance. |
|
node |
The rendered item's node. |
onItemSelectionChanged
A function that is executed when a single TreeView item is selected or selection is canceled.
Information about the event.
Name | Type | Description |
---|---|---|
component |
The UI component's instance. |
|
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
itemElement |
The item's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model | any |
Model data. Available only if Knockout is used. |
node |
The item's node. |
|
itemData |
The selected item's data. |
|
itemIndex |
The item's index. |
This function is executed when:
Users select an item by click or using its checkbox.
The selectItem() or unselectItem() method is called.
Alternatively, you can use the onSelectionChanged function, which is executed in all the cases above, and when all items are selected simultaneously.
onOptionChanged
A function that is executed after a UI component property is changed.
Information about the event.
Name | Type | Description |
---|---|---|
value | any |
The modified property's new value. |
previousValue | any |
The UI component's previous value. |
name |
The modified property if it belongs to the first level. Otherwise, the first-level property it is nested into. |
|
model | any |
Model data. Available only if you use Knockout. |
fullName |
The path to the modified property that includes all parent properties. |
|
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
component |
The UI component's instance. |
The following example shows how to subscribe to component property changes:
jQuery
$(function() { $("#treeViewContainer").dxTreeView({ // ... onOptionChanged: function(e) { if(e.name === "changedProperty") { // handle the property change here } } }); });
Angular
<dx-tree-view ... (onOptionChanged)="handlePropertyChange($event)"> </dx-tree-view>
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { // ... handlePropertyChange(e) { if(e.name === "changedProperty") { // handle the property change here } } }
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DxTreeViewModule } from 'devextreme-angular'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, DxTreeViewModule ], providers: [ ], bootstrap: [AppComponent] }) export class AppModule { }
Vue
<template> <DxTreeView ... @option-changed="handlePropertyChange" /> </template> <script> import 'devextreme/dist/css/dx.light.css'; import DxTreeView from 'devextreme-vue/tree-view'; export default { components: { DxTreeView }, // ... methods: { handlePropertyChange: function(e) { if(e.name === "changedProperty") { // handle the property change here } } } } </script>
React
import React from 'react'; import 'devextreme/dist/css/dx.light.css'; import TreeView from 'devextreme-react/tree-view'; const handlePropertyChange = (e) => { if(e.name === "changedProperty") { // handle the property change here } } export default function App() { return ( <TreeView ... onOptionChanged={handlePropertyChange} /> ); }
onSelectAllValueChanged
A function that is executed when the "Select All" check box value is changed. Applies only if showCheckBoxesMode is "selectAll" and selectionMode is "multiple".
Information about the event.
Name | Type | Description |
---|---|---|
component |
The UI component's instance. |
|
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model | any |
Model data. Available only if Knockout is used. |
value | | undefined |
The "Select All" check box's new state. |
See Also
onSelectionChanged
A function that is executed when a TreeView item is selected or selection is canceled.
Information about the event.
Name | Type | Description |
---|---|---|
component |
The UI component's instance. |
|
element |
The UI component's container. It is an HTML Element or a jQuery Element when you use jQuery. |
|
model | any |
Model data. Available only if Knockout is used. |
This function is executed when:
Users select an item by click or using a checkbox.
One of the following methods is called: selectAll(), unselectAll(), selectItem(), unselectItem().
parentIdExpr
Specifies the name of the data source item field for holding the parent key of the corresponding node.
This property is used if the dataStructure property is set to "plain".
rootValue
Specifies the parent ID value of the root item.
rtlEnabled
Switches the UI component to a right-to-left representation.
When this property is set to true, the UI component text flows from right to left, and the layout of elements is reversed. To switch the entire application/site to the right-to-left representation, assign true to the rtlEnabled field of the object passed to the DevExpress.config(config) method.
DevExpress.config({ rtlEnabled: true });
searchEditorOptions
Configures the search panel.
See the TextBox Configuration for properties you can specify in this object.
Angular
Vue
searchEnabled
Specifies whether the search panel is visible.
See Also
searchExpr
Specifies a data object's field name or an expression whose value is compared to the search string.
If you need to search several fields, assign an array of field names to this property.
searchExpr: ["firstName", "lastName"]
searchTimeout
Specifies a delay in milliseconds between when a user finishes typing, and the search is executed.
selectedExpr
Specifies the name of the data source item field whose value defines whether or not the corresponding UI component items is selected.
selectionMode
Specifies item selection mode. Applies only if selection is enabled.
To enable selection, set selectByClick to true or showCheckBoxesMode to "normal" or "selectAll".
selectNodesRecursive
Specifies whether all child nodes should be selected when their parent node is selected. Applies only if the selectionMode is "multiple".
showCheckBoxesMode
Specifies the checkbox display mode.
The property accepts the following values:
"none"
The UI component does not display checkboxes."normal"
The UI component displays one checkbox per item."selectAll"
The UI component displays one checkbox per item and one "Select All" checkbox at the top of the UI component. The selectionMode should be "multiple".
See Also
tabIndex
Specifies the number of the element when the Tab key is used for navigating.
The value of this property will be passed to the tabindex
attribute of the HTML element that underlies the UI component.
virtualModeEnabled
Enables the virtual mode in which nodes are loaded on demand. Use it to enhance the performance on large datasets.
If this property is true, the UI component initially loads only the root nodes. Child nodes are loaded when their parent is being expanded.
The virtual mode has the following restrictions:
The dataSource property should be set to a DataSource instance able to filter items by parent ID.
The dataStructure property should be set to "plain".
Since the search will be performed on loaded nodes only and thus produce incorrect results, it is not recommended that you enable this functionality.
See Also
width
Specifies the UI component's width.
This property accepts a value of one of the following types:
Number
The width in pixels.String
A CSS-accepted measurement of width. For example,"55px"
,"20vw"
,"80%"
,"auto"
,"inherit"
.Function (deprecated since v21.2)
Refer to the W0017 warning description for information on how you can migrate to viewport units.
If you have technical questions, please create a support ticket in the DevExpress Support Center.