Kendo UI 自动完成数据源问题

Posted

技术标签:

【中文标题】Kendo UI 自动完成数据源问题【英文标题】:Kendo UI Autocomplete Data Source issue 【发布时间】:2012-12-08 03:00:38 【问题描述】:

我有几个自动完成所有设置和使用定义为变量的相同数据源工作。但是我不确定如何让我的组自动完成工作,因为这有可能具有多个值。

这是我的数据源:

UsersDataSource = new kendo.data.DataSource(
    transport: 
        read: 
            url: "/_layouts/handlers/Users.ashx",
            dataType: "json",
            type: "get",
            cache: false
        
    
);

这个 json 的示例如下所示(注意组):

["Id":"USERNAME","Type":"External","Name":"Jim Jones","Email":"jjones@email.com","Address":"1600 Penn Ave","Organization":"Company ABC","Notes":"User Notes","Groups":["Group A","Group B","Group C","Group D"]]

我设置的所有其他自动完成功能都可以使用此代码正常工作:

$("#SearchAddress").kendoAutoComplete(
    placeholder: "Address",
    dataTextField: "Address",
    dataValueField: "Address",
    dataSource: UsersDataSource
);

我不太确定如何让这些工作为小组工作...任何建议都将不胜感激。

编辑:我创建了一个jsfiddle 来说明这个问题

编辑:小提琴再次更新

【问题讨论】:

【参考方案1】:

您应该指定第二个自动完成绑定到 peoples 数组的 Groups 字段:

$("#SearchGroup").kendoAutoComplete(
    placeholder: "Group",
    dataSource: 
        data: peoples[0].Groups,
    
);

http://jsfiddle.net/pSMtt/4/​

获取所有组的方法如下:

var groups = [];

for (var i = 0; i < peoples.length; i++) 
    for (var j = 0; j < peoples[i].Groups.length; j++) 
       groups.push(peoples[i].Groups[j]);
    


$("#SearchGroup").kendoAutoComplete(
    placeholder: "Group",
    dataSource: 
        data: groups,
    
);

【讨论】:

我想我应该在小提琴中更具体。这种情况只适用于第一组组,如果每个人[0],人[1]有不同的组,则不适用......这是一个更新的小提琴......jsfiddle.net/nlarkin/mjD5H 您真正想要实现什么?您可能需要更新第二个自动完成数据源。使用第一个自动完成的change事件和第二个自动完成的数据源的data方法。 我想获取所有人的所有组的下拉列表,与任何其他字段没有关联。 然后您需要创建一个数组,其中包含所有人的所有组。

以上是关于Kendo UI 自动完成数据源问题的主要内容,如果未能解决你的问题,请参考以下文章

Kendo UI Angular JS 和带有服务的 AutoComplete

Kendo UI - 在读取数据源时指定参数名称

Angular-Kendo 在更改时自动完成所选值

在 kendo-ui 网格中显示/隐藏列后,有啥方法可以自动调整网格列宽?

如何实现类似于 jQuery UI 自动完成的 Dojo 自动完成?

kendo ui grid 完成服务器端分页和设置总数