kendo ui网格分组不区分大小写

时间:2013-08-19 14:18:26

标签: javascript kendo-ui kendo-grid

我正在尝试使用kendo网格进行分组,但我遇到了kendo分组的默认功能问题。 Kendo网格对列进行分组,但它没有将“USA”与“usa”的记录区分开来,这些记录带有两个不同的分组记录集。同样适用于“华盛顿”和“华盛顿”等国家或地区。我想要一个不区分大小写的分组(“美国”和“美国”在逻辑上与他们的情况相同),任何人都知道如何做到这一点。我无法在ken​​do文档中找到它。

这是我的代码段。

Maplytics_jQ19("#grdData").kendoGrid(
                        {
                            editable: false,
                            sortable: true,
                            filterable: true,
                            //dataSource: _recordsInGrid,
                            groupable: true,
                            dataSource: {
                                data: _recordsInGrid,
                                group: { field: groupingField }
                            },
                            reorderable: true,
                            resizable: true,
                            dataBound: onDataBound,
                            selectable: false,
                            columns: columns,
                            schema: {
                                data: "_recordsInGrid"
                            },
                            scrollable: true
                        }
                        );

1 个答案:

答案 0 :(得分:0)

我覆盖了Kendo.data.QUery中的groupBy方法,它可以工作:

    function groupValueComparer(a, b) {
    if (a && a.getTime && b && b.getTime) {
        return a.getTime() === b.getTime();
    }
    if (typeof a == "string" && typeof b == "string") {
        return a.toLowerCase() == b.toLowerCase();
    }
    return a === b;
}
    var isEmptyObject = $.isEmptyObject;

    kendo.data.Query.prototype.groupBy = function(descriptor) {
        if (isEmptyObject(descriptor) || !this.data.length) {
                return new Query([]);
            }

        var field = descriptor.field,
            sorted = this._sortForGrouping(field, descriptor.dir || "asc"),
            accessor = kendo.accessor(field),
            item,
            groupValue = accessor.get(sorted[0], field),
            group = {
                field: field,
                value: groupValue,
                items: []
            },
            currentValue,
            idx,
            len,
            result = [group];

        for(idx = 0, len = sorted.length; idx < len; idx++) {
            item = sorted[idx];

            currentValue = accessor.get(item, field);
            if(!groupValueComparer(groupValue, currentValue)) {
                groupValue = currentValue;
                group = {
                    field: field,
                    value: groupValue,
                    items: []
                };
                result.push(group);
            }
            group.items.push(item);
        }
        return new kendo.data.Query(result);
    }

link demo

相关问题