问题描述
当我使用一列格式化程序并将值相乘时,制表符排序出现问题。
排序使用的是初始值,而不是乘法运算所得的值,因此排序器是错误的。
formatter: function(cell,formatterParams) {
var value = cell.getValue();
if (cell.getRow().getData().Tipo == 'Holfuy') {
value=cell.getValue()*5;
return value;
} else {
return value;
}
},
感谢您的帮助。
解决方法
之所以发生这种情况,是因为制表符格式化程序仅是可视的,它们不会影响用于排序和过滤的基础数据。
如果希望将更新后的值包括在排序中,则需要使用 mutator 而不是格式化程序。
这将转换基础数据并在排序时起作用:
mutator: function(value) {
var value = value;
if (data.Tipo == 'Holfuy') {
return value * 5;
} else {
return value;
}
},
详细信息可以在Mutator Documentation
中找到