easyui datagrid排序默认是按照字符串排序(即String类型),但在实际项目应用中,我们会发现排序会不对。如下图(由于我们数据庞大,所以我只截取了部分数据)
从上图可以看到在排序的时候并没有按照我们想要的结果排序,就是因为datagrid在排序的时候默认是按照字符串排序的。为了解决这一问题,可以根据自定义函数来解决这一问题。
{
field : 'actual_value',
title : '实际值',
align : 'center',
sortable:true,
width : '8%',
formatter : function(value,row,index){
var actual_value = "";
actual_value = row.actual_value == "-1" ? "-" : row.actual_value;
return actual_value;
},
styler : function(value,row,index){
if (row.control_type != "4") {
if (row.trigger_operation == 0) {
return {
style : 'color:#f00',
}
}else{
return {
style : 'color:#f0ad4e',
}
}
};
},
sorter:function(a,b){
if (parseFloat(a) > parseFloat(b)) {
return 1;
}else if(parseFloat(a) < parseFloat(b)){
return -1;
}else{
return 0;
}
}
}
加上sorter这一自定义函数,此函数需要两个参数:
a : 第一个字段值
b: 第二个字段值
结果如下图
注 : multiSort : true //开启多行排序