var oTable = $('#table').dataTable({
"bJQueryUI": true,
"aaData": jsonList,
"bPaginate": true,
"aoColumns": [
{
"mDataProp": null,
"sClass": "control center",
"sDefaultContent": '<img src="http://i.imgur.com/SD7Dz.png">'
},
{ "mDataProp": "ente" },
{ "mDataProp": "cup" },
{ "mDataProp": "decreto" },
{ "mDataProp": "data" },
{ "mDataProp": "importoImpegno" }, //this is a currency
{ "mDataProp": "finanziato" }, //this is a currency
{ "mDataProp": "importoPagato" }, //this is a currency
{ "mDataProp": "importoInPagamento" } //this is a currency
],
"aoColumnDefs": [
{ "sClass": "currency", "aTargets": [ 5, 6, 7, 8 ]}
],
"oLanguage": {
"sInfo": "_TOTAL_ entries"
},
"aaSorting": [[1, 'asc']]
});
如您所见,我只将.currency
类添加到货币列中。
我需要格式化这种货币(例如3235到3.235,00),我已经有了这个功能。
function currencyFormatIT(num) {
if(num != null && num != "") {
num = parseFloat(num);
num = num
.toFixed(2)
.replace(".", ",")
.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1.");
}
else {
num = "";
}
return num;
}
我尝试使用这种方法:
$("table.myTable > tbody td.currency").each(function(){
$(this).html(currencyFormatIT($(this).html()));
$(this).css("text-align", "right");
});
但是,它仅适用于数据表的首页中显示的行:
从第二页开始不是:
如果我添加此代码:
$(document).on("click", "td.currency", function(){
alert($(this).html());
});
适用于所有页面的所有页面!!
1)为什么?
2)如果我想像回调函数一样调用currencyFormatIT()函数(可能在我创建dataTable .dataTable({..
的代码中我该怎么办?
答案 0 :(得分:0)
您可以使用fnDrawCallback
功能。
var oTable = $('#table').dataTable({
"fnDrawCallback": function (oSettings) {
// Format Currency here
}
}
您可以查看documentation以获取有关可能的回调函数的更多详细信息。