jQuery Datatable按列标题排序

时间:2017-04-17 02:00:22

标签: jquery datatables

基本上,jQuery Datatable允许我们按列索引对数据进行排序。

"order": [1, 'desc']

我想知道我们是否可以按列标题名称排序?例如:

"order": ['my_column_name', 'desc']

三江源 亚历

3 个答案:

答案 0 :(得分:4)

  

Is there a way to use the name, data or class of the column in order to set the default column sort?   不 - 不是在这个时候。

虽然这个帖子是在2015年6月发布的,但我仍然无法在最新版本的DataTable中找到这样的功能。

作为旁注!您在订购DataTable数据时必须提供column index,但您可以获得应用了哪种排序的Column Name

var order = table.order();
var columnIndex = order[0][0]; //column index
var orderDirection =order[0][1]; // asc or desc

//Get column header text;
var title = table.column(order[0][0]).header();
var columnName = $(title).html(); //Column Name

Demo

答案 1 :(得分:0)

我找到了解决此问题的解决方案

var column1 = table.parents('table').find("th:contains('Your th text')")[0].cellIndex; 
var column2 = table.parents('table').find("th:contains('Your th text')")[0].cellIndex;
table.parents('table').dataTable({
  order: [[column1, 'asc'], [column2, 'asc']]
});

答案 2 :(得分:0)

首先通过jquery查找列索引,

然后在数据表函数中插入列索引。

var sort_col = $('#table').find("th:contains('your column name')")[0].cellIndex;

$('#table').dataTable({             
    order: [[ sort_col, 'desc' ]]                
  });

这对我有用。希望这可以帮助。谢谢