Need to get the table order column and direction when user click on column sort
Need to get the table order column and direction when user click on column sort
Hi Team,
I disabled default first column sort order by Appling order[ ] for the table
downloadHistoryTable = $('#myFavorites').DataTable({
responsive: true,
processing: true,
serverSide: true,
renderer: "bootstrap",
pagingType: "full_numbers",
paging: true,
pageLength: 9,
lengthMenu: [
[3, 6, 9, 12],
[3, 6, 9, 12]
],
order: [],
columnDefs: [{
targets: disableSortColumns,
orderable: false
}],
Until user click sort option in header i have set sortColumn="_score"
and Sortdirection="desc"
Now i need to capture the table order event when user click on sorting of the column for example if user click 2nd column i need to get the 2nd column title and direction
I tired with order event like below
$('#myTable').on( 'order.dt', function () {
var ordering = $('#myTable').DataTable().order();
console.log( 'Table ordering changed: ' + JSON.stringify(ordering) );
} );
but this function is executing every time irrespective click.
can some one provide how i can achieve this
Edited by Allan - Syntax highlighting. Details on how to highlight code using markdown can be found in this guide.
Replies
order
doesn't just trigger when the user clicks a header - it does so whenever DataTables needs to order the data.If you just need a click, add a click listener to the header.
That said, is it a problem to have it operating on
order
? If you just want to show a title with the ordering column for example, then this should be fine. I don't really know what it is you are trying to achieve overall.Allan
Hi
In your use case we need to do sorting at server side.
So before use click sort header we need to send sort parameter like _score and desc as payload in ajax call.
Now when user click we need to capture the sort column and direction and need to send to ajax call payload
Let me know how we can achieve this
When server-side processing is enabled (which it is here), DataTables will send the sorting information to the server for every draw request, as described in the manual for server-side processing.
Does that not contain the information you need? I'm not clear on what
_score
is or what it is expected to do.Allan
Hi Allan,
By default i not required soring on page load of table so i have set order to empty array like order[].
at that time i am sending different sort part to server called _score and direction is desc.
Now when user clicks on header of th i need to capture the title of column and sort direction i am able to get the sortId but not able to get direction
$('#myFavorites thead th').on('click', function() {
var sortId= $(this).data('sortid');
I found the solution to get the sort order and direction