如何取消ExtJS网格的sortchange事件?

时间:2013-02-19 10:36:16

标签: extjs extjs4.1

我正在为网格实现多重排序。我想为此使用sortchange事件,但我必须取消该事件,以便我可以使用自己的排序配置调用商店。

这不起作用:

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

1 个答案:

答案 0 :(得分:0)

自己找到解决方案。

当我需要多排序时,我会在创建时将网格上的所有列设置为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(){...});
}