我有一个JQuery Datatable,我默认根据第一列以降序排序。

表格本身工作正常,但是一旦绘制了表格,我就试图更改列重新排序箭头按钮的行为,在下面的屏幕截图中我用红色圆圈圈出了该表格:

javascript - 列默认排序箭头重新排序-LMLPHP

当我单击这些小箭头按钮时,表将首先对我单击的列按升序进行重新排序。因此,例如,如果我单击“创建日期”(UK)列的箭头一次,则该表将按升序对表进行重新排序这些日期(最早添加的日期最早出现在表格的顶部),这不是我想要的:

javascript - 列默认排序箭头重新排序-LMLPHP

我要寻找的是在该列的第一次单击时将表降序排列,而不必单击两次(一次进入升序,再一次降序)。基本上,我试图在第一次单击时获得此结果,但是我仅在第二次单击时获得该结果:

javascript - 列默认排序箭头重新排序-LMLPHP

是否可以将简单的设置添加到表代码中以更改列的箭头重新排序的行为?我浏览了他们的API和一些过去的StackOverflow问题,但找不到与我的问题相关的任何内容。

如果您想看一下,这是我的代码:

self.table = table_dom.DataTable({
    serverSide: true,
    dom: "<'row'<'col-md-3'l><'col-md-5 text-right'B><'col-md-4'f>>" +
        "<'row'<'col-md-12'tr>>" +
        "<'row'<'col-md-5'i><'col-md-7'p>>",
    ajax: '...',
    columns: [
        {data: 'legacy_description', name: 'legacy_description', title: 'P', width: '20px'},
        ...
        {data: 'created', name: 'created', title: 'Date Created (UK)', width: '150px'},
    ...
    ],
    order: [[0, 'desc']],
    responsive: true,
    pageLength: 10,
    ...
});


提前致谢。

最佳答案

使用columns.orderSequence定制每列的顺序。

例如,要首先以降序对第三列进行排序,请使用以下代码:

$('#example').DataTable( {
  "columnDefs": [
    { "orderSequence": [ "desc", "asc" ], "targets": [ 2 ] }
  ]
} );

10-04 11:01
查看更多