Skip to main content

syncfusion-blazor-dropdown-tree

Implement Syncfusion Blazor Dropdown Tree component for hierarchical data selection with single/multi-selection, checkboxes, filtering, and advanced customization. Use this skill whenever the user needs to display tree-structured data in a dropdown, select single or multiple hierarchical items, implement checkboxes for multi-item selection, filter tree data, customize templates, bind to remote data sources, or handle tree-related events and validation.

Informações da origem

Repositório
syncfusion/blazor-ui-components-skills
Última atividade na origem
6 de julho de 2026 às 07:20
Idioma detectado do SKILL.md
inglês
Estrelas
4
Forks
1

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
11 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
syncfusion-blazor-dropdown-tree
description
Implement Syncfusion Blazor Dropdown Tree component for hierarchical data selection with single/multi-selection, checkboxes, filtering, and advanced customization. Use this skill whenever the user needs to display tree-structured data in a dropdown, select single or multiple hierarchical items, implement checkboxes for multi-item selection, filter tree data, customize templates, bind to remote data sources, or handle tree-related events and validation.
metadata
{"author":"Syncfusion Inc","version":"34.1.29","category":"Dropdowns"}
# Implementing Syncfusion Blazor Dropdown Tree Component The Blazor Dropdown Tree component is a hierarchical data selection control that displays tree-structured data in a dropdown popup. It supports local and remote data binding, single and multi-selection modes, checkboxes, filtering, custom templates, and comprehensive event handling. ## When to Use This Skill - **Display hierarchical data** in a compact dropdown format - **Single selection**: Allow users to select one item from a tree structure (default mode) - **Multi-selection**: Enable selection of multiple tree nodes using CTRL+SHIFT shortcuts - **Checkbox selection**: Provide checkbox-based multi-selection with dependent state management - **Filter tree data**: Implement search functionality to filter nodes by text - **Remote data sources**: Bind to OData, OData V4, Web API, or custom service endpoints - **Custom templates**: Personalize item display, selected value display, and popup header - **Handle events**: Respond to lifecycle events, selection changes, popup actions - **Form validation**: Integrate with form validation frameworks - **Styling and appearance**: Apply CSS classes, disabled states, and theme customization ## Documentation and Navigation Guide ### Getting Started 📄 **Read:** [references/getting-started.md](references/getting-started.md) - Installation and NuGet package setup - Web and Server app configuration - Basic component initialization - Data binding fundamentals - First working example ### Selection and Modes 📄 **Read:** [references/selection-and-modes.md](references/selection-and-modes.md) - Single selection (default behavior) - Multi-selection with AllowMultiSelection property - Keyboard shortcuts (CTRL, SHIFT) - Preselected values and dynamic selection - Getting selected values with @bind-Value - Clearing selection ### Checkbox Features 📄 **Read:** [references/checkbox-features.md](references/checkbox-features.md) - ShowCheckBox property for multi-item selection - AutoUpdateCheckState for dependent parent-child relationships - ShowSelectAll for selecting/deselecting all nodes - SelectAllAsync and programmatic selection methods ### Data Binding and Remote Data 📄 **Read:** [references/data-binding-operations.md](references/data-binding-operations.md) - Local data binding (hierarchical and self-referential) - ExpandoObject and DynamicObject binding - Remote data with ODataAdaptor, ODataV4Adaptor, WebApiAdaptor - Entity Framework integration - Observable collections with dynamic data updates - Load on Demand for large datasets - Adding/removing items dynamically - GetTreeViewData method for retrieving node information ### Events and Callbacks 📄 **Read:** [references/events-callbacks.md](references/events-callbacks.md) - Lifecycle events (Created, Destroyed) - Popup events (OnPopupOpen, OnPopupClose) - Selection events (ValueChanging, ValueChanged) - Filtering event with custom filters - OnActionFailure for error handling - Event handlers and async support ### Filtering and Search 📄 **Read:** [references/filtering-search.md](references/filtering-search.md) - AllowFiltering property to enable search - FilterType options (StartsWith, EndsWith, Contains) - IgnoreCase for case-insensitive filtering - FilterBarPlaceholder customization - Minimum filter length implementation ### Sorting 📄 **Read:** [references/sorting.md](references/sorting.md) - SortOrder property (None, Ascending, Descending) - Dynamic sorting updates ### Templates and Customization 📄 **Read:** [references/templates-customization.md](references/templates-customization.md) - ItemTemplate for custom node rendering - ValueTemplate for selected value display - HeaderTemplate for popup header customization - Advanced styling and layout patterns ### Styling and Appearance 📄 **Read:** [references/styling-appearance.md](references/styling-appearance.md) - Disabled state configuration - CssClass property with predefined classes (e-success, e-warning, e-error, e-outline) - PopupWidth and PopupHeight customization - ZIndex for layer management - Theme support and responsive design ### Form Validation and Configuration 📄 **Read:** [references/validation-localization.md](references/validation-localization.md) - Form validation integration - Value binding in forms - Localization support - PopupSettings configuration - Accessibility and placeholder settings ## Quick Start Example ```razor @using Syncfusion.Blazor.Navigations <SfDropDownTree TItem="EmployeeData" TValue="string" Placeholder="Select an employee" Width="500px"> <DropDownTreeField TItem="EmployeeData" DataSource="Data" ID="Id" Text="Name" HasChildren="HasChild" ParentID="PId"> </DropDownTreeField> </SfDropDownTree> @code { List<EmployeeData> Data = new List<EmployeeData> { new EmployeeData() { Id = "1", Name = "Steven Buchanan", Job = "General Manager", HasChild = true, Expanded = true }, new EmployeeData() { Id = "2", PId = "1", Name = "Laura Callahan", Job = "Product Manager", HasChild = true }, new EmployeeData() { Id = "3", PId = "2", Name = "Andrew Fuller", Job = "Team Lead", HasChild = true }, new EmployeeData() { Id = "4", PId = "3", Name = "Anne Dodsworth", Job = "Developer" }, }; public class EmployeeData { public string? Id { get; set; } public string? Name { get; set; } public string? Job { get; set; } public bool HasChild { get; set; } public bool Expanded { get; set; } public string? PId { get; set; } } } ``` ## Common Patterns ### Pattern 1: Multi-Selection with Checkboxes Enable checkbox-based selection with automatic parent-child state management: ```razor <SfDropDownTree TItem="EmployeeData" TValue="string" ShowCheckBox="true" AutoUpdateCheckState="true" ShowSelectAll="true"> <DropDownTreeField TItem="EmployeeData" DataSource="Data" ID="Id" Text="Name" HasChildren="HasChild" ParentID="PId"> </DropDownTreeField> </SfDropDownTree> ``` ### Pattern 2: Preselected Values Set default selected nodes using @bind-Value with AllowMultiSelection: ```razor <SfDropDownTree TItem="EmployeeData" TValue="string" AllowMultiSelection="true" @bind-Value="@SelectedIds"> <DropDownTreeField TItem="EmployeeData" DataSource="Data" ID="Id" Text="Name" HasChildren="HasChild" ParentID="PId"> </DropDownTreeField> </SfDropDownTree> @code { List<string> SelectedIds = new List<string>() { "1", "5" }; } ``` ### Pattern 3: Search with Filtering Enable search functionality with custom filter types: ```razor <SfDropDownTree TItem="EmployeeData" TValue="string" AllowFiltering="true" FilterType="FilterType.Contains" FilterBarPlaceholder="Search employees..."> <DropDownTreeField TItem="EmployeeData" DataSource="Data" ID="Id" Text="Name" HasChildren="HasChild" ParentID="PId"> </DropDownTreeField> </SfDropDownTree> ``` ### Pattern 4: Remote Data Binding (OData) Bind to remote OData services with DataManager: ```razor <SfDropDownTree TValue="int?" TItem="TreeData" Placeholder="Select an employee" Width="500px"> <DropDownTreeField TItem="TreeData" Query="@Query" ID="EmployeeID" Text="FirstName" ParentID="ReportsTo" HasChildren="HasChildren"> <SfDataManager Url="url" Adaptor="Syncfusion.Blazor.Adaptors.ODataV4Adaptor" CrossDomain="true"> </SfDataManager> </DropDownTreeField> </SfDropDownTree> @code { public Query Query = new Query(); } ``` ## Key Properties and APIs | Property | Type | Description | |----------|------|-------------| | `TItem` | Generic | Model class for data items | | `TValue` | Generic | Type of selected value(s) | | `Value` | List<TValue> | Two-way bindable selected values | | `DataSource` | IEnumerable | Local data source (via DropDownTreeField) | | `AllowMultiSelection` | bool | Enable multi-node selection | | `ShowCheckBox` | bool | Display checkboxes for selection | | `AutoUpdateCheckState` | bool | Auto-sync parent-child checkbox states | | `ShowSelectAll` | bool | Display select/deselect all checkbox | | `AllowFiltering` | bool | Enable search filtering | | `FilterType` | FilterType | Filter matching strategy (StartsWith, EndsWith, Contains) | | `IgnoreCase` | bool | Case-insensitive filtering | | `LoadOnDemand` | bool | Lazy-load child nodes on expand | | `Placeholder` | string | Input placeholder text | | `Width` | string | Component width | | `PopupWidth` | string | Dropdown popup width | | `PopupHeight` | string | Dropdown popup height | | `ZIndex` | int | CSS z-index of popup | | `CssClass` | string | Custom CSS classes | | `Disabled` | bool | Disable component interaction | ## Key Events - **Created**: Component initialization complete - **Destroyed**: Component destruction - **OnPopupOpen**: Popup opened after animation - **OnPopupClose**: Popup closed after animation - **ValueChanging**: Before value change (DdtChangeEventArgs<TValue>) - **ValueChanged**: After value change (List<TValue>) - **Filtering**: Search text entered (DdtFilteringEventArgs) - **OnActionFailure**: Error during data operations ## Key Methods - **SelectAllAsync()**: Programmatically select all nodes - **SelectAllAsync(false)**: Programmatically deselect all nodes - **ClearAsync()**: Clear all selected values - **GetTreeViewData(id)**: Get node information by ID
Ver no GitHub