JqGrid getCol () сумма, когда пользовательский формат - PullRequest
1 голос
/ 03 февраля 2012

У меня есть 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);
};

Который я так называю

{ name: 'Name', index: 'Name', align: 'center', width: '200px' },
                    { name: 'January', index: 'Months["January"].Amount', align: 'center', 
                      formatter:currencyFmatter}

Окраска хорошая, но сумма в нижнем колонтитуле данных больше не работает, всегда отображается 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
                });
            }
        });

Если вы не знаете, почему сумма не будет рассчитана, я с удовольствием ее прочту. Заранее спасибо за помощь

1 Ответ

2 голосов
/ 03 февраля 2012

Вы должны определить unformat (unformatter) дополнительно к formatter , чтобы метод getCol работал со столбцами, имеющими пользовательский форматтер. См. строку из исходный код из getCol метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...