Kendo UI 扩展过滤器参数的网格
Kendo UI Grid extending the filter parameter
为我一直使用的列设置默认筛选运算符:
filterMenuInit: function(e) {
if (e.field == "name") {
var firstValueDropDown = e.container.find("select:eq(0)").data("kendoDropDownList");
firstValueDropDown.value("contains");
firstValueDropDown.trigger("change");
var logicDropDown = e.container.find("select:eq(1)").data("kendoDropDownList");
logicDropDown.value("or");
logicDropDown.trigger("change");
var secondValueDropDown = e.container.find("select:eq(2)").data("kendoDropDownList");
secondValueDropDown.value("contains");
secondValueDropDown.trigger("change");
}
...
}
但我希望能够做这样的事情:
filterable: {
extra: true,
defaultStringOperator: 'contains',
defaultNumberOperator: 'gte'
}
如何扩展或更改 Kendo UI 网格以实现此功能?
我处理这个问题的方法是在我的网格上使用每种类型及其各自的运算符显式设置可过滤对象,因为它们将按顺序添加。
当列数据类型为字符串时,要求默认包含 Contains。
filterable: {
operators: {
string: { contains: 'Contains', doesnotcontain: 'Does not contain', eq: 'Is equal to', neq: 'In not equal to', startswith: 'Starts with', endswith: 'Ends with' },
number: { gte: 'Greater Than or Equals and stuff', eq: 'Equal To', neq: 'Not Equal To', gt: 'Greater Than' }
}
}
示例...http://jsbin.com/diyivu/1/edit
我还为其添加了数字和一些运算符,如果需要,您可以继续使用日期时间和布尔值。
filterable.operators http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#configuration-filterable.operators
的文档
为我一直使用的列设置默认筛选运算符:
filterMenuInit: function(e) {
if (e.field == "name") {
var firstValueDropDown = e.container.find("select:eq(0)").data("kendoDropDownList");
firstValueDropDown.value("contains");
firstValueDropDown.trigger("change");
var logicDropDown = e.container.find("select:eq(1)").data("kendoDropDownList");
logicDropDown.value("or");
logicDropDown.trigger("change");
var secondValueDropDown = e.container.find("select:eq(2)").data("kendoDropDownList");
secondValueDropDown.value("contains");
secondValueDropDown.trigger("change");
}
...
}
但我希望能够做这样的事情:
filterable: {
extra: true,
defaultStringOperator: 'contains',
defaultNumberOperator: 'gte'
}
如何扩展或更改 Kendo UI 网格以实现此功能?
我处理这个问题的方法是在我的网格上使用每种类型及其各自的运算符显式设置可过滤对象,因为它们将按顺序添加。 当列数据类型为字符串时,要求默认包含 Contains。
filterable: {
operators: {
string: { contains: 'Contains', doesnotcontain: 'Does not contain', eq: 'Is equal to', neq: 'In not equal to', startswith: 'Starts with', endswith: 'Ends with' },
number: { gte: 'Greater Than or Equals and stuff', eq: 'Equal To', neq: 'Not Equal To', gt: 'Greater Than' }
}
}
示例...http://jsbin.com/diyivu/1/edit
我还为其添加了数字和一些运算符,如果需要,您可以继续使用日期时间和布尔值。 filterable.operators http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#configuration-filterable.operators
的文档