MultiSelect
Dropdown select for choosing multiple values from a list; requires PopoverProvider in layout.
WAI-ARIA Compliant*
Installation
Add the MultiSelect component using the CLI:
shadcnblazor component add multiselect
Features
Multi-value selection with toggle behaviour (stays open after each pick)
Controlled (
@bind-Values, ValuesChanged)Two option modes:
Items or declarative childrenOptional search input with real-time filtering (
Search)Optional Clear button to reset all selections (
ClearButton)Full keyboard support (arrows, Home/End, Space to toggle, Escape to close, Tab)
ARIA-compliant multiselectable listbox semantics (
aria-multiselectable, aria-checked)Typeahead navigation (single-character jump)
Disabled support (trigger + per-item)
Configurable display text (up to N selected, then "+X more")
Examples
Usage
The MultiSelect component displays a dropdown for choosing multiple values from a list. Use Values and ValuesChanged (or @bind-Values) for two-way binding. The dropdown stays open after each selection — click outside or press Escape to close. Requires PopoverProvider in your layout.
Selected: dotnet, react
Search & Clear
Enable Search to add a filter input at the top of the dropdown. Enable ClearButton to add a divider and Clear button at the bottom that resets all selected values.
Selected: none
API Reference
MultiSelect`1
Dropdown select component for choosing multiple values from a list of options.
Properties
| Name | Type | Description |
|---|---|---|
AdditionalAttributes |
Dictionary<string, Object> |
|
ChildContent |
RenderFragment |
|
Class |
string |
|
ClearButton |
bool |
When true, appends a Clear action node at the bottom of the list that resets all selected values. |
Disabled |
bool |
|
Items |
IEnumerable<SelectOption<T>> |
|
Label |
string |
Optional label displayed at the top of the dropdown content and used as the trigger aria-label. |
LockScroll |
bool |
When true, body scroll is locked while the popover is open. |
MaxDisplayedValues |
int |
Maximum number of values to display before showing "+ X more". |
MaxVisibleItems |
Nullable<int> |
|
Placeholder |
string |
Placeholder text shown when no values are selected. |
PopoverFitContent |
bool |
When true, the popover expands to fit the width of its option content instead of matching the trigger width. |
RenderItem |
RenderFragment<SelectOption<T>> |
|
Search |
bool |
When true, shows a search input at the top of the dropdown that focuses on open and keeps focus during keyboard nav. |
Size |
Size |
Size variant applied to the trigger. |
TriggerClass |
string |
Additional CSS classes applied to the trigger element. |
Values |
IReadOnlyList<T> |
Currently selected values. |
ValuesChanged |
EventCallback<IReadOnlyList<T>> |
Callback invoked when the selected values change. |
Events
| Name | Type | Description |
|---|---|---|
ValuesChanged |
EventCallback<IReadOnlyList<T>> |
Callback invoked when the selected values change. |
Methods
| Method | Returns | Description |
|---|---|---|
DisposeAsync |
ValueTask |
|
Equals |
bool |
|
GetHashCode |
int |
|
GetType |
Type |
|
SetParametersAsync |
Task |
|
ToString |
string |
Mobile support for API reference coming soon.