Combobox

As defined by the W3C:

A combobox is an input widget with an associated popup that enables users to select a value for the combobox from a collection of possible values. In some implementations, the popup presents allowed values, while in other implementations, the popup presents suggested values, and users may either select one of the suggestions or type a value. The popup may be a listbox, grid, tree, or dialog. Many implementations also include a third optional element -- a graphical Open button adjacent to the combobox, which indicates availability of the popup. Activating the Open button displays the popup if suggestions are available.

<FluentCombobox> wraps the <fluent-combobox> element, a web component implementation of a combobox.

Due to the fact that a combobox allows the user to enter a value, it is impossible to return an OptionValue

Examples

Default examples

Example

Select the best song from the list or type your own

Selected hit:

Please Please MeWith The BeatlesA Hard Day's NightBeatles for SaleHelp!Rubber SoulRevolverSgt. Pepper's Lonely Hearts Club BandMagical Mystery TourThe BeatlesYellow SubmarineAbbey RoadLet It Be

Pre-selected option

Jean MartinAntónio LangaJulie SmithNur SariJose HernandezBert de VriesJaques MartinElizabeth JohnsonJakob Berger

Selected name: Nur Sari

With Placeholder

Extra smallSmallMediumLargeExtra Large

Selected size:

Download: 

From a list of Option<T> items

Example

From list of Option<string> items

Second item in the list is initially selected through the OptionSelected (Func delegate) parameter.

OneTwoThree

Selected Value: 2
Selected Item (strongly typed):
Value: 2 (Type: Microsoft.FluentUI.AspNetCore.Components.Option`1[System.String])
Text: Two

From list of Option<int> items

First item in the list is disabled through the OptionDisabled (Func delegate) parameter.

Note that none of the options is initially highlighted or selected.

123

Selected Value:
Selected Item (strongly typed):
Value: (Type: )
Text:

Download: 

Disabled examples

Example

Disabled Combobox

Extra Small Small Medium Large Extra Large

Combobox with disabled items

Extra Small Small Medium Large Extra Large

Combobox with all items disabled

Note that 'Small' has been selected through the @bind-Value callback and cannot be changed.

Extra Small Small Medium Large Extra Large
Download: 

Appearance example

Example

Filled

Please Please MeWith The BeatlesA Hard Day's NightBeatles for SaleHelp!Rubber SoulRevolverSgt. Pepper's Lonely Hearts Club BandMagical Mystery TourThe BeatlesYellow SubmarineAbbey RoadLet It Be

Selected Value: Help!

Download: 

Autocomplete examples

Example

Inline Autocomplete

William Hartnell Patrick Troughton Jon Pertwee Tom Baker Peter Davidson Colin Baker Sylvester McCoy Paul McGann Christopher Eccleston David Tenant Matt Smith Peter Capaldi Jodie Whittaker

List Autocomplete

William Hartnell Patrick Troughton Jon Pertwee Tom Baker Peter Davidson Colin Baker Sylvester McCoy Paul McGann Christopher Eccleston David Tenant Matt Smith Peter Capaldi Jodie Whittaker

Both Autocomplete

William Hartnell Patrick Troughton Jon Pertwee Tom Baker Peter Davidson Colin Baker Sylvester McCoy Paul McGann Christopher Eccleston David Tenant Matt Smith Peter Capaldi Jodie Whittaker
Download: 

List examples

Example

With long list

Alabama Alaska Arizona Arkansas California Colorado Connecticut Delaware Florida Georgia Hawaii Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Maryland Massachussets Michigain Minnesota Mississippi Missouri Montana Nebraska Nevada New Hampshire New Jersey New Mexico New York North Carolina North Dakota Ohio Oklahoma Oregon Pennsylvania Rhode Island South Carolina South Dakota Texas Tennessee Utah Vermont Virginia Washington Wisconsin West Virginia Wyoming

With forced position above

Position forced above Option Two

with forced position below

Position forced below Option Two
Download: 

Option template

Example
Jean (Martin) António (Langa) Julie (Smith) Nur (Sari) Jose (Hernandez) Bert (de Vries) Jaques (Martin) Elizabeth (Johnson) Jakob (Berger)

Selected option:
Selected value:

Download: 

Documentation

FluentCombobox<TOption> Class

Parameters

Name
Type
Default
Description
AppearanceAppearance?
Gets or sets the visual appearance. See Appearance
AriaLabelstring?
Gets or sets the text used on aria-label attribute.
AutocompleteComboboxAutocomplete?
Gets or sets a value indicating whether the element auto completes. See ComboboxAutocomplete
Autofocusbool
False
Determines if the element should receive document focus on page load.
ChangeOnEnterOnlybool
False
Gets or sets whether using the up and down arrow keys should change focus and select immediately or that selection is done only on Enter.
⚠️ Only applicable in single select scenarios.
ChildContentRenderFragment?
Gets or sets the content to be rendered inside the component.
In this case list of FluentOptions
Disabledbool
False
Disables the form control, ensuring it doesn't participate in form submission.
DisplayNamestring?
Gets or sets the display name for this field.
This value is used when generating error messages when the input value fails to parse correctly.
Embeddedbool
False
Gets or sets if the derived component is embedded in another component.
If true, the ClassValue property will not include the EditContext's FieldCssClass.
EnableClickToClosebool?
False
Gets or sets the option to allow closing the FluentCombobox list by clicking the dropdown button. Default is false.
FieldFieldIdentifier?
Gets or sets the FluentInputBase.FieldIdentifier that identifies the bound value.
If set, this parameter takes precedence over FluentInputBase.ValueExpression.
Heightstring?
Gets or sets the height of the component or of the popup panel.
Immediatebool
False
Change the content of this input field when the user write text (based on 'OnInput' HTML event).
ImmediateDelayint
0
Gets or sets the delay, in milliseconds, before to raise the FluentInputBase.ValueChanged event.
ItemsIEnumerable<TOption>?
Gets or sets the content source of all items to display in this list.
Each item must be instantiated (cannot be null).
Labelstring?
Gets or sets the text to label the input.
This is usually displayed just above the input
LabelTemplateRenderFragment?
Gets or sets the content to label the input component.
This is usually displayed just above the input
Multiplebool
False
If true, the user can select multiple elements.
⚠️ Only available for the FluentSelect and FluentListbox components.
Namestring?
Gets or sets the name of the element.
Allows access by name from the associated form.
⚠️ This value needs to be set manually for SSR scenarios to work correctly.
Openbool?
Gets or sets the open attribute.
OptionComparerIEqualityComparer<TOption>?
Gets or sets the Generic.IEqualityComparer used to determine if an option is already added to the internal list.
⚠️ Only available when Multiple = true.
OptionDisabledFunc<TOption, bool>?
Gets or sets the function used to determine if an option is disabled.
OptionSelectedFunc<TOption, bool>?
Gets or sets the function used to determine if an option is initially selected.
OptionTemplateRenderFragment<TOption>?
Gets or sets the template for the ListComponentBase.Items items.
OptionTextFunc<TOption, string>
Gets or sets the function used to determine which text to display for each option.
OptionValueFunc<TOption, string>
Gets or sets the function used to determine which value to return for the selected item.
Only for FluentListbox and FluentSelect components.
Placeholderstring?
Gets or sets the short hint displayed in the input before the user enters a value.
PositionSelectPosition?
Below
Gets or sets the placement for the listbox when the combobox is open.
See SelectPosition
ReadOnlybool
False
When true, the control will be immutable by user interaction. readonly HTML attribute for more information.
Requiredbool
False
Gets or sets a value indicating whether the element needs to have a value.
SelectedOptionTOption?
Gets or sets the selected item.
⚠️ Only available when Multiple = false.
SelectedOptionExpressionExpression<Func<TOption>>?
Gets or sets an expression that identifies the bound selected options.
⚠️ Only available when Multiple = false.
SelectedOptionsIEnumerable<TOption>?
Gets or sets all selected items.
⚠️ Only available when Multiple = true.
SelectedOptionsExpressionExpression<Func<IEnumerable<TOption>>>?
Gets or sets an expression that identifies the bound selected options.
⚠️ Only available when Multiple = true.
Titlestring?
Gets or sets the text used on aria-label attribute.
Valuestring?
Gets or sets the value of the input. This should be used with two-way binding.
ValueExpressionExpression<Func<string>>?
Gets or sets an expression that identifies the bound value.
Widthstring?
Gets or sets the width of the component.

EventCallbacks

Name
Type
Description
SelectedOptionChangedEventCallback<TOption>
Called whenever the selection changed.
⚠️ Only available when Multiple = false.
SelectedOptionsChangedEventCallback<IEnumerable<TOption>>
Called whenever the selection changed.
⚠️ Only available when Multiple = true.
ValueChangedEventCallback<string>
Gets or sets a callback that updates the bound value.

Methods

Name
Parameters
Type
Description
DisposeAsyncValueTask
DisposeAsyncValueTask
FocusAsyncvoid
Exposes the elements FocusAsync(bool preventScroll) method.
FocusAsyncbool preventScroll
void
Exposes the elements FocusAsync(bool preventScroll) method.
Neutral
Accent
Hypertext
Lightweight
Outline
Stealth
Filled
Inline
List
Both
Above
Below
An error has occurred. This application may no longer respond until reloaded. Reload 🗙