Кажется, это должно быть так просто, но я просто не могу этого сделать (мне даже не нужно, чтобы это делалось динамически).Например, предположим, что у меня есть простая сетка с двумя столбцами, например:
columns : [
{header: 'USER', dataIndex: 'firstName', width:70, cls: 'red'},
{header: 'CATEGORY', dataIndex: 'category', width:100}
]
Атрибут cls: 'red'
влияет только на заголовок, а не на фактический столбец.В другом месте я видел, что я должен использовать пользовательский рендерер (возможно), но если я попробую что-то вроде:
{header: 'USER', dataIndex: 'firstName', width:70,
renderer: function(value) {
this.addCls('red');
return value;
}
}
, я все равно получаю скучный белый фон.Я также видел людей, использующих определение функции рендерера, например: function(value, metadata, record, rowIndex, colIndex, store)
, но когда я использовал alert()
для проверки входных параметров, я получаю undefined
для всего, кроме value
, что заставляет меня поверить, что, возможно, это былодействительно только для версий до ExtJs 4.
Я также пытался вернуть что-то вроде '<span class="red">' + value + '</span>'
в моей функции рендерера, но это только выделило текст, а не изменило весь фон столбца.
Я не хочу переопределять классы Ext css по умолчанию, потому что я хочу применить цвета фона к определенной сетке в приложении, а не ко всем.
Кроме того, все столбцы рассматриваемой сеткимогут иметь разные цвета (обратите внимание, что в примере я только добавил класс в первый столбец).
Предположим, что red
определено как .red {background:#FF0000;}
в моем файле CSS.