行と同じように、グリッド内の列を並べ替えたい。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 がそのドラッグ アンド ドロップを実装したソース コードが見つかりません。そのコードを探す場所を知っていますか?