我正在使用ExtJs 4.1框架。我有一个只显示一列(名称)的网格。网格与有两个字段(Name和SortOrder)的商店相关联。商店中的“名称”字段与网格的名称列关联。我想根据商店中SortOrder字段中的可用值对名称列进行排序。我怎样才能实现这样的逻辑。基于ExtJs 4.1网格中的另一列对一列进行排序
谢谢
我正在使用ExtJs 4.1框架。我有一个只显示一列(名称)的网格。网格与有两个字段(Name和SortOrder)的商店相关联。商店中的“名称”字段与网格的名称列关联。我想根据商店中SortOrder字段中的可用值对名称列进行排序。我怎样才能实现这样的逻辑。基于ExtJs 4.1网格中的另一列对一列进行排序
谢谢
你的意思是这样的:
...
columns: [{
header: 'Name',
dataIndex: 'Name',
sortable: true,
doSort: function(state){
var ds = this.up('tablepanel').store;
ds.sort({
property: 'SortOrder',
direction: state
});
}
....
}]
还有更简单一点的解决方案:
... columns: [{ header: 'Name', dataIndex: 'Name', sortable: true, getSortParam: function() { return 'SortOrder'; } ... }] ...
所以不是覆盖doSort(的),你只需重写getSortParam()方法(由doSort()使用)。
在标题点击上做到这一点的另一种方法。
columns: [
{
header: 'Name',
dataIndex: 'Name',
listeners: {
headerclick: function() {
var store = this.up('grid').getStore();
store.sort({
property: 'SortOrder',
direction: this.sortState
});
}
}
}
]
谢谢....想知道为什么他们没有把这个“doSort”放到Ext.grid.column.Column的文档中。 +1为你 – T1000
请注意,Ext.grid.column.Column.doSort()是一种用于内部处理的私有方法,因此我们通常不推荐使用它。因此,在文档中它是不可见的,除非您专门搜索它或启用查看私人功能。 – Yetti