您可以使用以下代码轻松地一次对多列进行排序:
<script type="text/javascript">
var sortings_arr = [];
var order = '';
table = jQuery('#ord').DataTable({
"order": [[ 0, "desc" ]],
"lengthMenu": [[20, 30, 50,100, -1], [20, 30, 50,100, "All"]]
});
jQuery('#ord th').on('click', function(){
order = table.order();
if ($.inArray(order[0][0], $.map(sortings_arr, function(v,i) { return v[0]; })) > -1) {
key = $.inArray(order[0][0], $.map(sortings_arr, function(v,i) { return v[0]; }));
if(sortings_arr[key][1] == 'asc'){
sortings_arr[key][1] = 'desc';
}else if(sortings_arr[key][1] == 'desc'){
sortings_arr[key][1] = 'asc';
}
}else{
sortings_arr.push([order[0][0], order[0][1]]);
}
table.order(sortings_arr).draw();
});
function clear_sorting() {
table.order( [ 0, 'desc' ] ).draw();
sortings_arr = [];
}
</script>
只需根据您的html的ID更改代码即可。如果您想随时重置排序,请在按钮上使用名为“ clear_sorting”的函数。该代码的想法基本上是保留一个具有排序顺序的排序列数组,并使用名为.order()
的数据表js函数重新应用它们。