我正在使用ExtJs 4.1框架。我有一个网格,只显示一列(名称)。网格与具有两个字段(Name和SortOrder)的商店相关联。字段" name" in store与网格的Name列相关联。我想根据商店中SortOrder字段中可用的值对名称列进行排序。我怎样才能实现这样的逻辑。
谢谢
答案 0 :(得分:20)
还有一个更简单的解决方案:
... columns: [{ header: 'Name', dataIndex: 'Name', sortable: true, getSortParam: function() { return 'SortOrder'; } ... }] ...
因此,您可以覆盖getSortParam()方法(由doSort()使用),而不是覆盖doSort()。
答案 1 :(得分:4)
你的意思是这样的:
...
columns: [{
header: 'Name',
dataIndex: 'Name',
sortable: true,
doSort: function(state){
var ds = this.up('tablepanel').store;
ds.sort({
property: 'SortOrder',
direction: state
});
}
....
}]
答案 2 :(得分:0)
另一种方法是在标题点击上执行此操作。
columns: [
{
header: 'Name',
dataIndex: 'Name',
listeners: {
headerclick: function() {
var store = this.up('grid').getStore();
store.sort({
property: 'SortOrder',
direction: this.sortState
});
}
}
}
]