我有一个看起来像这样的网格:
Ext.create('Ext.grid.Grid', {
title: 'myGrid',
store: 'myStore',
columns: [
{ text: 'Name', dataIndex: 'name'},
{ text: 'Running', dataIndex: 'running' },
{
xtype: 'actioncolumn',
text:'play or stop',
items:[
{
iconCls: 'x-fa fa-play-circle',
handler:function(grid, rowIndex, colIndex){ play(); }
}, {
iconCls: 'x-fa fa-stop-circle',
handler:function(grid, rowIndex, colIndex){ stop(); }
}
]
}
]
});
工作正常。第三列中有两个按钮:“播放按钮”和“停止按钮”。现在它们始终可见,但是我希望仅在running==false
时才显示播放按钮,并且仅在running==true
时才显示停止按钮。我该如何实现?
答案 0 :(得分:1)
您可以使用getClass配置,可以为actioncolumn本身或为actioncolumn的子项指定它。 docs
然后您可以执行以下操作:
Ext.create('Ext.grid.Grid', {
title: 'myGrid',
store: 'myStore',
columns: [
{text: 'Name', dataIndex: 'name'},
{text: 'Running', dataIndex: 'running'},
{
xtype: 'actioncolumn',
text: 'play or stop',
items: [
{
getClass: function (value, metadata, record) {
return record.data.running ? '' : 'x-fa fa-play-circle';
},
handler: function (grid, rowIndex, colIndex) {
play();
}
}, {
getClass: function (value, metadata, record) {
return record.data.running ? 'x-fa fa-stop-circle' : '';
},
handler: function (grid, rowIndex, colIndex) {
stop();
}
}
]
}
]
});
答案 1 :(得分:0)
这有效:
Ext.create('Ext.grid.Grid', {
title: 'myGrid',
store: 'myStore',
columns: [
{text: 'Name', dataIndex: 'name'},
{text: 'Running', dataIndex: 'running'},
{
xtype: 'actioncolumn',
text: 'play or stop',
items: [
{
getClass: function (value, metadata, record) {
return record.data.running ? 'x-fa fa-stop-circle' : 'x-fa fa-play-circle';
},
handler: function (grid, rowIndex, colIndex) {
playOrStop();
}
},
]
}
]
});