Blazor DropDownList概述
的Blazor下拉列表组件允许用户从一个下拉弹出的预定义选项集中选择一个选项。开发人员可以控制数据、大小和各种外观选项,如类和模板.
下拉列表组件是为Blazor的Telerik UI,一个具有100个本地组件的专业级UI库,用于构建现代和功能丰富的应用程序。想要试用它,请注册一个30天的免费试用。
创建它
- 使用
TelerikDropDownList
标记将组件添加到剃须刀页面。 - 填充它
数据
属性中要出现在下拉列表中的项的集合。 - 设置
文本框
而且ValueField
属性指向模型的对应名称 - 绑定组件的值类中定义的类型相同的变量
ValueField
参数。 - (可选)启用功能,如过滤和清除按钮
- (可选)设置
价值
属性设置为模型的初始值。
DropDownList数据绑定双向值绑定及主要特征
选择值:@selectedValue
@code{//在实际情况下,模型通常在一个单独的文件中//模型类型和值字段类型必须提供给dropdpownlist公共类MyDdlModel{公共int MyValueField {get;设置;}公共字符串MyTextField {get;设置;}} int selectedValue {get;设置;} IEnumerable myDdlData = Enumerable。范围(20)。Select(x => new MyDdlModel {MyTextField = "item " + x, MyValueField = x});}
数据绑定
Blazor DropDownList需要一个数据源,以便它可以用数据填充下拉列表。要提供数据源,请使用数据
财产。阅读更多关于Blazor DropDownList数据绑定….
过滤
Blazor下拉列表有一个内置的过滤器,可以缩小显示的建议作为终端用户的类型。要配置此特性,请使用滤过性的
参数。此外,您可以在不同的筛选操作符之间进行选择,并配置有多少个符号之后将显示建议列表。阅读更多关于Blazor下拉列表过滤器….
分组
Blazor下拉列表使您能够将列出的建议分组到类别中,这样您就可以帮助终端用户通过较长的列表更快地浏览。阅读更多关于Blazor下拉列表分组….
模板
您可以使用内置模板的功能,并自定义组件的默认呈现。阅读更多关于Blazor下拉列表模板….
验证
您可以通过使用内置验证来确保组件值是可接受的。阅读更多关于输入验证的信息….
虚拟化
通过虚拟化下拉列表中的元素,您可以使用巨大的数据源而不会出现性能问题。UI虚拟化同时适用于本地和远程数据。阅读更多关于Blazor下拉列表虚拟化…
自适应呈现
该组件根据屏幕大小支持不同的弹出呈现。阅读更多关于自适应渲染功能和如何启用它…
参数
下拉列表提供了各种参数,允许你配置组件:
参数 | 类型 | 描述 |
---|---|---|
AdaptiveMode |
AdaptiveMode ( 没有一个 ) |
的自适应模式分量的。 |
数据 |
IEnumerable < TItem > |
允许您提供数据源。必需的。 |
DefaultText |
字符串 |
当没有选择项目时显示的简单提示。为了展示它,价值 参数中定义的类型,应将其设置为默认值ValueField 参数。例如,0 对于一个int ,零 对于一个int ? 或字符串 .您需要确保它与数据源中现有项的值不匹配。参见第一个示例示例部分在这篇文章和输入验证篇文章。 |
启用 |
保龄球 |
组件是否启用。 |
滤过性的 |
保龄球 |
是否过滤为最终用户启用。 |
FilterDebounceDelay |
int 150 |
从最后键入的符号到过滤器输入值更新之间的时间(以毫秒为单位)。只适用于过滤。使用它来平衡客户端性能和数据库查询的数量。 |
FilterOperator |
StringFilterOperator ( StartsWith ) |
的方法过滤的物品。 |
Id |
字符串 |
渲染为id 属性。<选择/ > 元素,所以你可以附加一个<标签= " " > 到它。 |
TItem |
类型 |
组件绑定到的模型的类型。如果你不能提供数据 或价值 .确定引用对象的类型。 |
TValue |
类型 |
来自组件绑定到的模型的值字段的类型。如果你不能提供数据 或价值 .确定引用对象的类型。值的类型可以是:- 数量 (如int ,双 ,等等)- 字符串 - Guid - 枚举 |
标题 |
字符串 |
在弹出窗口(动作表单)的头部呈现的标题文本。只适用于AdaptiveMode 设置为汽车 . |
TabIndex |
int ? |
的tabindex 属性在下拉列表中呈现。 |
文本框 |
字符串 ( 文本 ) |
将显示给用户的模型中字段的名称。 |
ValueField |
字符串 ( 价值 ) |
来自将作为基础的模型的字段的名称价值 . |
价值 而且bind-Value |
TValue |
获取/设置组件的值,可用于绑定。如果将其设置为模型类值字段所允许的值,则数据集合中的相应项将被预先选中。使用bind-Value 用于双向绑定的语法,例如,绑定到您自己的变量。 |
造型和外观
以下参数使您能够自定义Blazor下拉列表的外观:
参数 | 类型 | 描述 |
---|---|---|
类 |
字符串 |
将在组件的主包装元素上呈现的CSS类。用它来覆盖主题或应用自定义样式. |
宽度 |
字符串 |
组件的宽度。如果下拉菜单没有特定的宽度设置,它将同时瞄准下拉菜单和主元素。默认的宽度 值为空,但主题适用100% .使用宽度 属性或自定义CSS来设置另一个值在任何支援单位. |
中可以找到定制下拉列表样式的更多选项外观的文章.
弹出设置
组件的弹出窗口可以通过嵌套标签进行定制:
. /
下拉列表提供了以下弹出设置:
参数 | 类型 | 描述 |
---|---|---|
AnimationDuration |
int |
弹出窗口的动画持续时间,以毫秒为单位。 |
类 |
字符串 |
额外的CSS类自定义弹出窗口的外观。 |
高度 |
字符串 |
弹出窗口的高度。 |
MinHeight |
字符串 |
弹出窗口的最小高度。 |
MinWidth |
字符串 |
弹出窗口的最小宽度。 |
MaxHeight |
字符串 |
弹出窗口的最大高度。 |
MaxWidth |
字符串 |
弹出窗口的最大宽度。 |
宽度 |
字符串 |
弹出窗口的宽度。如果你不指定一个值,下拉菜单的宽度将匹配锚元素的宽度,这可以帮助响应式布局和100%宽度。 |
下拉列表引用和方法
DropDownList是一个泛型组件,它的类型来自于它绑定的模型和值字段类型。看到组件引用详细信息和示例请参见数据绑定文章的第1节。
类向组件实例添加引用以使用它的方法.
方法 | 描述 |
---|---|
关闭 |
关闭弹出窗口。 |
FocusAsync |
聚焦组件的主要元素。总是等待 这个调用,正如它所依赖的JSInterop . |
开放 |
打开弹出窗口。 |
打开Popup @code {private TelerikDropDownList dropdownlistf {get;设置;}私有字符串DropDownListValue {get;设置;} private List DropDownListData {get;设置;} = new List {"first", "second", "third"};private void OpenPopup() {DropDownListRef.Open();}}
选中的项目和DefaultText
默认情况下,如果没有价值
提供且不提供DefaultText
,则下拉列表将显示为空。
来显示
DefaultText
-价值
应该是0
或零
方法中使用的数据类型ValueField
和DefaultText
应该被定义。要在组件呈现时显示所选项,请提供
价值
所需元素的。注意,它必须匹配组件数据源的一个项。
例子
默认文本(提示),用于显示没有选择实际项目的情况
@MyStringItem
@MyIntItem @code {protected List MyStringList = new List() {"first", "second", "third"};//当前值为空(没有选择项),允许显示DefaultText。protected string MyStringItem {get;设置;} protected List MyIntList = new List() {1,2,3};//当前值为0(没有选择项)允许显示DefaultText。protected int MyIntItem {get;设置;}}
从外部代码获取所选项目
@result
Get SelectedItem @code {string result;int DdlValue {get;设置;} = 5;void GetSelectedItem(){//使用MyDdlModel selectedItem = myDdlData从数据源提取数据项。Where(d => d. myvaluefield == DdlValue).FirstOrDefault();if (selectedItem != null){结果= selectedItem. mytextfield;} else{结果= "没有选择的项目";} StateHasChanged ();}公共类MyDdlModel{公共int MyValueField {get;设置; } public string MyTextField { get; set; } } IEnumerable myDdlData = Enumerable.Range(1, 20).Select(x => new MyDdlModel { MyTextField = "item " + x, MyValueField = x }); }
如果您正在从描述下拉项的视图模型中寻找更多字段,而不仅仅是
价值
,请参阅从下拉菜单中获取模型知识库文章和OnChange事件。你也可以回顾/加入讨论并为这个请求投票:绑定DropDownList值到复杂模型