【问题标题】:How to simply sort by the last column of datatable如何简单地按数据表的最后一列排序
【发布时间】:2015-10-25 14:50:15
【问题描述】:

我对 dataTable 真的很陌生,我只需要一个简单的解决方案:

var initBasicTable = function() {

    var table = $('#basicTable');

    var settings = {
        "sDom": "t",
        "sPaginationType": "bootstrap",
        "destroy": true,
        "paging": false,
        "scrollCollapse": true,
        "order": [[0,'desc']]
    };

    table.dataTable(settings);
    $('#basicTable input[type=checkbox]').click(function() {
        if ($(this).is(':checked')) {
            $(this).closest('tr').addClass('selected');
        } else {
            $(this).closest('tr').removeClass('selected');
        }

    });

}

这是有效的,默认情况下对第一列进行排序。

但我读到将"order": [[0,'desc']] 中的0 更改为负数将从右侧的列开始排序。然而这个:

var settings = {
        "sDom": "t",
        "sPaginationType": "bootstrap",
        "destroy": true,
        "paging": false,
        "scrollCollapse": true,
        "order": [[-1,'desc']]
};

抛出一个错误,我不知道从哪里继续。

我知道 dataTable 确实很强大,但是, this is no what I was looking for but plenty already

“按最后(-1)列排序”没有任何内容?我感到失落。任何人?

【问题讨论】:

  • 你能指定最后一列的索引吗? IE。如果你有 5 列,那么它将是 4
  • 我一定是从阅读aoColumnDefs 中得到了这个想法,我认为 [-1] 会起作用,因为它可以被 'aTarget' 接受。无论在哪个表上,我都希望它始终对“最后一列”进行排序。

标签: jquery sorting datatable


【解决方案1】:

结果并不那么难,需要一些工作:

var table = $('#basicTable');
    var index = $(table).find('th:last').index();
    var settings = {
        "sDom": "t",
        "sPaginationType": "bootstrap",
        "destroy": true,
        "paging": false,
        "scrollCollapse": true,
        "order": [
            [index, "desc"]
        ]
    };

这将获取最后一个“列”的索引并首先对其进行排序。谢谢大家的帮助。

【讨论】:

    【解决方案2】:

    您可以像这样初始化表格以按最后一列对其进行排序

    $('.table').DataTable().columns(-1).order('desc').draw();
    

    详情请查看this

    【讨论】:

      【解决方案3】:

      只需使用 dataTables 中的 re-draw 函数即可:

      table.order([0, 'desc']).draw();
      

      并且不要对列索引使用负值。只使用积极的。 在the api 中,没有提到可排序列的负列索引。

      如果你现在不能关注我,请阅读:“https://datatables.net/reference/api/order%28%29

      【讨论】:

      • 我从herea negative integer - column index counting from the right 得到了负值的概念。我知道文档中没有说明,但是-为什么不呢?如果 'aTarget' 接受负数,一般我会认为 'order' 应该是一样的,对吧?否则,如果我在每个页面上应用脚本,其中表格以不同的列显示,我不能使用一个脚本仅按最后一列排序。
      • 好的,那么...您在项目中使用的是哪个版本的 dataTables.net?
      • 如您所见,评论中的链接适用于 1.10 之前的旧版本,您需要使用新 api 中提供的选项
      • 或者使用: $('#example').dataTable( { "order": [[ 0, 'asc' ], [ 1, 'asc' ]] } );但是你必须证明正列索引
      猜你喜欢
      • 1970-01-01
      • 2019-04-02
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      • 1970-01-01
      相关资源
      最近更新 更多