DataTable with Absolute plugin changed the type of the column, ordering wrong
DataTable with Absolute plugin changed the type of the column, ordering wrong
![danilorago](https://secure.gravatar.com/avatar/f8772179bc5a6cf4d2eb7b96f32fe74d/?default=https%3A%2F%2Fvanillicon.com%2Ff8772179bc5a6cf4d2eb7b96f32fe74d_200.png&rating=g&size=120)
I am using DataTable to present the information in my table, but at a certain point I needed to add a line at the top, for this in my research I saw that there is the Absolute plugin. After that I was able to leave the specific line at the top, when necessary, using the first column (ID), of which all numbers are integers. However, when using this plugin, check that it transforms the field from INT to STRING, thus ordering the rest of the table incorrectly, as shown below:
ID 8 Fixed, ordering the rest on ID DESC:
ID 8 Fixed, ordering the rest on ID ASC:
Then the result is that is ordering as String, not as Int (Number).
CODE:
$(document).ready(function(){
var Str__ID = $.fn.dataTable.absoluteOrder([
{
position: 'top',
value: '8'
}
]);
$.fn.dataTable.moment('DD/MM/YYYY');
$('#DT__List').DataTable({
"dom": 'lBfrtip',
"columnDefs": [{
"orderable": false,
"targets": [3]
},{
"type": Str__ID,
"targets": [0]
}],
"info": true,
"fixedHeader": true,
"language": {
"aria": {
"sortAscending": ": ativar para classificar a coluna ascendente",
"sortDescending": ": ativar para classificar a coluna descendente"
},
"buttons": {
"copy": "Copiar",
"copySuccess": {
_: "( %d ) linhas copiadas para a área de transferência!",
1: "( 1 ) linha copiada para a área de transferência!"
},
"copyTitle": "Copiar",
"csv": "CSV",
"excel": "Excel",
"pdf": "PDF",
"print": "Imprimir"
},
"emptyTable": "Não há registro(s)!",
"info": "Página _PAGE_ de _PAGES_",
"infoEmpty": "Não há registro(s)!",
"infoFiltered": " (Do total de _MAX_ registro(s))",
"lengthMenu": "Mostrar _MENU_ registro(s) em cada página",
"loadingRecords": "Carregando…",
"paginate": {
"first": "Primeira",
"last": "Última",
"next": "Próxima",
"previous": "Anterior"
},
"processing": "Processando…",
"search": "Pesquisar:",
"searchPlaceholder": "Pesquisar…",
"zeroRecords": "Opsss, não encontramos nada através da sua pesquisa!"
},
"order": [[0,"desc"]],
"ordering": true,
"pageLength": 10,
"paging": true,
"select": true
});
});
I even tried to change the column by code, but without success:
{
"type": "num",
"targets": [0]
}
Anyone solved this error?
I made a big search, but nobody asked that...
This question has an accepted answers - jump to answer
Answers
Looks like your data is DOM sourced. Numbers will actually be seen as strings in this case. Use Orthogonal data for the
sort
operation to convert the string to a number. Like this:https://live.datatables.net/fudagute/1/edit
Kevin
There is an
absoluteOrderNumber
plug-in in the same file if you want to numeric sort data.Allan
Hello @kthorngren thanks for your support.![=) =)](https://datatables.net/forums/resources/emoji/smiley.png)
@allan I used your solution, thanks a lot for your support. Tested and working!
Have a nice week...