Jqgrid custom format use bracket() if negatif valu

2019-01-20 14:10发布

问题:

Is any solution in Jqgrid if there is negative number then show bracket "()" ?

ex: show (23) if value was -23

thanks

回答1:

You can use custom formatter to do what you want. To format numbers or integers correctly you can call $.fmatter.util.NumberFormat method with $.jgrid.formatter.number or $.jgrid.formatter.integer as the second parameter. The example of the formetter is

formatter: function (cellvalue, options) {
    var value = parseFloat(cellvalue), retult,
        op = $.extend({}, $.jgrid.formatter.number); // or $.jgrid.formatter.integer

    if(!$.fmatter.isUndefined(options.colModel.formatoptions)) {
        op = $.extend({}, op,options.colModel.formatoptions);
    }
    retult = $.fmatter.util.NumberFormat(Math.abs(value), op);
    return (value >= 0 ? retult : '(' + retult + ')') + ' €';
}

you can additionally change color or some other CSS style of displaying of the negative numbers. You can use cellattr property to add class or style attribute in the cells with negative numbers:

cellattr: function (rowid, cellvalue) {
    return parseFloat(cellvalue) >= 0 ? '' : ' style="color:red;font-weight:bold;"'
}

The demo demonstrate the settings. The results are the following