我正在使用 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
});
}
}
}
]