多选择数据绑定
本文解释了向MultiSelect组件提供数据的不同方法、与数据绑定相关的属性及其结果。
有关值绑定和数据绑定的详细信息,以及它们之间的区别,请参见值绑定与数据绑定篇文章。
绑定数据有两种关键方法:
还有一些注意事项记住。
原始类型
您可以将MultiSelect数据绑定到简单的数据集合(数字-例如int
,双
等等,字符串
,Guid
,枚举
).当您有一个可供用户选择的具体选项列表时,它们的字符串表示通常适合显示,并且不需要特殊的模型。
要绑定MultiSelect,你需要:
- 提供一个
IEnumerable <字符串>
对其数据
财产, - 点的
价值
的参数。<字符串>列表
字段。
将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绑定到一个模型:
- 填充它
数据
属性,并在下拉列表中使用所需项的集合 - 设置
ValueField
和文本框
指向模型的相应字段,这些字段分别包含选项的值和它们的字符串数据。 - 点的
价值
的参数。< 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"对象最初为空,并在某个事件上填充,则应用相同的配置}