Extjs:如何为特定单元格添加/删除类?

时间:2013-03-27 20:53:23

标签: extjs extjs4

免责声明:我对Extjs来说是全新的。

我在ComboBox上有一个select监听器。选择后,我可以设置不同的单元格值:

'select': function (combo, records, Opts) {
    e.record.set('value', 'hello world'); //set text for the "value" cell
    ....

挑战在于我可能需要添加或删除该单元格的类。我无法在Sencha Docs中找到如何选择或操作单元格而不是设置值。一种可能性是在列上使用自定义渲染器,但这并不按预期工作(除了文本/值设置正确)。意见取自:http://snipplr.com/view/40942/

        ,renderer: function (value, meta, record, rowIndex, colIndex, store) {
            meta.css += ' rw-no-edit';
            return 'hello again';

为记录中的特定列添加和删除类的最佳方法是什么?

2 个答案:

答案 0 :(得分:5)

到目前为止,我见过的最好的网格样式指南来自裙边:

http://skirtlesden.com/articles/styling-extjs-grid-cells

我认为自定义渲染器是您的最佳选择。小心返回实际值而不是'hello world'字符串。

答案 1 :(得分:0)

工作解决方案:

        ,renderer: function (value, meta, record, rowIndex, colIndex, store) {
            var numberOfEditFields = K.kreports.whereOperators.bh(record.get('operator'), record.get('type'));
            if (!K.kreports.EditView) {
                if (record.get('usereditable') == 'yo1' || record.get('usereditable') == 'yo2') numberOfEditFields = 0;
            }

            //de-emphasize cells that are not needed
            var base_css = 'x-grid-cell x-grid-cell-value';
            meta.tdCls = base_css;
            if(numberOfEditFields === 0) {
                meta.tdCls = base_css+' rw-no-edit'; 
            }

            return value;
        }