我正在使用Extjs4.1.0。
我有一个带有动作列的网格。我必须根据某些条件更改此动作列中的图标。
我使用三个getClass方法来渲染此列中的图标。
xtype: 'actioncolumn',
items: [
{
getClass: function (v, meta, rec)
{
if (rec.get('fieldDeleteFlag') == false) return 'x-grid-del-css';
else return '';
},
handler: function (grid, rowIndex, colIndex)
{
alert('delete');
}
},{
getClass: function (v, meta, rec)
{
if (rec.get('fieldDeleteFlag') == false) return 'x-grid-edit-css';
else return '';
handler: function (grid, rowIndex, colIndex)
{
alert('edit');
}
},{
getClass: function (v, meta, rec)
{
if (rec.get('fieldDeleteFlag') == true) return 'x-grid-activate-css';
else return '';
}
handler: function (grid, rowIndex, colIndex)
{
alert('Activate');
}
}],
grid.getStore().getAt(rowIndex).set('change',false);
因此,如果标志为false,我需要有两个图标作为编辑和删除。如果该标志为真,我只激活图标。
当我点击激活图标处理程序时,我会将标志列设置为false,并且我只有该行的编辑和删除图标。
网格渲染时图标完美无缺。但是,当我点击激活处理程序时,我无法删除激活图标并显示编辑和删除图标。
任何人都可以告诉我该怎么做......
答案 0 :(得分:0)
设置单元格值后,您可以使用grid.refresh()
。
handler: function(grid, rowIndex, colIndex) {
var rec = store.getAt(rowIndex);
var change = rec.get('change');
rec.set('change', -change);
grid.refresh();
}