syncfusion-react-dropdown-tree
Implement Syncfusion React Dropdown Tree component for hierarchical data selection with dropdown interaction. Use this when working with multi-select checkboxes, lazy loading, remote OData integration, custom templates, keyboard navigation, RTL support, or localized interfaces. Supports auto-check h
By syncfusion · 606 installs
npx skills add syncfusion/react-ui-components-skills --skill syncfusion-react-dropdown-tree
Source repository · Upstream listing
Implementing Dropdown Tree
The Dropdown Tree component displays hierarchical data in a collapsible tree structure within a dropdown interface. It combines tree navigation with dropdown accessibility, supporting multi selection via checkboxes, lazy loading for large datasets, comprehensive customization through templates and events, filtering, and full accessibility with RTL and localization support.
When to Use This Skill
Use Dropdown Tree immediately when you need to:
Display hierarchical data Show nested categories, organizational structures, file trees, or department hierarchies
Enable multi selection Allow users to select multiple items with checkbox support or keyboard modifiers
Support lazy loading Optimize performance with large datasets by loading children on demand
Customize display Use templates to format items, headers, footers, selected values, or error states
Implement filtering Enable search functionality with configurable filter types (StartsWith, EndsWith, Contains)
Ensure accessibility Provide WAI ARIA compliance, keyboard navigation, and screen reader support
Support multiple languages Localize UI with customizable keys and RTL support
Bind remote data Integrate with OData, OData V4, Web APIs, or other remote data services
Handle complex selection logic Use events, auto check hierarchy, or selective node disabling
Component Overview
The Dropdown Tree features:
Hierarchical display : Local (hierarchical/self referential) and remote data sources with flexible binding
Multi selection modes : Checkboxes with auto check, multi select with Ctrl/Shift keys, single select (default)
Flexible templates : Item, value, header, footer, noRecords, and actionFailure templates for custom rendering
Performance optimization : Lazy loading (load on demand) for efficient large dataset handling
Search & filtering : Built in filter bar with configurable filter types and case sensitivity options
Comprehensive events : change, select, dataBound, filtering, beforeOpen, focus, keyPress, and popup events
Accessibility : Full WAI ARIA (roles, attributes), keyboard navigation, screen reader support, WCAG 2.2 compliance
Localization : Multi language support with 4 customizable keys and locale override
RTL support : Right to left layout rendering
Tree settings : Advanced configuration (expandOn, autoCheck, loadOnDemand, checkDisabledChildren)
Field mapping : Flexible data structure support (value, text, child, parentValue, expanded, hasChildren, selectable, iconCss, imageUrl, htmlAttributes)
Display modes : Default, Delimiter, and Custom modes for selected items
Documentation and Navigation Guide
Getting Started
📄 Read: [references/getting started.md](references/getting started.md)
Installation and package dependencies (npm install command)
React/TypeScript project setup (Vite and Create React App)
Basic component implementation and initialization
CSS imports and theme configuration
First render and minimal working example
Data Binding
📄 Read: [references/data binding.md](references/data binding.md)
Local data binding (hierarchical and self referential structures)
Remote data with DataManager and various adaptors (OData, OData V4, WebAPI, URL)
Field mapping for value, text, child, parentValue, expanded, hasChildren
Load on demand (lazy loading) for large datasets
Preventing node selection with selectable field
Query configuration for remote data services
Checkbox & Multi Selection
📄 Read: [references/checkbox selection.md](references/checkbox selection.md)
Enabling checkbox support with showCheckBox property
Multi selection workflow and accessing selected values
Auto check hierarchical behavior (parent child synchronization)
Select All feature with customizable selectAllText and unSelectAllText
Intermediate checkbox states for partial selection
CheckDisabledChildren behavior for disabled nodes
Templates
📄 Read: [references/templates.md](references/templates.md)
Item template for custom list item rendering
Value template for selected display customization
Header template for static content above items
Footer template for static content below items
NoRecords template for empty state handling
ActionFailure template for error state handling
CustomTemplate for multi select display customization
Template expression syntax and data access patterns
Multi Selection & Filtering
📄 Read: [references/multi selection filtering.md](references/multi selection filtering.md)
allowMultiSelection property and Ctrl/Shift keyboard interaction
Display modes: Default, Delimiter, Custom
delimiterChar and mode configuration
allowFiltering and filter bar implementation
Filter types: StartsWith, EndsWith, Contains
filterBarPlaceholder customization
ignoreCase and ignoreAccent options
Tree Settings & Configuration
📄 Read: [references/tree settings.md](references/tree settings.md)
loadOnDemand for lazy loading implementation
autoCheck for hierarchical checkbox synchronization
expandOn behavior (Auto, Click, DblClick, None)
checkDisabledChildren for disabled node handling
Tree expansion and collapse control
Field Mapping & Custom Data Structures
📄 Read: [references/field mapping.md](references/field mapping.md)
Core fields: value, text, dataSource, child, parentValue
Node state fields: expanded, hasChildren, selected, selectable
Display enhancement fields: iconCss, imageUrl, htmlAttributes
Query and tableName for remote data
Nested field mapping for hierarchical data
Advanced Features & API Reference
📄 Read: [references/advanced features.md](references/advanced features.md)
Properties (60+ properties with descriptions and examples)
Methods (getSelectedNodes, getCheckedNodes, setCheckedNodes, etc.)
Events (change, select, dataBound, filtering, beforeOpen, focus, keyPress, popup)
Event arguments (EventArgs structures with property descriptions)
Styling and CSS customization
Performance optimization techniques
Accessibility & Localization
📄 Read: [references/accessibility localization.md](references/accessibility localization.md)
WCAG 2.2 and Section 508 compliance standards
WAI ARIA attributes and roles (listbox, treeitem, checkbox, group, etc.)
Keyboard navigation shortcuts (Alt+Down, Arrow keys, Enter, Space, etc.)
Screen reader and assistive technology support
Localization keys (noRecordsTemplate, actionFailureTemplate, overflowCountTemplate, totalCountTemplate)
Culture customization with locale property
RTL (Right to Left) language support with enableRtl
Quick Start
Basic Dropdown Tree with Hierarchical Data
With Checkboxes and Auto Check
With Filtering
With Custom Templates
Common Patterns
Pattern 1: Self Referential Data Binding
For flat data structures with parent references:
Pattern 2: Event Handling for Selection Changes
Pattern 3: Multi Select with Auto Check
Pattern 4: Lazy Loading for Large Datasets
Pattern 5: Custom Item Styling with IconCss
Pattern 6: RTL & Localization Support
Key Props Overview
Property Type Description
Core
id string Unique identifier for the component
fields FieldsModel Data source and field mapping configuration
placeholder string Input placeholder text
enabled boolean Enable/disable component (default: true)
Selection
showCheckBox boolean Enable checkbox multi selection (default: false)
showSelectAll boolean Show Select All checkbox (default: false)
selectAllText string "Select All" label text
unSelectAllText string "Unselect All" label text
allowMultiSelection boolean Enable multi selection with Ctrl/Shift keys
Templates
itemTemplate string \ Function Custom item rendering
valueTemplate string \ Function Custom selected value display
headerTemplate string \ Function Custom header content
footerTemplate string \ Function Custom footer content
noRecordsTemplate string \ Function Empty state template
actionFailureTemplate string \ Function Error state template
Filtering
allowFiltering boolean Enable search/filter bar (default: false)
filterType TreeFilterType Filter type: StartsWith, EndsWith, Contains
filterBarPlaceholder string Filter bar placeholder text
ignoreCase boolean Case insensitive filtering (default: true)
ignoreAccent boolean Ignore diacritics in filtering
Tree Settings
treeSettings TreeSettingsModel Tree behavior configuration (autoCheck, loadOnDemand, expandOn)
Display
mode string Display mode: Default, Delimiter, Custom
delimiterChar string Delimiter for multi select (default: ", ")
customTemplate string Custom multi select display template
Localization & RTL
locale string Culture code (default: "en")
enableRtl boolean Enable Right to Left layout
enablePersistence boolean Persist state between page reloads
Styling
cssClass string CSS class for root and popup
width string \ number Component width
popupHeight string \ number Popup height
htmlAttributes object HTML attributes for the component
Decision Guide
Choosing Data Binding:
Local hierarchical Nested JSON objects with child property for small to medium datasets
Local self referential Flat arrays with parentValue field for structured data
Remote with DataManager OData/Web API for large datasets, dynamic loading, real time data
Choosing Selection Mode:
Single select Default (no checkboxes, no multi select), read only visual selection
Checkboxes showCheckBox={true} for explicit multi selection
Multi select allowMultiSelection={true} for Ctrl/Shift keyboard selection
Auto check Combine checkboxes with treeSettings={{ autoCheck: true }} for hierarchy sync
Choosing Template:
itemTemplate Custom formatting per tree item (name + description, icons, badges)
valueTemplate Custom display in input field (combined text, formatted values)
headerTemplate Static controls above list (instructions, search help, custom controls)
footerTemplate Static content below list (count summary, action buttons)
noRecordsTemplate Empty state when no data or search yields no results
actionFailureTemplate Error message when data fetch fails
When to Use Lazy Loading:
Large datasets (1000+ items)
Performance critical applications
Data fetched from remote API with pagination
Hierarchies with many levels
When to Use Filtering:
Large datasets requiring search
User friendly discovery of items
Reducing cognitive load for selection
Next Steps
Get started → Read [getting started.md](references/getting started.md)
Bind data → Read [data binding.md](references/data binding.md)
Add checkboxes → Read [checkbox selection.md](references/checkbox selection.md)
Enable filtering → Read [multi selection filtering.md](references/multi selection filtering.md)
Configure trees → Read [tree settings.md](references/tree settings.md)
Map fields → Read [field mapping.md](references/field mapping.md)
Customize → Read [templates.md](references/templates.md)
Access APIs → Read [advanced features.md](references/advanced features.md)
Enhance UX → Read [accessibility localization.md](references/accessibility localization.md)