列默认排序箭头重新排序

时间:2017-11-08 18:05:13

标签: javascript jquery knockout.js datatables

我有一个JQuery数据表,我默认根据第一列按降序排序。

表本身工作得很好但是我试图在绘制表格后更改列重新排序箭头按钮的行为,我在下面的屏幕截图中用红色圈出:

column reordering behaviour i want to change

当我单击这些小箭头按钮时,表格会按照我点击的列的升序排序进行重新排序。例如,如果我在箭头上单击一次创建的日期(英国)列,表格按升序重新排序,这些日期(最早的日期,首先添加,显示在表格的顶部),这不是我想要的:

behaviour I have right now

我正在寻找的是在第一次点击该列时以降序订购表格,而不是必须点击两次(一次到进入上升,再下降)。基本上我试图在第一次点击时得到这个结果,但我只在第二次点击时得到它:

behaviour I want on first click

是否有一个简单的设置我可以添加到我的表代码中来改变列重新排序的行为?我查看了他们的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,
    ...
});

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用columns.orderSequence自定义每列的订单顺序。

例如,要先按降序排序第三列,请使用以下代码:

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