Я хочу сортировать столбцы в моей сетке, точно так же, как строки. Я сделал простую функцию сортировки, которая вызывается из обработчика actioncolumn:Программно изменить порядок столбцов сетки
sortColumns:function(record) { // The record after which's values the columns are ordered
var columns = this.columns;
Ext.Array.sort(columns,function(col1,col2) {
if(record.get(col1.dataIndex) > record.get(col2.dataIndex)) return 1;
if(record.get(col1.dataIndex) < record.get(col2.dataIndex)) return -1;
if(col1.dataIndex > col2.dataIndex) return 1;
if(col1.dataIndex < col2.dataIndex) return 1;
throw new Error("Comparing column with itself shouldn't happen.");
});
this.setColumns(columns);
});
setColumns
линия в настоящее время бросает ошибку
Cannot add destroyed item 'gridcolumn-1595' to Container 'headercontainer-1598'
, который из-за «старые» колонны были уничтожены, а затем применяются «новые» столбцы, которые являются одинаковыми и, таким образом, уничтожены.
Я только хочу изменить порядок, но я не нашел никакой функции для этого. Вы знаете, как это сделать?
Управление перетаскиванием колонн работает, поэтому это выполнимо; но я не нашел исходный код, где sencha действительно реализовал эту перетаскивание. Вы знаете, где искать этот код?
Взгляните на эту статью: https: //www.sencha.com/forum/showthread.php?133694-programatically-reorder-columns-in-gridpanel, grid.columnManager.columns могут вам помочь. –