Javascript 多值剑道UI网格
我想在我的页面中添加一个剑道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标记
| 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