jQuery dataTables:单击thead应对所有列进行降序排序,然后按升序排序

时间:2015-04-16 11:32:13

标签: sorting datatable jquery-datatables

我正在尝试更改默认的排序方向。默认顺序是升序然后降序。我试图扭转它。

排序方向应该是独立的,应该适用于所有列(列数因不同的表而异)我必须启动数据表的脚本是通用的。

排序应仅适用于点击。

我找到了一些示例,但它们是特定于列的https://datatables.net/examples/advanced_init/sort_direction_control.html

这是我的剧本

jQuery(function($) {
   $(".datatable").dataTable({
    "paging": false,
    "searching": false,
    "info": false,
    "orderCellsTop": true
  });
});

3 个答案:

答案 0 :(得分:2)

所有选项和设置都具有在内部DataTable.defaults对象中定义的默认值。此对象可用于通过$.fn.dataTable.defaults进行更改。这在网站上的记录很少,但在代码中有很好的记录。打开一个非缩小的jquery.dataTables.js并搜索DataTable.defaults。

要反转所有列的默认排序,它会变为descasc

$.fn.dataTable.defaults.column.asSorting = ['desc', 'asc'];

将第一列的初始排序设置为desc

$.fn.dataTable.defaults.aaSorting = [[0,'desc']];

同样,您只需更改默认值即可,因此您根本不需要在dataTable()中设置任何通用选项:

$.fn.dataTable.defaults.bPaginate = false;    //paging: false
$.fn.dataTable.defaults.bFilter = false;      //searching: false
$.fn.dataTable.defaults.bInfo = false;        //info: false
$.fn.dataTable.defaults.bSortCellsTop = true; //orderCellsTop: true

参见演示 - >的 http://jsfiddle.net/f31pncb4/

答案 1 :(得分:2)

您可以在初始化时执行此操作:

jQuery(function ($) {
    $(".datatable").dataTable({
        "paging": false,
        "searching": false,
        "info": false,
        "orderCellsTop": true,
        aoColumnDefs: [
            {
                orderSequence: ["desc", "asc"],
                aTargets: ['_all']
            }
        ]
    });
});

答案 2 :(得分:1)

理查德在上面的回答是有效的,但却是传统方法。当前版本的语法类似且更简单:

var myTable = $('table').DataTable({
    "columnDefs": [
        {
            "orderSequence" : [ "desc", "asc" ],
            "targets" : "_all"
        }
    ]
});

稍微偏离主题但注意资本" D"在DataTable()中,它返回一个api实例而不是一个jquery对象。这很重要,因为这样做可以让您在初始化后更轻松地访问api。