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
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
First find the column index by jquery,
Then insert the column index in datatable function.
var sort_col = $('#table').find("th:contains('your column name')")[0].cellIndex;
$('#table').dataTable({
order: [[ sort_col, 'desc' ]]
});
This worked for me. Hope this helps. Thanks
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']]
});