jQuery数据表解析浮点函数全球化
我使用jquerydatatable以十进制值显示百分比,如jQuery数据表解析浮点函数全球化,jquery,datatables,columnsorting,Jquery,Datatables,Columnsorting,我使用jquerydatatable以十进制值显示百分比,如28.33 91.58 0.65 我使用这些值的parseFloat对它们进行排序。问题出现在国际化过程中,在法语、德语中,这些值表示为 28,33 91,58 0.65 parseFloat函数忽略,只显示数字部分。所以28,33显示为28和 91,58显示为91和 等等。。 我需要保留逗号并对表进行排序。如果我删除parsefloat,它不是排序。如果我替换,则替换为。它可以工作,但我需要一个逗号。如果有人建议我解决这个问题,我会很
$.ajax({
dataType : "json",
url : myURL,
data : aoData,
cache : false,
success : function(json) {
var settings = {
tableSelector: getTableSelector(tab),
tableContainer : tab,
aaData : json.aaData,
iDisplayLength: 10,
bProcessing: false,
oLanguage : {
sEmptyTable: json.emptyTableMessage,
oPaginate: DataTablesUtils.getPaginationControls()
},
fnPreDrawCallback: function() {
resetArrowButtons(tab);
},
fnDrawCallback: function(oSettings) {
attachTableBodyEventListeners(tab);
DataTablesUtils.togglePaginationControls(oSettings, json.aaData.length);
},
fnInitComplete: function (oSettings) {
hideLoader(tab);
showTable(tableSelector);
showFilterBtn(tab);
},
aoColumns: columnRender(tab),
bSort : true,
aaSorting: []
};
var pagination = new DatatablesPagination(settings);
pagination.display();
},
error : function() {
showErrorMessageDetail(tab);
}
});
function columnRender(tab) {
return [{
// Column1
"sWidth" : "50px",
"bSortable" : true,
"fnRender": function(oObj) {
return getColumnIcon(oObj.aData[0]);
}
}, {
// Percentage %
"sWidth" : "90px",
"bSortable" : true,
"sType": "numeric",
"fnRender" : function(oObj) {
return showValueOrDash(oObj.aData[1]);
}
}];
}
function showValueOrDash(value) {
return value ? parseFloat(value) : " - ";
}
您是否必须使用传统的渲染功能?DataTables 1.10及更高版本提供了一些可用于轻松解决此问题的工具。查看用于此的文件,我不确定它是否支持任何不同的签名 在更高版本中,可以定义渲染函数以使用国际版本文本进行显示,但使用可排序parseFloat版本进行排序 像这样的
//columns object
[{
"sWidth" : "90px",
"bSortable" : true,
"sType": "numeric",
"render": function (data, type, row) {return renderData(data, type, row); }
}]
//render function for the above column
function renderData(data, type, row){
if(type = "display"){
//return the unmodified data, or - if it is falsey
return data ? data : "-";
}
else{
//replace commas with periods, then parseFloat to sort the data
return parseFloat(data.replace(",", "."));
}
}
让我们看看你想要什么tried@muecas我真的不知道该怎么办。jQuery需要一个数字来排序,但我只能给出一个中间带逗号的数字(实际上不是一个数字)。为什么不给一个带点的数字呢?@mueca因为我们有一个大数据表,所有数据都是英文的。该网站的德国用户希望看到德国格式的数字(90,82而不是90.82)。你能发布你的DataTables js初始化吗?