2012-02-03 23 views
1

私は列の合計を入れるデータフッターを持つJqGridを持っています。私はまた、グリッドでセルの値がゼロに等しいとき、それは灰色の色になることを望んでいます。JqGrid getCol()カスタム書式の場合の合計

私はそれが常に0を言う着色が良いのですが、データのフッターに合計はもう動作しません

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

このように呼んで

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); 
}; 

:そうするために、私は、カスタムフォーマッタをcreattedました。

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 
       }); 
      } 
     }); 

合計が計算されない理由が分かっていれば、私はそれを読むことを喜ばしく思います。あなたの助け

答えて

2

を事前に おかげでカスタムフォーマッタを持つ列を扱う方法getColを作るためにさらにformatterunformat(アンフォーマッタ)を定義する必要があります。 the linethe source codegetColの方法を参照してください。

+0

ありがとうオレグ、私はアンフォーマットで何を入れることができないのか分かりません。 – LotuX

+0

@LotuX: 'unformat'関数は、' getCol'が 'sum'操作で使用できる値を返さなければなりません。あなたの場合は、カスタムフォーマッタの代わりに 'cellattr'を使うことをお勧めします。 – Oleg

+0

@LotuX:コードは次のようなものです。cellattr:function(rowId、cellValue){return cellValue == 0? 'class = "cellWithoutBackground" style = "color:#E1E1E1;"': ''; } '。定義済みのフォーマッタ ''number' 'を使うことができます。 – Oleg

関連する問題