MCPInstall

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 hierarchy, filtering, tree settings, comprehensive event handling, and full accessibility.

Installs
704
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/syncfusion/react-ui-components-skills --skill syncfusion-react-dropdown-tree
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads syncfusion-react-dropdown-tree automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

import { DropDownTreeComponent } from '@syncfusion/ej2-react-dropdowns';
import '@syncfusion/ej2-dropdowns/styles/material.css';

function App() {
  const data = [
    { id: '1', name: 'Electronics', expanded: true },
    { id: '2', name: 'Laptops', parentId: '1' },
    { id: '3', name: 'Phones', parentId: '1' },
    { id: '4', name: 'Appliances' },
  ];

  return (
    <DropDownTreeComponent
      id="dropdowntree"
      fields={{ dataSource: data, value: 'id', text: 'name', parentValue: 'parentId', hasChildren: 'hasChild' }}
      placeholder="Select an item"
    />
  );
}

export default App;

With Checkboxes and Auto-Check

<DropDownTreeComponent
  id="dropdowntree"
  fields={{ dataSource: data, value: 'id', text: 'name', parentValue: 'parentId', hasChildren: 'hasChild' }}
  showCheckBox={true}
  showSelectAll={true}
  treeSettings={{ autoCheck: true }}
  placeholder="Select items"
/>

With Filtering

<DropDownTreeComponent
  id="dropdowntree"
  fields={{ dataSource: data, value: 'id', text: 'name', parentValue: 'parentId' }}
  allowFiltering={true}
  filterType="Contains"
  filterBarPlaceholder="Search items..."
  placeholder="Select an item"
/>

With Custom Templates

<DropDownTreeComponent
  id="dropdowntree"
  fields={{ dataSource: data, value: 'id', text: 'name', parentValue: 'parentId' }}
  itemTemplate={(props) => (
    <div style={{ display: 'flex', gap: '8px', alignItems: 'center' }}>
      <span>{props.name}</span>
      <small style={{ color: '#999' }}>({props.category})</small>
    </div>
  )}
  valueTemplate={(props) => <span>{props.name}</span>}
  placeholder="Select item"
/>

Common Patterns

Pattern 1: Self-Referential Data Binding

For flat data structures with parent references:

const data = [
  { id: 1, name: 'Discover Music', hasChild: true, expanded: true },
  { id: 2, pid: 1, name: 'Hot Singles' },
  { id: 3, pid: 1, name: 'Rising Artists' },
  { id: 7, name: 'Sales and Events', hasChild: true },
  { id: 8, pid: 7, name: '100 Albums' },
];

<DropDownTreeComponent
  id="dropdowntree"
  fields={{
    dataSource: data,
    value: 'id',
    text: 'name',
    parentValue: 'pid',
    hasChildren: 'hasChild',
  }}
/>

Pattern 2: Event Handling for Selection Changes

const handleChange = (args) => {
  console.log('Old values:', args.oldValue); // string[]
  console.log('New values:', args.value); // string[]
  console.log('User interaction:', args.isInteracted); // boolean
};

const handleSelect = (args) => {
  console.log('Action:', args.action); // 'select' or 'unselect'
  console.log('Item data:', args.itemData); // object
};

<DropDownTreeComponent
  id="dropdowntree"
  fields={fields}
  onChange={handleChange}
  onSelect={handleSelect}
/>

Pattern 3: Multi-Select with Auto-Check

<DropDownTreeComponent
  id="dropdowntree"
  fields={fields}
  showCheckBox={true}
  treeSettings={{ autoCheck: true }}
  mode="Default"
  delimiterChar=", "
  placeholder="Select multiple items"
/>

Pattern 4: Lazy Loading for Large Datasets

const remoteData = new DataManager({
  url: 'url',
  adaptor: new UrlAdaptor(),
});

<DropDownTreeComponent
  id="dropdowntree"
  fields={{ dataSource: remoteData, value: 'id', text: 'name', hasChildren: 'hasChild' }}
  treeSettings={{ loadOnDemand: true }}
  placeholder="Loading..."
/>

Pattern 5: Custom Item Styling with IconCss

const data = [
  { id: 1, name: 'Documents', iconCss: 'e-folder', hasChild: true },
  { id: 2, pid: 1, name: 'Resume.pdf', iconCss: 'e-pdf' },
  { id: 3, pid: 1, name: 'Report.docx', iconCss: 'e-docx' },
];

<DropDownTreeComponent
  id="dropdowntree"
  fields={{
    dataSource: data,
    value: 'id',
    text: 'name',
    iconCss: 'iconCss',
    parentValue: 'pid',
    hasChildren: 'hasChild',
  }}
/>

Pattern 6: RTL & Localization Support

<DropDownTreeComponent
  id="dropdowntree"
  fields={fields}
  enableRtl={true}
  locale="ar"
  placeholder="اختر عنصرا"
/>

Key Props Overview

PropertyTypeDescription
Core
idstringUnique identifier for the component
fieldsFieldsModelData source and field mapping configuration
placeholderstringInput placeholder text
enabledbooleanEnable/disable component (default: true)
Selection
showCheckBoxbooleanEnable checkbox multi-selection (default: false)
showSelectAllbooleanShow Select All checkbox (default: false)
selectAllTextstring"Select All" label text
unSelectAllTextstring"Unselect All" label text
allowMultiSelectionbooleanEnable multi-selection with Ctrl/Shift keys
Templates
itemTemplatestring | FunctionCustom item rendering
valueTemplatestring | FunctionCustom selected value display
headerTemplatestring | FunctionCustom header content
footerTemplatestring | FunctionCustom footer content
noRecordsTemplatestring | FunctionEmpty state template
actionFailureTemplatestring | FunctionError state template
Filtering
allowFilteringbooleanEnable search/filter bar (default: false)
filterTypeTreeFilterTypeFilter type: StartsWith, EndsWith, Contains
filterBarPlaceholderstringFilter bar placeholder text
ignoreCasebooleanCase-insensitive filtering (default: true)
ignoreAccentbooleanIgnore diacritics in filtering
Tree Settings
treeSettingsTreeSettingsModelTree behavior configuration (autoCheck, loadOnDemand, expandOn)
Display
modestringDisplay mode: Default, Delimiter, Custom
delimiterCharstringDelimiter for multi-select (default: ", ")
customTemplatestringCustom multi-select display template
Localization & RTL
localestringCulture code (default: "en")
enableRtlbooleanEnable Right-to-Left layout
enablePersistencebooleanPersist state between page reloads
Styling
cssClassstringCSS class for root and popup
widthstring | numberComponent width
popupHeightstring | numberPopup height
htmlAttributesobjectHTML 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
  • Bind data → Read data-binding.md
  • Add checkboxes → Read checkbox-selection.md
  • Enable filtering → Read multi-selection-filtering.md
  • Configure trees → Read tree-settings.md
  • Map fields → Read field-mapping.md
  • Customize → Read templates.md
  • Access APIs → Read advanced-features.md
  • Enhance UX → Read accessibility-localization.md

FAQ

What does the syncfusion-react-dropdown-tree skill do?

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 hierarchy, filtering, tree settings, comprehensive event handling, and full accessibility.

How do I install syncfusion-react-dropdown-tree?

Run npx skills add https://github.com/syncfusion/react-ui-components-skills --skill syncfusion-react-dropdown-tree in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-react-dropdown-tree/ (personal) or .claude/skills/syncfusion-react-dropdown-tree/ (project).

Which AI agents can use syncfusion-react-dropdown-tree?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is syncfusion-react-dropdown-tree safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains syncfusion-react-dropdown-tree?

It is published by syncfusion in syncfusion/react-ui-components-skills. It has 704 recorded installs.

More from syncfusion/react-ui-components-skills

View all →

syncfusion-react-grid

syncfusion/react-ui-components-skills

Implements Syncfusion React Grid component for feature-rich data tables and grids. Use this when working with data display, sorting, filtering, grouping, aggregates, editing, or exporting. This skill covers grid configuration, CRUD operations, virtual scrolling or infinite scrolling, hierarchy grids, state persistence, and advanced data management features for data-intensive applications.

Frontend & Design824 installs

syncfusion-react-scheduler

syncfusion/react-ui-components-skills

Implement Syncfusion React Scheduler component for calendar, event scheduling, and appointment management. Use this when building scheduling systems, calendar applications, booking systems, or time management interfaces. Covers all scheduler views (Day, Week, Month, Timeline, Agenda, Year), data binding, resource scheduling, recurring events, CRUD operations, drag-and-drop scheduling, customization, accessibility, and advanced features.

Frontend & Design784 installs

syncfusion-react-gantt-chart

syncfusion/react-ui-components-skills

Implement, configure, and customize the Syncfusion React Gantt Chart component. Use this when building project scheduling applications with task timelines, dependencies, resource management, and calendar-driven scheduling. Covers GanttComponent setup, task constraints, taskbar customization, filtering, sorting, Excel/PDF export, critical path analysis, milestones, predecessors, resource view, baseline tracking, and task calendar configuration.

Frontend & Design774 installs

syncfusion-react-rich-text-editor

syncfusion/react-ui-components-skills

Implements the Syncfusion React Rich Text Editor (RichTextEditorComponent) from ej2-react-richtexteditor, supporting HTML (WYSIWYG) and Markdown editing. Use this skill for toolbar configuration, image/video/audio insertion, paste cleanup, AI assistant integration, emoji picker, slash menu, mentions, import/export Word/PDF, form validation, and source code view in React applications.

Frontend & Design758 installs

syncfusion-react-charts

syncfusion/react-ui-components-skills

Implement Syncfusion React Charts component for data visualization. Use this when creating charts, configuring axes and series, or customizing visualization styles. This skill covers chart types, data binding, user interactions, financial indicators, accessibility features, and professional data visualization in React applications.

Frontend & Design750 installs

syncfusion-react-treegrid

syncfusion/react-ui-components-skills

Implements Syncfusion React TreeGrid for hierarchical data with sorting, filtering, editing, exporting, paging, virtual scrolling, and advanced features. Supports configuration, CRUD, aggregates, templates, state persistence, and performance optimization in React applications.

Frontend & Design747 installs

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs