Extjs 4 gridpanel动态颜色编码Row / Cell

时间:2013-06-25 03:54:24

标签: dynamic extjs4 color-coding

我想动态更改行的背景颜色,有时还会更改EXTJS4网格面板的单元格。有办法吗?

我必须查询我的php并检索数据集,然后我将确定每个数据集的颜色。这可能吗?就像我说我希望它会充满活力。

谢谢。

1 个答案:

答案 0 :(得分:1)

这里有什么动态?

  1. 如果您想在加载时更改颜色,请在列映射上使用renderer

    <style type="text/css">
     .red{background-color: red;}
    </style>
    
    <script type="text/javascript">
    Ext.onReady(function(){
    Ext.QuickTips.init();
    
    var store = new Ext.data.SimpleStore({
        fields: ['name', 'value'],
        data: [['A', 1], ['B', 2]]
    });
    var renderer = function(value, metadata, record, rowIndex, colIndex, store) {
        if (value == colIndex) {
            metadata.css = 'red';
        }
        return colIndex;
    }
    var cm = new Ext.grid.ColumnModel([
        {header: 'Name', dataIndex: 'name'},
        {header: '1', dataIndex: 'value', renderer: renderer},
        {header: '2', dataIndex: 'value', renderer: renderer},
        {header: '3', dataIndex: 'value', renderer: renderer},
        {header: '4', dataIndex: 'value', renderer: renderer},
        {header: '5', dataIndex: 'value', renderer: renderer}
    ]);
    var grid = new Ext.grid.GridPanel({
        store: store,
        cm: cm,
        listeners: {
            cellclick: function(grid, rowIndex, colIndex) {
                if (colIndex > 0) {
                    var rec = grid.store.getAt(rowIndex);
                    rec.set('value', colIndex);
                }
            }
        }
    });
    grid.render(document.body);
    });
    </script>
    
  2. 如果您想根据条件视图类的addRowCls使用任何条件更改背景颜色。

    listeners : {
    select : function(cellModel, record, rowIndex) {
         var myGrid = this.items.get('gridItemId');                          
         myGrid.getView().addRowCls(rowIndex, 'row-style');
    },
    
  3. 申请root config本身,请参阅以下链接。

  4. http://www.sencha.com/forum/showthread.php?120001-Help-with-dynamic-row-color-in-grid

    由于