“Зебра” в таблице ExtJS
Пост из серии “не забыть как делать”.
Мне последнее время приходится достаточно плотно заниматься разработкой на отличном javascript-фреймворке ExtJS и, в частности, много работать с таблицами. Чтобы визуально приукрасить и сделать таблицы более юзабельными я сделал для них т.н. “зебру”, т.е. чересстрочную раскраску. Далее я расскажу как это сделать.
Я не буду приводить полный код таблицы, только тот кусок, который отвечает за “зебру”:
Example.grid = Ext.extend(Ext.grid.GridPanel, {
initComponent:function() {
Ext.apply(this, {
store:....,
columns:...,
viewConfig: {forceFit: true}
});
Example.grid.superclass.initComponent.apply(this, arguments);
},
onRender:function() {
Example.grid.superclass.onRender.apply(this, arguments);
this.getView().getRowClass = function(record,index) {
return (index%2)?'odd':'even';
}
}
});
За создание “зебры”, собственно, отвечает код, расположенный в обработчике события “onRender”. Этот код определяет функцию “getRowClass” объекта GridView нашей таблицы. Определяемая функция должна возвращать название css-класса, которое будет присвоено текущей строке. Эта функция будет вызвана для каждой строки, а на вход ей будет переданы текущая запись и номер строки. Для зебры достаточно знать номер строки и в зависимости от четности этого номера вернуть то или иное название класса. Не забудьте определить эти классы в своем файле стилей, иначе никаких визуальных изменений не увидите.
Популярность: 21%

