0

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

知道如何获取此项目的数据以检查查看的值是否为真或假。我试过了:

   alert(item.Value.split('|'));

但收到此错误:无法获取属性“拆分”的值:对象为空或未定义

提前致谢。

4

1 回答 1

0

这是客户端 API 文档

基本上你需要先获得对组合框插件的引用:

var combo = $('#ComboBox').data('tComboBox');

然后你可以调用你需要的任何方法:

alert( combo.value() );

编辑:

您的组合框当前绑定到SelectListValuePerson.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)
    })
    ...
于 2012-09-24T16:50:25.690 回答