defaultContent formatting

defaultContent formatting

alord84alord84 Posts: 24Questions: 15Answers: 1

Is there a way to format this to make it Bold and currency where Total is a passed var?

{ data: null, defaultContent: + Total, orderable: false},

I can format it with php but I want to do it above in .js->
{ data: null, defaultContent: '<b><?php echo '$'.number_format($Total,2); ?><b>', orderable: false },

This question has an accepted answers - jump to answer

Answers

  • allanallan Posts: 63,523Questions: 1Answers: 10,473 Site admin
    Answer ✓

    Easiest option might be to use a class name to the column (columns.className) and use a little CSS to make it bold (font-weight). Then you can use the built in number formatter that is used is many of the Editor examples. Otherwise you will need to use columns.render as a function to format the number and add the HTML formatted needed.

    Allan

  • alord84alord84 Posts: 24Questions: 15Answers: 1
    edited August 2015

    className worked fine. For the formatting I kept receiving Nan so I used another script to format the variable-Currency. Currency is not in my database.

    "columnDefs": [
                { "className": "my_class", "targets": [ 8 ] },
                ],
            columns: [
                { data: null, defaultContent: 'Amount', orderable: false },
                { data: "field1", render: $.fn.dataTable.render.number( ',', '.', 2, '$' ) },
                { data: "field2", render: $.fn.dataTable.render.number( ',', '.', 2, '$' ) },
                { data: "field3" , render: $.fn.dataTable.render.number( ',', '.', 2, '$' )},
                { data: "field4" , render: $.fn.dataTable.render.number( ',', '.', 2, '$' )},
                { data: "field5", render: $.fn.dataTable.render.number( ',', '.', 2, '$' ) },
                { data: "field6", render: $.fn.dataTable.render.number( ',', '.', 2, '$' ) },
                { data: "field7", render: $.fn.dataTable.render.number( ',', '.', 2, '$' ) },
                { data: null, defaultContent: '$'+number_format(Currency,2), orderable: false},
    
    function number_format(number, decimals, dec_point, thousands_sep) {
      //  discuss at: http://phpjs.org/functions/number_format/
      // original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
      // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
      // improved by: davook
      // improved by: Brett Zamir (http://brett-zamir.me)
      // improved by: Brett Zamir (http://brett-zamir.me)
      // improved by: Theriault
      // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
      // bugfixed by: Michael White (http://getsprink.com)
      // bugfixed by: Benjamin Lupton
      // bugfixed by: Allan Jensen (http://www.winternet.no)
      // bugfixed by: Howard Yeend
      // bugfixed by: Diogo Resende
      // bugfixed by: Rival
      // bugfixed by: Brett Zamir (http://brett-zamir.me)
      //  revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
      //  revised by: Luke Smith (http://lucassmith.name)
      //    input by: Kheang Hok Chin (http://www.distantia.ca/)
      //    input by: Jay Klehr
      //    input by: Amir Habibi (http://www.residence-mixte.com/)
      //    input by: Amirouche
      //   example 1: number_format(1234.56);
      //   returns 1: '1,235'
      //   example 2: number_format(1234.56, 2, ',', ' ');
      //   returns 2: '1 234,56'
      //   example 3: number_format(1234.5678, 2, '.', '');
      //   returns 3: '1234.57'
      //   example 4: number_format(67, 2, ',', '.');
      //   returns 4: '67,00'
      //   example 5: number_format(1000);
      //   returns 5: '1,000'
      //   example 6: number_format(67.311, 2);
      //   returns 6: '67.31'
      //   example 7: number_format(1000.55, 1);
      //   returns 7: '1,000.6'
      //   example 8: number_format(67000, 5, ',', '.');
      //   returns 8: '67.000,00000'
      //   example 9: number_format(0.9, 0);
      //   returns 9: '1'
      //  example 10: number_format('1.20', 2);
      //  returns 10: '1.20'
      //  example 11: number_format('1.20', 4);
      //  returns 11: '1.2000'
      //  example 12: number_format('1.2000', 3);
      //  returns 12: '1.200'
      //  example 13: number_format('1 000,50', 2, '.', ' ');
      //  returns 13: '100 050.00'
      //  example 14: number_format(1e-8, 8, '.', '');
      //  returns 14: '0.00000001'
    
      number = (number + '')
        .replace(/[^0-9+\-Ee.]/g, '');
      var n = !isFinite(+number) ? 0 : +number,
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function(n, prec) {
          var k = Math.pow(10, prec);
          return '' + (Math.round(n * k) / k)
            .toFixed(prec);
        };
      // Fix for IE parseFloat(0.55).toFixed(0) = 0;
      s = (prec ? toFixedFix(n, prec) : '' + Math.round(n))
        .split('.');
      if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
      }
      if ((s[1] || '')
        .length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1)
          .join('0');
      }
      return s.join(dec);
    }
    
This discussion has been closed.