首页 文章

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

提问于
浏览
2

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

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

排序应仅适用于点击 .

我找到了一些例子,但它们是专栏的https://datatables.net/examples/advanced_init/sort_direction_control.html

这是我的剧本

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

3 回答

  • 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

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

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

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

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

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

相关问题