我想对网格中的列进行排序,就像行一样。我制作了一个从 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 实现拖放的源代码。您知道在哪里可以找到该代码吗?