0
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),我已經有了這個功能。創建dataTable時設置貨幣格式
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());
});
適用於所有網頁上的所有TD!
1)爲什麼? 2)如果我要調用currencyFormatIT()函數類似的回調函數(也許在我創建數據表.dataTable({..
代碼我該怎麼辦?
好的,但是我應該怎麼傳遞給currencyFormatIT()函數呢?我該如何告訴他:「爲每個類貨幣調用currencyFormatIT()」? – Dave
Works但是現在每次都調用currencyFormatIT()我改變了頁面或者對列進行了排序。這是不對的。有任何回調函數只被調用一次? – Dave
@DavideFruci是不是你想要的?當您更改頁面時,您需要爲該頁面上的新數據設置貨幣格式。但是如果你只想調用一次,你可以使用fnInitCallback函數。 –