在ExtJS的isCellEditable方法中更改单元格的颜色

时间:2011-03-03 09:34:23

标签: extjs

如果单元格不可编辑,我需要更改单元格的颜色。

我不想为此设置渲染器,因为我在isCellEditable方法中进行了大量验证。

如果我从渲染器中调用isCellEditable方法两次,则会调用此方法,这将是一次性能攻击。

感谢任何帮助。

以下是我的代码:

var grid = new Ext.grid.EditorGridPanel({

    store: store,

    id: 'editorgrid',
    columnLines : true,

    //more properties..

    cm: new Ext.grid.ColumnModel({
        isCellEditable: function(colIndex, rowIndex) {
            if(colIndex == 1) {
                //before returning false I want to change the color of this cell i.e want to make it grayed out    
                return false;
            }
        }
    })
});

1 个答案:

答案 0 :(得分:0)

为什么不想为此使用渲染器?这就是渲染器的用途。您可以轻松地将渲染器添加到列中,并在此渲染器中向单元格的元对象添加属性,以根据可编辑状态更改颜色。

var myCellRenderer = function(value, metaData, record) {

   //metaData.css : String : A CSS class name to add to the cell's TD element.
   //metaData.attr : String : An html attribute definition string to apply to
   //                         the data container element within the table
   //                         cell (e.g. 'style="color:red;"').
   metaData.css = 'name-of-css-class';
   return value;

};

直接来自http://www.sencha.com/learn/Ext_FAQ_Grid

的ExtJS网格常见问题解答