2

进行多列分组的一种方法是覆盖 Grouper 函数以提供必要的功能。

Ext.util.Grouper.override({

    getGroupString: function (item) {
        return item.get('account') + ', Currency: ' + item.get('currCd');
    }

});

// Define summary store
Ext.define('xxx.store.Summaries', {
    extend: 'Ext.data.JsonStore',
    alias: 'store.summaries',
    requires: ['xxx.view.summary.SummaryGrouper'],
    model: 'xxx.model.Summary',
    storeId: 'summaryStore',

    grouper: {
        property: 'account'
    },

进行此分组的另一种方法是通过存储中的 grouper 属性。

    grouper: {
        property: 'account',
         groupFn: function (item) {
             return item.get('account') + ', Currency: ' + item.get('currCd');
         }
    },

这个第一次工作,但是,当我刷新时,它不需要我给它的 groupFn 只是按帐户分组。我猜这与配置有关。你能建议为什么吗?

另一种方法是扩展 Grouper,但是,我认为我做错了什么。这没有被调用,或者我做错了什么。

// 定义汇总分组器

Ext.define('Banking.view.summary.SummaryGrouper', {
    extend: 'Ext.util.Grouper',
    alias: 'widget.summaryGrouper',
    isGrouper: true,
    initComponent: function () {
        this.callParent(arguments);
    },
    config: {
        groupFn: function(record) {
             return record.get('account') + ', Currency:' + record.get('currCd');
        },
        sortProperty: 'account'
    },
    constructor:function(cfg){
        this.callParent(arguments);//Calling the parent class constructor
        this.initConfig(cfg);//Initializing the component
    }
});

当我扩展 Grouper 类时,你能建议我在这里做错了什么吗?

4

1 回答 1

2

尝试从 grouper 对象中删除 'property' 属性。

grouper: {
         groupFn: function (item) {
             return item.get('account') + ', Currency: ' + item.get('currCd');
         }
    }
于 2014-06-13T14:59:43.333 回答