2

我想更改网格摘要行的字体和背景颜色。我尝试将摘要行设置为:

var summaryRow = grid.view.el.down('tr.x-grid-row-summary');

基于 summaryRow 我可以设置样式。但是我将 summaryRow 的值设为null。有人可以指出我正确的方向还是我遗漏了什么?任何帮助表示赞赏。谢谢

4

4 回答 4

2

记录在案的方法是摘要渲染器,摘要渲染器的最佳方法是 tdCls 或 tdAttr 属性:

                    text: 'Allocation %',
                    xtype: 'numbercolumn',
                    format: '00.00%',
                    dataIndex: 'allocationAmount',
                    summaryType: 'sum',
                    summaryRenderer: function (value, summaryData, dataIndex, rowIndex, colIndex, store, view) {

                        if (value > 100)
                        {
                            summaryData.tdCls = 'text-warning-high'
                        } else if (value === 100)
                        {
                            summaryData.tdCls = 'text-successful';
                        } else {
                            summaryData.tdCls = 'text-warning-low';
                        }
                        return Ext.String.format('Total: {0}%', value);
                    },

您还可以像这样使用 tdAttr 版本:

 summaryRenderer: function (value, summaryData, dataIndex, rowIndex, colIndex, store, view) {
                        if (value > 100)
                        {
                            summaryData.tdAttr = 'style="color: #ff0000"';
                        } else if (value === 100)
                        {
                            summaryData.tdAttr = 'style="color: green;"';
                        } else {
                            summaryData.tdAttr = 'style="color: yellow;"';
                        }
                        return Ext.String.format('Total: {0}%', value);
                    },

请注意第一个将使用 css 类,因此您需要在 css 文件中定义适当的 css 类:D

于 2014-05-27T18:08:29.760 回答
1
var summaryRow = grid.getView().getFeature(0); 
styleObj = {
     'background-color': '#c5c5c5'  
 };
summaryRow.view.el.setStyle(styleObj);
于 2013-06-18T13:13:23.987 回答
0

您可以使用网格列中的 summaryRenderer 函数以特定样式显示行。

Ext.create('Ext.grid.Panel', {
    width: 200,
    height: 140,
    renderTo: document.body,
    features: [{
        ftype: 'summary'
    }],
    store: {
        model: 'TestResult',
        data: [{
            student: 'Student 1',
            mark: 84
        },{
            student: 'Student 2',
            mark: 72
        },{
            student: 'Student 3',
            mark: 96
        },{
            student: 'Student 4',
            mark: 68
        }]
    },
    columns: [{
        dataIndex: 'student',
        text: 'Name',
        summaryType: 'count',
        summaryRenderer: function(value, summaryData, dataIndex) {
            return "<font color='red'>"+value+"<font>"; 
        }
    }, {
        dataIndex: 'mark',
        text: 'Mark',
        summaryType: 'average'
    }]
});
于 2013-06-18T12:28:22.033 回答
0

或者我们可以在特定页面中使用 CSS。

<style>
    .x-grid-row-summary .x-grid-cell{
        background-color: #f00 !important;
        font-size: x-large !important;
    }
</style>
于 2015-07-10T09:11:48.030 回答