jquery datatable disable sort in specific row
Clash Royale CLAN TAG#URR8PPP
jquery datatable disable sort in specific row
How to disable sorting in specific row/column in jquery datatable using a class?
here's my sample table;
<table>
<thead>
<tr>
<th class="sorting_disabled">Title1</th>
<th class="">Title2</th>
<th class="sorting_disabled">Title3</th>
</tr>
</thead>
<tbody>
<tr><td>Tag 1</td><td>Date 1</td><td>Date 2</td></tr>
<tr><td>Tag 2</td><td>Date 2</td><td>Date 2</td></tr>
<tr><td>Tag 3</td><td>Date 3</td><td>Date 3</td></tr>
<tr><td>Tag 4</td><td>Date 4</td><td>Date 4</td></tr>
<tr><td>Tag 5</td><td>Date 5</td><td>Date 5</td></tr>
....
</tbody>
</table>
script;
$('.sortable thead tr th.sorting_disabled').livequery(function()
$(this).removeClass('sorting');
$(this).unbind('click');
);
above code works but if I click to the next column who has a sorting its shows again an arrow. though its not clickable ;(
How can I disable the sorting by using a class and not using/redraw a table.
above code is just a sample table :) Ive edit it already..
– mrrsb
Jun 13 '12 at 9:03
You can set
bSortable
to false for those columns, in aoColumns
def. Check this example, sorting is disabled on first and second column live.datatables.net/awizop/edit#preview– Prasenjit Kumar Nag
Jun 13 '12 at 9:18
bSortable
aoColumns
I know Sir, but the given code always set in the first column though we can set it by its script. below answer may used as a dynamic code for a class who has a 'sorting_disabled'.
– mrrsb
Jun 13 '12 at 9:24
9 Answers
9
You can disable the sorting using a class in definition.
Just add this code to the datatable initialization:
// Disable sorting on the sorting_disabled class
"aoColumnDefs" : [
"bSortable" : false,
"aTargets" : [ "sorting_disabled" ]
]
$('#example').dataTable(
"aoColumnDefs": [
'bSortable': false, 'aTargets': [ 1 ]
]);
That should do it..;)
try the following answer .it works for me.
<table class="tablesorter" id="tmp">
<thead>
<tr>
<th>Area</th>
<th>Total Visitors</th>
</tr>
</thead>
<tbody>
<tr>
<td>Javascript</td>
<td>15</td>
</tr>
<tr>
<td>PHP</td>
<td>3</td>
</tr>
<tr>
<td>HTML5</td>
<td>32</td>
</tr>
<tr>
<td>CSS</td>
<td>14</td>
</tr>
<tr>
<td>XML</td>
<td>54</td>
</tr>
</tbody>
<tfoot>
<tr class="no-sort">
<td><strong>Total</strong></td>
<td><strong>118</strong></td>
</tr>
</tfoot>
source : http://blog.adrianlawley.com/tablesorter-jquery-how-to-exclude-rows
<th class="sorting_disabled"> </th>
$(document).ready(function ()
$('#yourDataTableDivID').dataTable(
"aoColumnDefs": [
"bSortable": false,
"aTargets": ["sorting_disabled"]
]
);
);
I hope below code works in your case.
$("#dataTable").dataTable(
"aoColumns": ["bSortable": false, null,"bSortable": false]
);
You need to disable sorting via "bSortable" for that specific column.
$(document).ready(function()
$('#example').dataTable(
"aoColumns": [
"bSortable": false ,
null,
"bSortable": false
]
);
);
I came with almost the same solution like in the question, but I used the "fnHeaderCallback". As far as I understood, it gets called after each header redisplay, so no more worries about 'sorting' class that appears again after clicking on column next to target column.
$('.datatable').dataTable(
"fnHeaderCallback": function()
return $('th.sorting.sorting_disabled').removeClass("sorting").unbind("click");
);
Additional documentation about callbacks: http://datatables.net/usage/callbacks
The only solution:
First add class="sorting_disabled"
to any<th>
that you want to disable sorting, then add this code to the datatable initialization:
class="sorting_disabled"
<th>
// Disable sorting on the sorting_disabled class
"aoColumnDefs" : [
"bSortable" : false,
"aTargets" : [ "sorting_disabled" ]
],
"order": [
[1, 'asc']
],
this code worked for me in react.
in row created i added fixed-row class to the row i wanted to stay fixed and not sortable and i drawcallback i hid the row then i appended it to the table itself.
Hope this works for you:
$(this.refs.main).DataTable(
dom: '<"data-table-wrapper"t>',
data: data,
language:
"emptyTable": "Loading ...",
,
columns,
ordering: true,
order: [0,'asc'],
destory:true,
bFilter: true,
fixedHeader:
header: true
,
iDisplayLength: 100,
scrollY: '79vh',
ScrollX: '100%',
scrollCollapse: true,
"drawCallback": function( settings )
var dataTableId = $("#To_Scroll_List").find(".dataTables_scrollBody table").attr("id");
$("..fixed-row").css('display','none');
$("#"+dataTableId+"_wrapper table").find('tbody tr:last').after($('.fixed-row'));
$(".fixed-row").show();
,
createdRow: function (row, data, index)
if(data.UnitsPerLine == 999)
$(row).addClass('fixed-row');
,
initComplete: function (settings, json)
$("#To_Scroll_List").find(".dataTables_scrollBodytable").attr("id");
$("#"+dataTableId+" thead tr").remove();
);
DatatableSearch(dataTableId+"_wrapper table", "AverageUnitsPerLineReport");
});
}
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.
what is meant by sorting here??
– Naveen Kumar Yadav
Jun 13 '12 at 8:59