jqGrid treegridを使用していて、セル内のデータの値(整数)に基づいて列のバックカラーをフォーマットしたい:
カラムを設定する例を次に示します。
{
name: 'missingBooks',
cellattr: function (rowId, tv, rawObject, cm, rdata) {
//conditional formatting
if (rawObject[11] > 0) {
return 'style="background-color:#FFCCCC"';
}
},
width: 75,
unformat: originalValueUnFormatter,
formatter: missingBooksFormatter,
align: "right",
index: 'missingBooks',
hidden: false,
sorttype: 'int',
sortable: true
},
これは正常に機能しますが、私の問題はcellAttrコールバックにあります。この条件付き書式行では、次のようになります。
if (rawObject[11] > 0) {
return 'style="background-color:#FFCCCC"';
}
このロジックを再利用したいので、rawObjectにインデックスを付けて、使用している列を把握する必要はありません。私はこのようなことをする方法があることを望んでいました:
if (rawObject.missingBooks > 0) {
return 'style="background-color:#FFCCCC"';
}
しかし、これは未定義のようです。このように、新しい列を追加した場合、この条件付き書式コードのすべてのインデックスを再作成する必要はありません。