У меня есть ExtJS 4 GridPanel, как показано ниже:динамически скрыть ExtJS 4 столбца сетки при группировке по столбцу
var grid = Ext.create('Ext.grid.Panel', {
store: store,
title: 'grid',
columns: [
{text: 'column 1', sortable: true, width: 70, dataIndex: 'column1'},
{text: 'column 2', sortable: true, width: 70, dataIndex: 'column2'},
{text: 'column 3', sortable: true, width: 70, dataIndex: 'column3'},
{text: 'column 4', sortable: true, width: 70, dataIndex: 'column4'},
],
renderTo: Ext.get('gridDiv'),
width: 800,
height: 600,
listeners: {
},
features: [{
ftype: 'grouping'
}]
});
Я, необходимые для динамически скрыть столбец, сетка группируется по всякий раз, когда сетка группируется , и показать все остальные столбцы - просмотр любых ранее скрытых столбцов.
Я понимаю, что это будет обработчик прослушивателя, который улавливает смену группировки, которая затем запускает column.hide()
.
Некоторые псевдо-код:
...
listeners: {
groupchange: function(store, groupers, eOpts) {
groupers.forEach(function(group) {
grid.columns.forEach(function(column) {
if(column==group)
column.hide();
if(column==group)
column.show();
}
}
}
},
...
Я не уверен, что из документации API groupchange
, является ли событие, которое может быть перехвачено сеткой, а не в магазине, как доступа к содержимому groupers
, и какие компараторы доступны, чтобы определить, находится ли столбец в groupers
.
Как должно быть структурировано это событие слушателя? Каковы правильные события/методы/свойства для использования?
У меня нет времени, чтобы проверить ваш ответ, но мне нравится, что ваше «возвращение», отвечая на свой вопрос –