我将以下数据传递给DataTables表:
data = [{'state': 'Baseline', 'contact': 'Johnny', 'years_active': 10},
{'state': '1', 'contact': 'Rachel', 'years_active': 10},
{'state': '2', 'contact': 'Steve', 'years_active': 8}]
该表格包含三列:state
,contact
和years_active
。当我对state
列进行排序时,state='Baseline'
行位于表格底部。有没有办法调整排序机制,这一行将在顶部?
可能在后台将Baseline
转换为'0'
,或者可能将字符值定义为小于数值?
答案 0 :(得分:1)
您可以控制列render
回调中的排序值。 type
参数定义返回值的范围,即过滤,排序,显示。使用||
运算符的魔力,当列即将被排序时,您可以返回-1,并且该值不是数字:
columns: [
{ data: 'state',
render: function(data, type) {
if (type == 'sort') {
return parseInt(data) || -1
}
return data
}
},
{ data: 'contact' },
{ data: 'years_active' }
]
参见演示 - >的 http://jsfiddle.net/721hdxa5/ 强>