I have a tables that I am trying to sort, the problem is that when I add locales to the numbers, it breaks sorting, it sorts as it were strings.
I followed this answer and I modified without having to use regex, but then it begins sorting as it were strings and no longer numbers, for instance
1
1.200
2
$(document).ready(function () {
$('.my_table').DataTable({
"bProcessing": true,
"bPaginate": true,
"bDestroy": true,
"bShowPollInfo": false,
"iDisplayLength": 20,
"aLengthMenu": [[20, 40, -1], [20, 40, "_all"]],
"sScrollX": "100%",
"aoColumns": [
{ "sWidth": "160px", "sClass": "nowrap" },
],
"aoColumnDefs": [
{
"mRender": function (data, type, row) {
return formatNumbers(data);
},
"aTargets": [1, 2]
},
],
});
});
function formatNumbers(val) {
return parseInt(val).toLocaleString("de-DE");
}
Change the "aoColumnDefs"
part to this
"aoColumnDefs": [
{
"mRender": function (data, type, row) {
if( type === 'display' ){
return formatNumbers(data); // only format the data for display
}else{
return data; // the default data should be used for sorting
}
},
"aTargets": [1, 2]
},
],