それはとてもシンプルなはずですが、私はこれを行うことはできません(私はそれを動的に行う必要はありません)。例えば、私はそうのような単純な2列のグリッドを設定しているとしますグリッドの列に背景色(またはカスタムCSSクラス)を適用する方法 - ExtJs 4?
columns : [
{header: 'USER', dataIndex: 'firstName', width:70, cls: 'red'},
{header: 'CATEGORY', dataIndex: 'category', width:100}
]
cls: 'red'
属性はヘッダのみではなく、実際の列に影響を与えます。私は、カスタムレンダラ(多分)を使用する必要があることを他の場所で見てきましたが、私はのような何かしようとした場合:
{header: 'USER', dataIndex: 'firstName', width:70,
renderer: function(value) {
this.addCls('red');
return value;
}
}
を私はまだ退屈な白い背景を取得します。私はまた、function(value, metadata, record, rowIndex, colIndex, store)
のようなレンダラー関数定義を使用している人も見たことがありますが、alert()
を使って入力パラメータをテストしたところvalue
以外はすべてundefined
となり、ExtJs 4以前のバージョンでのみ有効だったと思います。
レンダラー機能で'<span class="red">' + value + '</span>'
のようなものを返してみましたが、これは列の背景全体を変更するのではなく、テキストを強調表示しました。
デフォルトのExt CSSクラスをオーバーライドする必要はありません。アプリの特定のグリッドにバックグラウンドカラーを適用したいので、すべてを対象にしないためです。
さらに、問題のグリッドのすべての列が異なる色を持つことがあります(例では、クラスを最初の列に追加しただけです)。
red
は、私のCSSファイルで.red {background:#FF0000;}
と定義されているとします。
これはExtJS 4でうまくいきます。 – cjauvin