Basically, jQuery Datatable allow us to sort data by column index.
"order": [1, 'desc']
I wonder if we can sort by column header name? For example:
"order": ['my_column_name', 'desc']
Thankyou Alex
Is there a way to use the name, data or class of the column in order to set the default column sort? No - not at this time.
Although this thread is posted in June-2015 but still I couldn't find such functionality in latest version of DataTable.
As a side note! You have to provide column index while ordering data of DataTable but you can get Column Name on which ordering is applied.
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
I found a solution to fix this problem
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']]
});
text()content, is it aname="name"attribute or something else...? You could simply map your header names into integer constants, and use those constants instead of indexes. But what should be the benefit of doing that? A column index is basically just another name for the column anyway.1is the unique name for the second column...