私はextjs beginnerです。 私はいくつかの条件に基づいて各列を色付けする必要があるグリッドを持っています。 グリッドを作成し、各グリッド要素にレンダラーを追加しました。Extjsグリッドは最初の行のみをレンダリングします
結果は期待どおりに機能しますが、最初の行のみで動作し、すべての行にカラーコードを適用する必要があります。 私が間違っていることについて何か手掛かりがありますか?
私はextjsを使用しています。4.3
以下のコードと結果イメージ。
Ext.define('Example.grid', {
extend: 'Ext.grid.Panel',
alias: 'widget.testGrid',
height: 240,
margin: '10',
store: 'teststore',
requires: [
'tests.contextmenu'
],
columns: [
{ xtype: 'gridcolumn', width:70, dataIndex: 'running', text: 'Running',
renderer: function(value, meta) {
if (value != 0)
meta.tdCls = 'row-background-lightyellow';
return value;}},
{ xtype: 'gridcolumn', width:70, dataIndex: 'completed', text: 'Completed',
renderer: function(value, meta){
if (value!=0)
meta.tdCls = 'row-background-lightgreen';
return value;}},
{ xtype: 'gridcolumn', width:70, dataIndex: 'failed', text: 'Failed',
renderer: function(value, meta){
if (value!=0)
meta.tdCls = 'row-background-lightred';
return value;} },
{ xtype: 'gridcolumn', width:70, dataIndex: 'waiting', text: 'Waiting',
renderer: function(value, meta) {
if (value!=0)
meta.tdCls = 'row-background-lightgrey';
return value;} },
{ xtype: 'gridcolumn', dataIndex: 'jobid', text: 'Job Id' },
{ xtype: 'gridcolumn', dataIndex: 'jobname', text: 'Name', renderer: rendergrey},
{ xtype: 'gridcolumn', dataIndex: 'reason', text: 'Info', flex: 1 }
],
initComponent: function() {
var me = this;
me.callParent(arguments)
refresh: function() {
var me = this;
this.getView().refresh();
}
});
function rendergrey(value, meta) {
if (value!=0)
meta.tdCls += 'row-background-lightgrey';
return value;
};
Extjsを使用してからしばらくお待ちください。私はあなたがviewconfigプロパティとgetRowClass関数を使用する必要があると思います。各列のCSSクラスを定義し、その値に応じてgetRowClass関数にそのCSSを適用します。 – funcoding
domを検査します。クラスが適用されていますか? –