2013-02-19 18 views
0

我正在實施一個多排序的網格。我想爲此使用sortchange事件,但我必須取消事件,以便我可以用自己的排序配置調用商店。如何取消ExtJS網格的sortchange事件?

這不起作用:

oGrid.on('sortchange', function(oColumnContainer, oColumn, strSortOrder){ 
    //... 
    return false; 
}) 
+0

這將會非常複雜。您是否願意爲解決方案擴展列類?如果是這樣,我可以告訴你如何。 – Reimius 2013-02-19 15:46:06

回答

0

發現自己的解決方案。

當我需要我多排序,我設置了網格sortable: false在創建時的所有列(好像是不可能做到這一點的即時)

然後,我設置了on('headerclick,函數(){...})`在我創建網格之後立即對所有的列對象賦值。

sortable: false可以防止標題上的點擊事件對錶格進行排序,但稍後我仍然可以用保存的列以編程方式調用sort()

var oGrid = Ext.create('Ext.grid.Panel', { 
    ... 
    columns: [ 
    { ..., sortable: false } 
    ] 
}); 

for(i in oGrid.columns) { 
    oGrid.columns[i].on('headerclick', function(){...}); 
}