Как я могу сделать это из диапазона в ряд в сетке (EXTJS)? - PullRequest
0 голосов
/ 16 февраля 2011

Приведенный ниже код выполняет изменение цвета текста в ячейке. Как его можно применить, чтобы применить цвет фона всей строки ????

function dataindex(val){
        if(val > 0){
            return '<span style="color:green;">' + val + '%</span>';
        }else if(val < 0){
            return '<span style="color:red;">' + val + '%</span>';
        }
        return val;
    }

Ответы [ 2 ]

3 голосов
/ 16 февраля 2011

Вы можете настроить внешний вид строк сетки, переопределив метод getRowClass для GridView (см. Ext JS API ).

Цитируемый пример из документации API - посмотрите, как getRowClassвозвращает другой класс css в зависимости от условия:

viewConfig: {
    forceFit: true,
    showPreview: true, // custom property
    enableRowBody: true, // required to create a second, full-width row to show expanded Record data
    getRowClass: function(record, rowIndex, rp, ds){ // rp = rowParams
        if(this.showPreview){
            rp.body = '<p>'+record.data.excerpt+'</p>';
            return 'x-grid3-row-expanded';
        }
        return 'x-grid3-row-collapsed';
    }
},

После переопределения метода вам просто нужно настроить определения css с любыми цветами фона и т. д., которые вы пожелаете.

0 голосов
/ 16 февраля 2011

Как сказал Томми, getRowClass - это то, что вы хотите использовать. Если вы действительно хотите установить цвет явно, вы можете добавить стили к rowParams.tstyle:

viewConfig: {
    getRowClass: function(record, rowIndex, rowParams, store) {
        rowParams.tstyle += "color: green;";
    }
},

Но обычно лучше просто вернуть имя класса из getRowClass и определить точные цвета в файле CSS.

...