我的应用程序是asp.net MVC,我使用Telerik MVC Combobox,使用ViewData,我发送项目为:
people.Add(new Person { Id = 1, Name = "John", viewed = true });
<% Html.Telerik().ComboBox()
.Name("ComboBox")
.BindTo(new SelectList((IEnumerable<Person>)ViewData["people"], "Id", "Name"))
.ClientEvents(events => events.OnChange("ComboBox_onChange")
.OnLoad("ComboBox_onLoad")
.OnOpen("ComboBox_OnOpen"))
.Render();
%>
我可以使用以下方式获取特定项目的文本:
var item = combobox.dropDown.$items.eq(0);
alert(item.text());
我知道如何获取此项的数据以检查查看的值是否为true。 我试过了:
alert(item.Value.split('|'));
但得到了这个错误:无法获取属性'split'的值:object为null或undefined
提前致谢。
答案 0 :(得分:0)
基本上你需要首先获得对combobox插件的引用:
var combo = $('#ComboBox').data('tComboBox');
然后你可以调用你需要的任何方法:
alert( combo.value() );
编辑:
您的组合框当前绑定到SelectList
,其中Value
是Person.Id,Text
是Person.Name。 “已查看”属性不会存储在任何位置。您可以将其作为Value
的一部分包含在内,按上述方式检索值,然后split()
以获取“已查看”部分:
Html.Telerik().ComboBox()
.Items(items =>
{
// pseudo-code
foreach (person)
items.Add().Text(person.Name).Value(person.Id + "_" + person.Viewed)
})
...