2015-08-03 45 views
4

最后一列我真的很新的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']] 
}; 

发生错误,我不知道该继续。

我知道数据表上真的很强大,并且但是, this is no what I was looking for but plenty already

对于没有“排序最后(-1)列”?我感到迷茫。任何人?

+0

你能指定最后的列索引吗?即如果你有5列,那么它将是4 – FuzzyTree

+0

我必须从阅读[aoColumnDefs](http://legacy.datatables.net/usage/columns)得到这个想法,我认为[-1]可以工作,因为它是可以接受的'aTarget'。无论在哪张桌子上,我都希望它总是对“最后一列”进行排序。 –

回答

0

只需使用从数据表再拉功能:

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

并没有为列索引使用负值。只是使用积极的。 这里在the api中没有提及可订购列的负列索引。

如果你不能跟着我,现在,念道:“https://datatables.net/reference/api/order%28%29

+0

我从[这里](http://legacy.datatables.net/usage/columns)得到了负值的想法 - 一个负整数 - 从右边数起来的列索引。我知道这不是在文档中陈述,但 - 为什么不呢?如果'aTarget'接受负数,通常我会认为'order'应该是相同的,对吗?否则,如果我在每个页面上应用脚本,其中表格显示不同的列,我不能使用一个脚本来按最后一列排序。 –

+0

好吧,那么......您的项目中使用了哪个版本的dataTables.net? – Unlockedluca

+0

我使用v1.10.7 –

4

原来不是那么难,有一些工作围绕:

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"] 
     ] 
    }; 

这将让指数最后的'专栏'并且首先排序。谢谢你们的帮助。