当multi和columnMenu都为true时,如何订购Kendo Grid复选框列过滤器?

Bil*_*ill 4 kendo-ui kendo-grid

使用Kendo UI网格,您可以将列设置为"filterable:{multi:true}",这会在过滤器中生成一个漂亮的复选框列表,而不是默认文本框和相等运算符模板.问题是,默认情况下,复选框列表中的项目与数据集一起排序,数据集本身可能是由其他字段排序的.

Kendo文档解释了如何在"filterable:{multi:true}"时过滤列,但它仅在columnMenu为false时才有效.列菜单是另一个选项,可以为所有列添加一个漂亮的菜单.

那么,当multi和columnMenu都为真时,如何订购Kendo Grid复选框列过滤器?

Bil*_*ill 6

下面列出了这样做的方法.Kendo文档描述了一种使用filterMenuInit事件来使用它的方法,当使用ColumnMenu时,它永远不会被触发:true.这种方法可以使用,并且它还对文档进行了改进,因为您不需要为每个字段自定义它.只需插入即可.

KendoUI团队 - 窃取此代码.

columnMenuInit: function (e) {
    var multiCheck = this.thead.find("[data-field=" + e.field + "]").data("kendoColumnMenu").filterMenu.checkBoxAll;
    if (multiCheck) {
        var filterMultiCheck = this.thead.find("[data-field=" + e.field + "]").data("kendoColumnMenu").filterMenu
        filterMultiCheck.container.empty();
        filterMultiCheck.checkSource.sort({ field: e.field, dir: "asc" });
        filterMultiCheck.checkSource.data(filterMultiCheck.checkSource.view().toJSON());
        filterMultiCheck.createCheckBoxes();
    }
},
Run Code Online (Sandbox Code Playgroud)