나는 초급자입니다. 일부 조건에 따라 각 열을 색칠해야하는 표가 있습니다. 그리드를 만들고 각 그리드 요소에 렌더러를 추가했습니다.Extjs Grid 첫 행만 렌더링
결과는 예상대로 작동하지만 첫 번째 행에만 적용되며 모든 행에 색상 코드를 적용해야합니다. 내가 뭘 잘못하고 있는지에 대한 단서가 있습니까?
나는 코드와 결과 이미지 아래에 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을 검사하십시오. 클래스가 적용됩니까? –