Kendo ui 剑道网格:无法筛选下拉列表中的列
我用模板定义了一个列:object.type,它是dropdownlist,有多种类型可供搜索 它有:Kendo ui 剑道网格:无法筛选下拉列表中的列,kendo-ui,kendo-grid,kendo-dropdown,kendo-datasource,Kendo Ui,Kendo Grid,Kendo Dropdown,Kendo Datasource,我用模板定义了一个列:object.type,它是dropdownlist,有多种类型可供搜索 它有: editor : function (container, options) { $('<input data-text-field="display" data-value-field="id" data-bind="value:' + options.field + '"/>')
editor : function (container, options) {
$('<input data-text-field="display" data-value-field="id" data-bind="value:' + options.field + '"/>')
.appendTo(container)
.kendoDropDownList({
index: 0,
dataTextField: "display",
dataValueField: "id",
dataSource: usergroupConf.permissions
});
},
现在,我已经为该列定义了filterable属性:
filterable : {
extra : false,
ui : function(element) {
element.kendoDropDownList({
index: 0,
dataTextField: "display",
dataValueField: "id",
dataSource: usergroupConf.permissions
});
}
}
当我点击过滤器框时,它会显示filter fine,但当我从中选择某个值时,我会得到错误:
Uncaught TypeError: undefined is not a function
所以简而言之,
如何过滤剑道网格中的下拉列表?因此,经过大量研究,解决方案如下。在剑道网格中使用外键 创建附加字段,该字段是中所选值的关键字段 下拉列表 对于该列,将绑定到下拉列表的板条箱编辑器 会改变这个新领域吗
{
field: 'permission_id',
title : 'Permission',
// values : usergroupConf.permissions,
template : "#= permission.display #",
editor : function (container, options) {
// bind it to permission, but update permission_id as well (because of enabled filtering)
$('<input data-text-field="display" data-value-field="id" data-bind="value:permission"/>')
.appendTo(container)
.kendoDropDownList({
index: 0,
dataTextField: "display",
dataValueField: "id",
dataSource: usergroupConf.permissions,
select : function(e) {
options.model.permission_id = this.dataItem(e.item.index()).id;
}
});
},
filterable : {
extra : false,
ui : function(element) {
element.kendoDropDownList({
dataSource: usergroupConf.permissions,
dataTextField: "display",
dataValueField: "id",
optionLabel: "--Select Value--"
});
}
}
},
因此,最后,在填充数据时,您必须添加权限作为对象:
{
"id":1
"display":"Move"
}
及
dataSource: new kendo.data.DataSource({
// pageSize: 10,
serverPaging: false,
schema: {
model: {
id : 'id',
fields: {
'id' : {},
'name' : {
editable : false,
nullable : false
},
'permission' : {
editable : true
},
'permission_id' : { // we'll have permission_id to enable filter (kendo doesn't support filtering through objects (what permission column is) by default)
editable : true,
type : 'number'
}
}
}
},
{
"id":1
"display":"Move"
}
permission_id:1