Kendo UI Grid扩展了filter参数

时间:2015-02-03 10:26:35

标签: javascript jquery kendo-ui kendo-grid

设置我一直在使用的列的默认过滤器运算符:

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网格以实现此目的?

1 个答案:

答案 0 :(得分:0)

我处理这个问题的方法是使用每种类型及其各自的运算符在网格上显式设置可过滤对象,因为它们将按顺序添加。 当列数据类型是字符串时,请求包含默认值。

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

我还为它添加了数字和一些运算符,如果需要,你可以继续使用datetime和boolean。 filterable.operators的文档http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#configuration-filterable.operators