jQuery dataTables:点击广告应该对所有列进行降序然后升序排序

Posted

技术标签:

【中文标题】jQuery dataTables:点击广告应该对所有列进行降序然后升序排序【英文标题】:jQuery dataTables : Clicking thead should sort descending and then ascending for all columns 【发布时间】:2015-06-22 18:46:29 【问题描述】:

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

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

排序应该只适用于点击。

我发现了几个例子,但它们是特定于列的 https://datatables.net/examples/advanced_init/sort_direction_control.html

这是我的脚本

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

【问题讨论】:

【参考方案1】:

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

要反转 所有 列的默认顺序,使其变为 desc, asc

$.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/

【讨论】:

【参考方案2】:

你可以在初始化的时候做:

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

【讨论】:

【参考方案3】:

Richard 的上述回答有效,但属于传统方法。当前版本的语法类似,但更简单一些:

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

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

【讨论】:

以上是关于jQuery dataTables:点击广告应该对所有列进行降序然后升序排序的主要内容,如果未能解决你的问题,请参考以下文章

如何从 jQuery DataTable 中的所有页面中选择所有复选框

使用 jquery-datatables 获取数据

如何在 Jquery / Datatables 中打印 [关闭]

提醒页码。关于 jQuery dataTables 页面更改事件

如何使用 jQuery DataTables 插件在特定列中搜索?

jQuery DataTables 鼠标点击搜索