在制表符中排序

问题描述

当我使用一列格式化程序并将值相乘时,制表符排序出现问题。

排序使用的是初始值,而不是乘法运算所得的值,因此排序器是错误的。

formatter: function(cell,formatterParams) {
                                        var value = cell.getValue();
                                        if (cell.getRow().getData().Tipo == 'Holfuy') {
                                            value=cell.getValue()*5;
                                            return value;
                                        } else {
                                            return value;
                                        }
                                    },

enter image description here

感谢您的帮助。

解决方法

之所以发生这种情况,是因为制表符格式化程序仅是可视的,它们不会影响用于排序和过滤的基础数据。

如果希望将更新后的值包括在排序中,则需要使用 mutator 而不是格式化程序。

这将转换基础数据并在排序时起作用:

mutator: function(value) {
    var value = value;
    if (data.Tipo == 'Holfuy') {
        return value * 5;
    } else {
        return value;
    }
},

详细信息可以在Mutator Documentation

中找到