https://datatables.net/examples/basic_init/table_sorting.html
$(document).ready(function() {
$('#example').DataTable( {
"order": [[ 3, "desc" ]]
} );
} );
文档中的示例使用数组数组作为源,并通过指定索引来定义排序。
当源是对象数组时,如何指定默认排序。
我试着把它写成
"order": [[ "attribute_name", "desc" ]]
但它不起作用。我收到此错误
未捕获的TypeError:无法读取属性' aDataSort'未定义的
答案 0 :(得分:1)
根据documentation订单函数的第一个参数(或您的订单对象数组中的第一个位置)必须是您希望的列的索引 number 排序。
要解决此问题,您可以将属性的值设置为返回所需列的索引的函数。例如:
$(document).ready(function() {
function findColumn(input) {
return function(element) {
return element.sTitle === input;
}
}
var myDataTable = $('#example').DataTable();
var columnIWant = "Office";
var indexOfThatColumn = myDataTable.context[0].aoColumns.find(findColumn(columnIWant)).idx;
myDataTable.order([indexOfThatColumn, "desc"]);
});
不可否认,这非常难看(虽然功能齐全!),但通过一些重构,这可能是一个不错的解决方案。