Blazor的Telerik UI?下载30天免费试用

多选择数据绑定

本文解释了向MultiSelect组件提供数据的不同方法、与数据绑定相关的属性及其结果。

有关值绑定和数据绑定的详细信息,以及它们之间的区别,请参见值绑定与数据绑定篇文章。

绑定数据有两种关键方法:

还有一些注意事项记住。

原始类型

您可以将MultiSelect数据绑定到简单的数据集合(数字-例如int等等,字符串Guid枚举).当您有一个可供用户选择的具体选项列表时,它们的字符串表示通常适合显示,并且不需要特殊的模型。

要绑定MultiSelect,你需要:

  1. 提供一个IEnumerable <字符串>对其数据财产,
  2. 点的价值的参数。<字符串>列表字段。

将MultiSelect数据绑定到简单字符串数据源

@*绑定到IEnumerable*@  @if (TheValues?。计数> 0){
    @foreach (TheValues中的var项){
  • @item
  • }
} @code{List TheValues {get;设置;}列表选项{get;设置;} = new List {"first", "second", "third"};}

将MultiSelect数据绑定到简单数字数据源

@*绑定到IEnumerable*@  @if (TheValues?。计数> 0){
    @foreach (TheValues中的int项){
  • @item
  • }
} @code{List TheValues {get;设置;} List Options {get;设置;} = Enumerable.Range(1,20).ToList();}

绑定到模型

您可以将MultiSelect绑定到应用程序中的模型。当你已经有了某种形式的数据,而不需要准备一个单独的建议集合时,这很有用。

将MultiSelect绑定到一个模型:

  1. 填充它数据属性,并在下拉列表中使用所需项的集合
  2. 设置ValueField文本框指向模型的相应字段,这些字段分别包含选项的值和它们的字符串数据。
  3. 点的价值的参数。< TValue列表>视图模型中的字段。

数据绑定MultiSelect到模型

@*绑定到一个IEnumerable<模型>*@  @if (TheValues?。计数> 0){
    @foreach (TheValues中的int项){
  • @item
  • }
} @code{List TheValues {get;设置;} List Options {get;设置;} = new List {new OptionsModel {StringRepresentation = "first", MyValueField = 1}, new OptionsModel {StringRepresentation = "second", MyValueField = 2}, new OptionsModel {StringRepresentation = "third", MyValueField = 3}};public class OptionsModel {public string StringRepresentation {get;设置;} public int MyValueField {get;设置;} //确定值列表的类型

如果您正在从描述下拉项的视图模型中寻找更多字段,而不仅仅是价值,请参阅从下拉菜单中获取模型KB文章和OnChange事件。

您可能还想查看/加入讨论并为此请求投票:将下拉列表值绑定到复杂模型

注意事项

MultiSelect组件尝试基于提供的参数推断其模型和值的类型数据和初始价值.这影响了它参考文献发生了什么如果不能提供数据或值

参考

MultiSelect组件是通用的,它的类型取决于您提供的模型的类型数据收集。

@*绑定到原语集合时的引用类型*@  @code{TelerikMultiSelect MultiSelectRef {get;设置;} List TheValues {get;设置;}列表选项{get;设置;} = new List {"first", "second", "third"};}
@*绑定到模型集合时的引用*@  @code{TelerikMultiSelect MultiSelectRef {get;设置;} List TheValues {get;设置;} List Options {get;设置;} = new List {new OptionsModel {StringRepresentation = "first", MyValueField = 1}, new OptionsModel {StringRepresentation = "second", MyValueField = 2}, new OptionsModel {StringRepresentation = "third", MyValueField = 3}};public class OptionsModel {public string StringRepresentation {get;设置;} public int MyValueField {get; set; } // this determines the type of the values list } }

缺失值或数据

如果你不能提供任何一个价值,或数据,或两者同时进行时,组件初始化时,需要将相应的类型属性设置为TItem而且TValue属性,如下所示。

如果不能提供值或数据,则配置多选择

@*如果没有提供值或数据如何声明multiselect *@   @code{公共类MyDdlModel //TItem匹配模型的类型{公共int MyValueField {get;设置;} //TValue匹配值字段公共字符串MyTextField {get;设置;}} IEnumerable MyOptions = Enumerable。范围(20)。Select(x => new MyDdlModel {MyTextField = "item " + x, MyValueField = x});//如果"MyOptions"对象最初为空,并在某个事件上填充,则应用相同的配置}

另请参阅

在本文中
Baidu
map