检索组合框项目的数据-Telerik MVC

时间:2012-09-24 07:13:00

标签: asp.net-mvc combobox telerik-mvc

我的应用程序是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

提前致谢。

1 个答案:

答案 0 :(得分:0)

以下是Client API documentation

基本上你需要首先获得对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)
    })
    ...