web-dev-qa-db-ja.com

Jqueryデータテーブルのフォーマット番号

最新のDatatablesプラグイン1.10バージョンを使用しています。

3つの列(0、1、2)があります。列1と2には、次のようにフォーマットする必要のある数値が含まれています。

1000 -> 1.000
10000 -> 10.000

ドキュメントを検索したところ、次の関連機能が見つかりました。

https://datatables.net/reference/option/formatNumber

https://datatables.net/reference/option/language.thousands

フォーマットが必要な列は自動的に検出されますか?

上記の関数の正しい使用法は何ですか?

7
gosom

私のコメントで述べたように、あなたはこのようなことをしなければなりません

Datatable初期化の内部

 "aoColumnDefs": [ {
      "aTargets": [ 2 ],
    "mRender": function (data, type, full) {
     var formmatedvalue=data.replace(//regex expression)
      return formmatedvalue;
    }
}]
0
super cool

実際には、これを行うさらに簡単な方法があります。これは、datatablesのドキュメントにもあります。

        "columns": [
            { "data": "ReceiptQuantity", render: $.fn.dataTable.render.number(',', '.', 2, '') },
            { "data": "ReceiptPrice", render: $.fn.dataTable.render.number(',', '.', 2, '') },
            { "data": "LineTotal", render: $.fn.dataTable.render.number(',', '.', 2, '') }
        ],
19
JustLearning
$('#table-dg').dataTable({
    "columns": columnNames,
    "columnDefs": [
        {
            "render": function (data, type, row) {
                 return commaSeparateNumber(data);
            },
            "targets": [1,2]
        },
    ]
});

function commaSeparateNumber(val) {
    while (/(\d+)(\d{3})/.test(val.toString())) {
        val = val.toString().replace(/(\d+)(\d{3})/, '$1' + ',' + '$2');
    }
    return val;
}
3
RAS