JqGrid getCol()自定义格式时求和

JqGrid getCol()自定义格式时求和,jqgrid,Jqgrid,我有一个JqGrid,其中有一个数据页脚,我想把列的和放在那里。我也希望当网格中的单元格值等于零时,它将是灰色的。为此,我创建了一个自定义格式化程序: currencyFmatter = function (cellValue, options, rowObject) { if (cellValue == 0) return '<span class="cellWithoutBackground" style="color:#E1E1E1;">' +

我有一个JqGrid,其中有一个数据页脚,我想把列的和放在那里。我也希望当网格中的单元格值等于零时,它将是灰色的。为此,我创建了一个自定义格式化程序:

    currencyFmatter = function (cellValue, options, rowObject) {
    if (cellValue == 0)
        return '<span class="cellWithoutBackground" style="color:#E1E1E1;">' +
            $.fn.fmatter('number', cellValue, options, rowObject)
          + '</span>';
    return $.fn.fmatter('number', cellValue, options, rowObject);
};
颜色很好,但数据页脚中的和不再起作用,它总是显示0

loadComplete: function () {

                var janSum = $('#jqgEndYear').jqGrid('getCol', 'January', false, 'sum');
                var febSum = $('#jqgEndYear').jqGrid('getCol', 'February', false, 'sum');
                var marSum = $('#jqgEndYear').jqGrid('getCol', 'March', false, 'sum');
                var aprSum = $('#jqgEndYear').jqGrid('getCol', 'April', false, 'sum');
                var maySum = $('#jqgEndYear').jqGrid('getCol', 'May', false, 'sum');
                var junSum = $('#jqgEndYear').jqGrid('getCol', 'June', false, 'sum');
                var julSum = $('#jqgEndYear').jqGrid('getCol', 'July', false, 'sum');
                var augSum = $('#jqgEndYear').jqGrid('getCol', 'August', false, 'sum');
                var sepSum = $('#jqgEndYear').jqGrid('getCol', 'September', false, 'sum');
                var octSum = $('#jqgEndYear').jqGrid('getCol', 'October', false, 'sum');
                var novSum = $('#jqgEndYear').jqGrid('getCol', 'November', false, 'sum');
                var decSum = $('#jqgEndYear').jqGrid('getCol', 'December', false, 'sum');

                $('#jqgEndYear').jqGrid('footerData', 'set', { Code: 'Total:',
                    January: janSum,
                    February: febSum,
                    March: marSum,
                    April: aprSum,
                    May: maySum,
                    June: junSum,
                    July: julSum,
                    August: augSum,
                    September: sepSum,
                    October: octSum,
                    November: novSum,
                    December: decSum
                });
            }
        });
如果你知道为什么这个总数不算,我很乐意读一下。
提前感谢您的帮助

您必须另外定义(不可格式化)以使该方法与具有自定义格式化程序的列一起工作。请参阅of
getCol
方法。

@LotuX:
unformat
函数应返回
getCol
可在
sum
操作中使用的值。在您的情况下,我建议您使用
cellattr
而不是自定义格式设置程序。@LotuX:代码可能类似于以下
cellattr:function(rowId,cellValue){return cellValue==0?'class=“cellWithoutBackground”style=“color:#e1e1e1e1e1e1;”:':''}
。您可以使用预定义的格式化程序
'number'
。很棒的Oleg,它太完美了,我不知道您可以使用cellatr。我的工作很有魅力,最好的是我可以使用更为公平的货币better@LotuX:不客气!如果您只想设置一些自定义属性,如
样式
标题
单击
等,则使用
单元格标签是最好的,这取决于单元格或行中其他单元格的内容。因为它不改变单元格的内容,所以您可以使用所需的任何格式化程序。该功能是的扩展。如果我想在页脚行中也使用这种样式,有没有简单的方法?
loadComplete: function () {

                var janSum = $('#jqgEndYear').jqGrid('getCol', 'January', false, 'sum');
                var febSum = $('#jqgEndYear').jqGrid('getCol', 'February', false, 'sum');
                var marSum = $('#jqgEndYear').jqGrid('getCol', 'March', false, 'sum');
                var aprSum = $('#jqgEndYear').jqGrid('getCol', 'April', false, 'sum');
                var maySum = $('#jqgEndYear').jqGrid('getCol', 'May', false, 'sum');
                var junSum = $('#jqgEndYear').jqGrid('getCol', 'June', false, 'sum');
                var julSum = $('#jqgEndYear').jqGrid('getCol', 'July', false, 'sum');
                var augSum = $('#jqgEndYear').jqGrid('getCol', 'August', false, 'sum');
                var sepSum = $('#jqgEndYear').jqGrid('getCol', 'September', false, 'sum');
                var octSum = $('#jqgEndYear').jqGrid('getCol', 'October', false, 'sum');
                var novSum = $('#jqgEndYear').jqGrid('getCol', 'November', false, 'sum');
                var decSum = $('#jqgEndYear').jqGrid('getCol', 'December', false, 'sum');

                $('#jqgEndYear').jqGrid('footerData', 'set', { Code: 'Total:',
                    January: janSum,
                    February: febSum,
                    March: marSum,
                    April: aprSum,
                    May: maySum,
                    June: junSum,
                    July: julSum,
                    August: augSum,
                    September: sepSum,
                    October: octSum,
                    November: novSum,
                    December: decSum
                });
            }
        });