我试图根据值显示一个图标,如果值为 0,则它不会显示任何图标,当为 1 或大于 0 时,它将显示一个带有支持单击事件的处理程序的图标,该事件将显示另一个图标,该图标不是图像,而是在 actioncolumn 中使用 iconCls 参数的样式正方形。所以我现在的主要问题是,如果值为 0,我不能让 actioncolumn 停止显示图标,它只会显示两个正方形,并且完全一团糟。我使用渲染器尝试了不同的方法,但结果仍然很奇怪。所以这是我到目前为止的代码。此练习与此处相同,但有一个额外的决定。 http://www.learnsomethings.com/2011/09/25/the-new-extjs4-xtype-actioncolumn-in-a-nutshell/
`this.columns = [
{header: 'Estado', dataIndex:'icon', renderer:this.renderIcon, width:35},
{
header:'Geo',
width:35,
xtype:'actioncolumn',
items: [{
iconCls:'showGeofence',
tooltip:'Geocerca Visible.',
handler: function(grid, rowIndex, colIndex) {
var rec = grid.getStore().getAt(rowIndex);
grid.getStore().getAt(rowIndex).set('geo', 0);
grid.getSelectionModel().select(rowIndex);
},
getClass: function(value,metadata,record){
var closed = record.get('geo');
if (closed == 0) {
return 'x-hide-display';
} else {
return 'x-grid-center-icon';
}
}
},{
iconCls:'hideGeofence',
tooltip:'Geocerca no Visible.',
handler: function(grid, rowIndex, colIndex) {
var rec = grid.getStore().getAt(rowIndex);
grid.getStore().getAt(rowIndex).set('geo', 1);
grid.getSelectionModel().select(rowIndex);
},
getClass: function(value,metadata,record){
var closed = record.get('geo');
if (closed == 1) {
return 'x-hide-display';
} else {
return 'x-grid-center-icon';
}
}
},{
iconCls:'noGeofence',
tooltip:'Geocerca no Configurada.',
getClass: function(value,metadata,record){
var closed = record.get('geo');
if(closed !== undefined && typeof(closed)==number){
return 'x-hide-display';
}else{
return 'x-grid-center-icon';
}
}
}]
},
{header: 'Descripcion', dataIndex:'descripcion',flex:1},
{header: 'id', dataIndex:'id', hidden:true}
];`