使用DataTables排序时会遇到某些特殊列排序问题,一般的排序列是数字或者字母或者汉字,DataTables会根据自己的默认规则排序,但是像某些特殊列,他们是图片或者其他别的(如下图1),
DataTables往往无法正确排序,这是需要在配置项里columnDefs里添加如下代码:
{
"targets": [ 0 ], //第一列
data : "ue_type", //对应的列名
render : function ( data, type, row ) { //列渲染时执行的回调
if ( type === 'display' || type === 'filter' ) {
var className = "";
var statusText= "";
//根据data值,来判断显示什么图片
if(data==2){
<span style="white-space:pre"> </span>className = "icon_slow";
statusText = "较慢";
}else if(data == 3){
className = "icon_slowly";
statusText = "很慢";
}else if(data == 4){
className = "icon_stagnation";
statusText = "停滞";
}
return '<span class="'+className+' hovershow" data-placement="top" data-original-title="'+statusText+'"></span>';
}
return data;
}
},
这里把展示和排序各用一套数据,展示用的图片,排序是根据data的值排序,这样就解决了特殊值排序的方法。