mcpField
S
syncfusion-aspnetcore-multiselect

syncfusion-aspnetcore-multiselect

github.com/syncfusionDesign & UI051 installsUpdated 2w ago
Repository

About syncfusion-aspnetcore-multiselect

A documentation skill for implementing Syncfusion’s MultiSelect component in ASP.NET Core with TagHelpers. It covers selection, data binding, customization, and accessibility for developers building web forms.

Key features

  1. 01Multiple selection and checkboxes
  2. 02Filtering and search
  3. 03Local and remote data binding
  4. 04Templates and grouping
  5. 05Chips and custom values
  6. 06Virtual scrolling and cascading

Use cases

  1. 01Selecting administrator roles
  2. 02Filtering products by category
  3. 03Assigning team members to projects
  4. 04Adding tags to content

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/syncfusion/aspnetcore-ui-components-skills --skill syncfusion-aspnetcore-multiselect

After installing, type/syncfusion-aspnetcore-multiselectin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
accessibility.md
advanced-features.md
data-binding.md
filtering-and-search.md
getting-started.md
tag-helper-syntax.md
templates-and-customization.md

Details

From the project README

Implementing MultiSelect in ASP.NET Core

The MultiSelect is an advanced dropdown component that enables users to select multiple values from a predefined list with features like filtering, templates, checkboxes, grouping, and full accessibility support. This skill guides you through implementing MultiSelect in ASP.NET Core applications using Syncfusion's tag helper syntax.

When to Use This Skill

Use this skill when you need to:

  • Create dropdown fields where users can select multiple options
  • Add search/filter functionality to large option lists
  • Display selected items as chips with remove capability
  • Implement checkboxes for clear multi-selection UI
  • Bind to local arrays or remote data sources
  • Customize list item appearance with templates
  • Group related options by category
  • Ensure WCAG 2.2 accessibility compliance
  • Handle complex selection scenarios (cascading, custom values)

Key Features

FeatureUse Case
Multiple SelectionSelect multiple values from dropdown list
Filtering & SearchSearch through large lists efficiently
CheckboxesVisual indication of multi-select with checkbox mode
Data BindingLocal arrays or remote data sources
TemplatesCustomize item appearance and selected value display
GroupingOrganize options into logical categories
SortingAlphabetically sort options (ascending/descending)
Chip DisplayShow selected items as removable chips
Custom ValuesAllow users to add custom selection values
Virtual ScrollingEfficiently handle 1000+ item lists
CascadingLink multiple MultiSelect components
WCAG ComplianceBuilt-in accessibility for screen readers, keyboard nav
EventsRespond to selection changes, opens, closes

Documentation Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Prerequisites and system requirements
  • Installing Syncfusion.EJ2.AspNet.Core NuGet package
  • Configuring TagHelper in _ViewImports.cshtml
  • Adding stylesheets and script resources via CDN
  • Registering the script manager
  • Creating your first MultiSelect
  • Running and testing the application
Tag Helper Syntax

📄 Read: references/tag-helper-syntax.md

  • MultiSelect tag helper structure and properties
  • Essential properties (Placeholder, Value, Readonly, Disabled)
  • Data source binding basics
  • Event binding in tag helpers
  • CSS class customization
  • Best practices and common patterns
Data Binding

📄 Read: references/data-binding.md

  • Binding to local array of strings
  • Binding to array of objects
  • Complex object binding with nested fields
  • Remote data sources with DataManager
  • Field mapping (text, value, groupBy)
  • Dynamic data loading and refresh patterns
Filtering and Search

📄 Read: references/filtering-and-search.md

  • Built-in search box functionality
  • Filter type options (contains, startswith, endswith)
  • Custom filter logic with server-side filtering
  • Filter templates for advanced search UI
  • NoRecordsTemplate handling
  • Search performance optimization
Templates and Customization

📄 Read: references/templates-and-customization.md

  • Item template customization
  • Value template (selected items display)
  • Header and footer templates
  • Group header templates
  • Icon integration in items
  • CSS styling and class customization
Advanced Features

📄 Read: references/advanced-features.md

  • Checkbox mode for enhanced multi-selection UI
  • Grouping items by category
  • Sorting options (ascending/descending)
  • Custom value support (create new values)
  • Chip customization and removal
  • Virtual scrolling for large datasets
  • Cascading MultiSelect patterns
Accessibility

📄 Read: references/accessibility.md

  • WCAG 2.2 Level AA compliance
  • Keyboard navigation (Arrow keys, Tab, Enter, Escape)
  • ARIA attributes and roles
  • Screen reader support
  • Focus management best practices
  • Testing accessibility with tools

Quick Start Example

Here's a minimal MultiSelect implementation:

<!-- _ViewImports.cshtml -->
@addTagHelper *, Syncfusion.EJ2

<!-- View file -->
<ejs-multiselect id="multiselect" 
    dataSource="ViewBag.DataSource" 
    fields-text="Name" 
    fields-value="Id"
    placeholder="Select options">
</ejs-multiselect>
// Controller
public IActionResult Index()
{
    List<SelectData> data = new List<SelectData>
    {
        new SelectData { Id = "1", Name = "Option 1" },
        new SelectData { Id = "2", Name = "Option 2" },
        new SelectData { Id = "3", Name = "Option 3" }
    };
    ViewBag.DataSource = data;
    return View();
}

Common Patterns

Pattern 1: Simple String Array

Select from a list of string values:

<ejs-multiselect id="skills" 
    dataSource="ViewBag.SkillsList" 
    placeholder="Select skills">
</ejs-multiselect>
Pattern 2: Object Array with Custom Display
<ejs-multiselect id="products" 
    dataSource="ViewBag.ProductList"
    fields-text="ProductName"
    fields-value="ProductId"
    placeholder="Select products">
</ejs-multiselect>
Pattern 3: With Checkboxes
<ejs-multiselect id="languages" 
    dataSource="ViewBag.LanguageList"
    fields-text="Language"
    fields-value="LanguageCode"
    mode="CheckBox"
    placeholder="Select languages">
</ejs-multiselect>
Pattern 4: Filtered Selection
<ejs-multiselect id="countries" 
    dataSource="ViewBag.CountryList"
    fields-text="CountryName"
    fields-value="CountryCode"
    allowFiltering="true"
    filterType="Contains"
    placeholder="Search and select countries">
</ejs-multiselect>

Key Properties Reference

PropertyTypeDescription
dataSourceArrayList of data items
fields-textstringField name for display text
fields-valuestringField name for data value
placeholderstringHint text when empty
valuestring[]Initially selected values
allowFilteringbooleanEnable search/filter box
filterTypestringFilter type (StartsWith, Contains, EndsWith)
modestringSelection mode (Default, CheckBox, Delimiter)
readonlybooleanPrevent editing
disabledbooleanDisable the control
showSelectAllbooleanShow select all checkbox
maximumSelectionLengthnumberMax selectable items
delayUpdateOnstringEvent to trigger updates
fields-groupBystringGroup items by field

Common Use Cases

Use Case 1: Role Selection in Admin Panel

Users select multiple roles to assign to administrators:

  • Display all available roles
  • Filter as user types
  • Show selections as chips
  • Validate selection count
Use Case 2: Product Category Filter

E-commerce site filtering products by multiple categories:

  • Group categories by parent
  • Show item count per category
  • Virtual scroll for 1000+ items
  • Remember selections
Use Case 3: Team Member Assignment

Assign multiple team members to projects:

  • Search by name
  • Show department grouping
  • Display avatar in selection chips
  • Prevent self-assignment
Use Case 4: Tag Selection

Blog/content tagging with MultiSelect:

  • Allow custom tag creation
  • Show tag count/popularity
  • Group by category
  • Auto-complete suggestions

Best Practices

  1. Always provide clear labels - Label the MultiSelect with associated <label> element
  2. Set reasonable default selections - Pre-select logical defaults when appropriate
  3. Use filtering for large lists - Enable filtering when >10 items
  4. Validate on server - Never trust client-side validation alone
  5. Handle empty state - Provide clear message when no items selected
  6. Group related items - Use groupBy for lists >20 items
  7. Limit selection count - Use maximumSelectionLength to prevent abuse
  8. Test keyboard navigation - Ensure all features accessible via keyboard
  9. Provide accessible labels - Use proper ARIA attributes
  10. Monitor performance - Virtual scroll for 1000+ items

Next Steps

  1. Start with Getting Started - Follow setup instructions
  2. Implement a simple example - Create basic MultiSelect binding
  3. Add filtering - Enable search functionality
  4. Customize templates - Enhance appearance with templates
  5. Handle selection events - Respond to user selections
  6. Test accessibility - Verify keyboard and screen reader support

Ready to learn? Start with Getting Started →

Comments

Markdown supported