使用 DataTables 格式化数字会中断排序
Formatting numbers using DataTables breaks sorting
我有一个要排序的表格,问题是当我将区域设置添加到数字时,它会中断排序,它会像字符串一样排序。
我按照 this 的回答进行了修改而不必使用正则表达式,但随后它开始排序,因为它是字符串而不是数字,例如
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");
}
将"aoColumnDefs"
部分改成这个
"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]
},
],
我有一个要排序的表格,问题是当我将区域设置添加到数字时,它会中断排序,它会像字符串一样排序。
我按照 this 的回答进行了修改而不必使用正则表达式,但随后它开始排序,因为它是字符串而不是数字,例如
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");
}
将"aoColumnDefs"
部分改成这个
"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]
},
],