Как изменить цвет строки в сетке данных в зависимости от серьезности? - PullRequest
10 голосов
/ 15 февраля 2011

Как изменить цвет строки в сетке данных в зависимости от серьезности?Я новичок в этой теме EXTJS.Раньше я читал, чтобы читать, хранить, чтобы хранить, и писатель, чтобы записать данные.После извлечения всех данных в сетку, как я могу изменить цвет строки в сетке данных на основе условия серьезности?Можете ли вы объяснить мне немного с работающим кодом?

Ответы [ 3 ]

23 голосов
/ 15 февраля 2011

Вы можете использовать класс GridView ( Ext.grid.GridView ) для управления пользовательским интерфейсом сетки. Вы также можете viewConfig свойство GridPanel . Вот пример:

viewConfig: {
        //Return CSS class to apply to rows depending upon data values
        getRowClass: function(record, index) {
            var c = record.get('change');
            if (c < 0) {
                return 'price-fall';
            } else if (c > 0) {
                return 'price-rise';
            }
        }
    }

ps: Пример взят из самой документации ExtJS API

Снижение цен и повышение цен - это CSS, цвета фона которых установлены соответственно. например:

.price-fall { 
 background-color: #color;
}

.price-rise {
 background-color: #color;
}
4 голосов
/ 15 февраля 2011

Вы можете сделать это, используя getRowClass метод GridView (см. Ext JS API ).

Цитированный пример из документации API:

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';
    }
},
0 голосов
/ 15 февраля 2011

Вы можете использовать визуализатор для вашего столбца из вашей модели столбца, а затем назначить класс css следующим образом:

Итак, функция customRenderer:

`

function customRenderer(value, metaData, record, rowIndex, colIndex, store) {
    var opValue = value;
    if (value === "Rejected") {
        metaData.css = 'redUnderlinedText';
    } else if (value === "Completed") {
        metaData.css = 'greenUnderlinedText';
    } else if (value === "Started") {
        metaData.css = 'blueUnderlinedText';
    }
    return opValue;

} `

А потом ваша колонка:

        {
            header: 'Your Column Header',
            dataIndex: 'your_data_index',
            renderer: customRenderer
        }

Тогда ваш CSS может быть таким:

.redUnderlinedText {
    background-color: blue,
    color: red;
    text-decoration: underline;
    cursor: pointer;
}
...