Javascript 多值剑道UI网格

Javascript 多值剑道UI网格,javascript,kendo-ui,kendo-grid,Javascript,Kendo Ui,Kendo Grid,我想在我的页面中添加一个剑道ui网格,该网格应该包含一个具有多个值的列 想象一下以下数据: | Name | Tag | |--------|---------------------| | John | C#, JavaScript, PHP | | Oliver | UI, SQL | | Mark | SQL, Windows Server | tag列实际上是一个标记数组 在一天结束时,我希望能够筛选所有包含sql标记

我想在我的页面中添加一个剑道ui网格,该网格应该包含一个具有多个值的列

想象一下以下数据:

| Name   | Tag                 |
|--------|---------------------|
| John   | C#, JavaScript, PHP |
| Oliver | UI, SQL             |
| Mark   | SQL, Windows Server |
tag
列实际上是一个标记数组

在一天结束时,我希望能够筛选所有包含
sql
标记的记录

使用剑道用户界面也可以这样做吗?

试试这个网格设置:

var grid = $("#grid").kendoGrid({
    dataSource: {
    data: [
        { name: "John", tags: ["C#", "JavaScript", "PHP"] },
        { name: "Oliver", tags: ["UI", "SQL"] },
        { name: "Mark", tags: ["SQL", "Windows Server"] }]
    },
    columns: [{
        field: "name",
        title: "Name"
    }, {
        template: "# var t=tags.join(', '); data.tagsString=t; # #=t #",
        title: "Tags",
        field: "tags"
    }]
}).data("kendoGrid");

$("#filter").on("keydown", function() {
    grid.dataSource.filter({ 
        field: "tagsString",
        operator: "contains", 
        value: $(this).val()
    });
});

如您所见,我必须使用外部自定义筛选器字段。这是因为网格的默认内置列过滤器无法过滤数组,数据源的
filter()
方法也无法过滤数组

因此,在模板中,我让kendo在每个数据源项中创建一个新属性,名为
tagsString
,我设置了
tags.join(“,”
)的结果,与tags列中显示的结果相同。设置该属性后,我可以使用
filter()
方法进行过滤,将
字段设置为
tagsString