我正在使用 ExtJs 4.1 框架。我有一个网格,它只显示一列(名称)。网格与具有两个字段(名称和排序顺序)的商店相关联。存储中的字段“名称”与网格的名称列相关联。我想根据商店中 SortOrder 字段中可用的值对名称列进行排序。我怎样才能实现这样的逻辑。
谢谢
我正在使用 ExtJs 4.1 框架。我有一个网格,它只显示一列(名称)。网格与具有两个字段(名称和排序顺序)的商店相关联。存储中的字段“名称”与网格的名称列相关联。我想根据商店中 SortOrder 字段中可用的值对名称列进行排序。我怎样才能实现这样的逻辑。
谢谢
还有一个更简单的解决方案:
...
列: [{
标题:'名称',
数据索引:'名称',
可排序:真,
获取排序参数:函数(){
返回“排序顺序”;
}
...
}]
...
因此,您可以覆盖 getSortParam() 方法(由 doSort() 使用),而不是覆盖 doSort()。
你的意思是这样的:
...
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',
listeners: {
headerclick: function() {
var store = this.up('grid').getStore();
store.sort({
property: 'SortOrder',
direction: this.sortState
});
}
}
}
]