在ExtJS中,如何将自定义CSS类添加到数据网格行?

Eri*_*lun 7 javascript datagrid extjs extjs4

如何将自定义CSS类添加到数据网格中的行(Ext.grid.Panel)?

我正在使用ExtJS 4.0.

Eri*_*lun 21

这样做的方法是viewConfig在网格上定义:

Ext.create('Ext.grid.Panel', {
    ...

    viewConfig: {
        getRowClass: function(record, index, rowParams, store) {
            return record.get('someattr') === 'somevalue') ? 'someclass' : '';
        }
    },

    ...
});
Run Code Online (Sandbox Code Playgroud)


Lit*_*eeX 8

在您initComponent()Ext.grid.Panel使用getRowClass()中如下:

    initComponent: function(){
        var me = this;
        me.callParent(arguments);
        me.getView().getRowClass = function(record, rowIndex, rowParams, store) {
            if (/* some check here based on the input */) {
                return 'myRowClass';
            }
        };
    }
Run Code Online (Sandbox Code Playgroud)

这基本上覆盖了在渲染时调用getRowClass()的底层函数,Ext.grid.View以应用任何自定义类.然后您的自定义CSS文件将包含以下内容:

.myRowClass .x-grid-cell {background:#FF0000; } 
Run Code Online (Sandbox Code Playgroud)

  • 另外,我发现在网格的`viewConfig`配置中定义`getRowClass`是很好的,没有使用`initComponent`的命令方法:) (4认同)