グリッドのマルチソートを実装しています。このためにイベントを使用したいのですが、sortchange
イベントをキャンセルして、独自の並べ替え構成でストアを呼び出すことができるようにする必要があります。
これは機能しませんでした:
oGrid.on('sortchange', function(oColumnContainer, oColumn, strSortOrder){
//...
return false;
})
自分で解決策を見つけました。
マルチソートが必要な場合はsortable: false
、作成時にグリッド上のすべての列をに設定します(これをオンザフライで実行することはできないようです)
次にon('headerclick
、グリッドを作成した直後に、function(){...})`をすべての列オブジェクトに設定します。
は、ヘッダーのクリックイベントがテーブルを並べ替えるのsortable: false
を防ぎますが、後でsort()
、保存された列を使用してプログラムでストアを呼び出すことができます。
var oGrid = Ext.create( 'Ext.grid.Panel', {
...
columns: [
{ ..., sortable: false }
]
});
for( i in oGrid.columns ) {
oGrid.columns[i].on('headerclick', function(){...});
}