Select2ComboBox
in namespace DotVVM.Bootstrap5.Select2.Controls
Usage & Scenarios
Extends the Bootstrap 5 ComboBox control with the Select2 widget, which provides search and improved keyboard navigation.
Install the DotVVM.Controls.Bootstrap5.Select2 package and register it in DotvvmStartup.cs after Bootstrap 5:
config.AddBootstrap5Configuration();
config.AddBootstrap5Select2Configuration();
The control uses the bs prefix and supports all properties of ComboBox.
Sample 1: Searchable Combo Box
Select2ComboBox accepts the same data-binding properties as ComboBox. The Select2 widget lets users search the available items.
<bs:Select2ComboBox SelectedValue="{value: SelectedCountry}"
DataSource="{value: Countries}"
ItemTextBinding="{value: Name}"
ItemValueBinding="{value: Code}" />
<p>Selected country: <strong>{{value: SelectedCountry}}</strong></p>
using DotVVM.Framework.ViewModel;
using System.Collections.Generic;
namespace DotvvmWeb.Views.Docs.Controls.bootstrap5_select2.Select2ComboBox.sample1
{
public class ViewModel : DotvvmViewModelBase
{
public List<Country> Countries { get; set; } = new List<Country>
{
new Country { Code = "CZ", Name = "Czech Republic" },
new Country { Code = "DE", Name = "Germany" },
new Country { Code = "PL", Name = "Poland" },
new Country { Code = "SK", Name = "Slovakia" }
};
public string SelectedCountry { get; set; }
public class Country
{
public string Code { get; set; }
public string Name { get; set; }
}
}
}
Properties
| Name | Type | Description | Notes | Default Value | |
|---|---|---|---|---|---|
| ClientIDMode | ClientIDMode | Gets or sets the client ID generation algorithm. |
attribute
static value
|
Static | |
| DataContext | Object | Gets or sets a data context for the control and its children. All value and command bindings are evaluated in context of this value. The DataContext is null in client-side templates. |
attribute
bindable
|
null | |
| DataSource | Object | Gets or sets the source collection or a GridViewDataSet that contains data in the control. |
attribute
bindable
|
null | |
| EmptyItemText | String | Text displayed when no value is selected. |
attribute
static value
bindable
|
||
| Enabled | Boolean | Gets or sets a value indicating whether the control is enabled and can be modified. |
attribute
static value
bindable
|
True | |
| ID | String | Gets or sets the control client ID within its naming container. |
attribute
static value
bindable
|
null | |
| IncludeInPage | Boolean | Gets or sets whether the control is included in the DOM of the page. |
attribute
static value
bindable
|
True | |
| InnerText | String | Gets or sets the inner text of the HTML element. Note that this property can only be used on HtmlGenericControl directly and when the control does not have any children. |
attribute
static value
bindable
|
null | |
| ItemTextBinding | IValueBinding<String> | The expression of DataSource item that will be displayed in the control. |
attribute
bindable
|
null | |
| ItemTitleBinding | IValueBinding | The expression of DataSource item that will be placed into html title attribute. |
attribute
bindable
|
null | |
| ItemValueBinding | IValueBinding | The expression of DataSource item that will be passed to the SelectedValue property when the item is selected. |
attribute
bindable
|
null | |
| SelectedValue | Object | Gets or sets the value of the selected item. |
attribute
bindable
|
null | |
| SelectMenuSize | Int32 | Gets or sets the number of visible options in the select menu. If set to 1, the select menu will be rendered as a dropdown. |
attribute
static value
bindable
|
1 | |
| Size | Size | Gets or sets the size of the ComboBox. |
attribute
static value
|
Default | |
| Visible | Boolean | Gets or sets whether the control is visible. When set to false, `style="display: none"` will be added to this control. |
attribute
static value
bindable
|
True |
Events
| Name | Type | Description | |
|---|---|---|---|
| SelectionChanged | Command | Gets or sets the command that will be triggered when the selection is changed. |