【问题标题】:actioncolumn of extjs4.1.0extjs4.1.0的actioncolumn
【发布时间】:2012-08-10 21:09:00
【问题描述】:

我正在使用 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,并且我只有该行的编辑和删除图标。

网格渲染时图标完美呈现。但是,当我点击激活处理程序时,我无法移除激活图标并显示编辑和删除图标。

任何人都可以告诉我如何做到这一点...

【问题讨论】:

  • 此代码在 Ext4.1.1 中有效,但在 Ext4.1.0 中无效

标签: extjs extjs4.1


【解决方案1】:

设置单元格值后可以使用grid.refresh()

handler: function(grid, rowIndex, colIndex) {
    var rec = store.getAt(rowIndex);
    var change = rec.get('change');
    rec.set('change', -change);
    grid.refresh();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多