How to format currency in Datatables?

anta40 picture anta40 · Dec 13, 2017 · Viewed 10.3k times · Source

This is a table which display transactions, implementes using DataTables. enter image description here

$( document ).ready(function() {    
    var table = $('#tbl_transaksi').DataTable( {
        "ajax": "data_transaksi.php",
        "bPaginate":true,
        "bProcessing": true,
        "pageLength": 10,
        "columns": [
            { mData: 'username' } ,
            { mData: 'fullname' },
            { mData: 'the_date' },
            { mData: 'amount',  render: function ( data, type, row ) {
                return "Rp " + data;
                } 
            }
        ],
        "dom": 'Bfrtip',
        "buttons": [
            'copy', 'csv', 'excel', 'pdf', 'print'
        ]
    }); 

});

It works. Now I want to add an enhancement: format the amount ("jumlah") using Indonesian format, so for example 1000000 will be displayed as "Rp 1.000.000";

A Google search pointed me to renderers. I added the render part into my code, and well it doesn't change the formatting. What is wrong here?

Answer

programtreasures picture programtreasures · Dec 13, 2017

use $.fn.dataTable.render.number function,

$( document ).ready(function() {    
    var table = $('#tbl_transaksi').DataTable( {
        "ajax": "data_transaksi.php",
        "bPaginate":true,
        "bProcessing": true,
        "pageLength": 10,
        "columns": [
            { mData: 'username' } ,
            { mData: 'fullname' },
            { mData: 'the_date' },
            { mData: 'amount',  render: $.fn.dataTable.render.number( ',', '.', 3, 'Rp' )
            }
        ],
        "dom": 'Bfrtip',
        "buttons": [
            'copy', 'csv', 'excel', 'pdf', 'print'
        ]
    }); 

});