7

我正在使用 ExtJs 4.1 框架。我有一个网格,它只显示一列(名称)。网格与具有两个字段(名称和排序顺序)的商店相关联。存储中的字段“名称”与网格的名称列相关联。我想根据商店中 SortOrder 字段中可用的值对名称列进行排序。我怎样才能实现这样的逻辑。

谢谢

4

3 回答 3

20

还有一个更简单的解决方案:

...
列: [{
    标题:'名称',
    数据索引:'名称',
    可排序:真,
    获取排序参数:函数(){
        返回“排序顺序”;
    }
...
}]
...

因此,您可以覆盖 getSortParam() 方法(由 doSort() 使用),而不是覆盖 doSort()。

于 2012-11-16T09:03:24.177 回答
4

你的意思是这样的:

...
columns: [{
    header: 'Name',
    dataIndex: 'Name',
    sortable: true,
    doSort: function(state){
        var ds = this.up('tablepanel').store;
        ds.sort({
            property: 'SortOrder',
            direction: state
        });
    }
    ....    
}]
于 2012-05-04T08:54:53.973 回答
0

另一种在标题单击时执行此操作的方法。

columns: [
    {
        header: 'Name',
        dataIndex: 'Name',
        listeners: {
            headerclick: function() {
                var store = this.up('grid').getStore();
                store.sort({
                        property: 'SortOrder',
                        direction: this.sortState
                    });
            }
        }
    }
 ]
于 2013-10-30T10:42:36.193 回答