Date 在extjs网格上按月分组

Date 在extjs网格上按月分组,date,extjs,grid,grouping,Date,Extjs,Grid,Grouping,我有一个网格,它有一个支付商店。商店使用的付款模式有一个日期字段 我已经实现了按日期分组,但这给了我每天一组条目,如下所示 我想做的是每个月而不是每天组织一个小组 有什么办法吗?好的,没关系。我刚刚找到了一个方法。我使用convert创建了一个字段来查找付款月份,并将该字段用作分组字段 我会把这个贴在网上,以防有人需要 这是付款模式 Ext.define('Ext.model.Payment',{ extend: 'Ext.data.Model', requires: [

我有一个网格,它有一个支付商店。商店使用的付款模式有一个日期字段

我已经实现了按日期分组,但这给了我每天一组条目,如下所示

我想做的是每个月而不是每天组织一个小组


有什么办法吗?

好的,没关系。我刚刚找到了一个方法。我使用convert创建了一个字段来查找付款月份,并将该字段用作分组字段

我会把这个贴在网上,以防有人需要

这是付款模式

Ext.define('Ext.model.Payment',{
    extend: 'Ext.data.Model',

    requires: [
        'Ext.data.Field'
    ],

    fields: [
        {
            name: 'n_id_payment',
            type:'integer'
        },{
            name: 'n_amount',
            type:'integer'
        }.....,
         ..... Several other fields .....
        },{
            name:'payment_month',
            type:'date',
            convert:function(model, record){
                var today = new Date(record.data.dt_date);
                var dd = today.getDate();
                var mm = today.getMonth();

                var month=new Array();
                month[0]="Enero";
                month[1]="Febrero";
                month[2]="Marzo";
                month[3]="Abril";
                month[4]="Mayo";
                month[5]="Junio";
                month[6]="Julio";
                month[7]="Agosto";
                month[8]="Septiembre";
                month[9]="Octubre";
                month[10]="Noviembre";
                month[11]="Diciembre";
                return month[mm];

            }

        }
    ]
})
这是付款商店

Ext.define('Ext.store.PaymentsStore', {
    extend: 'Ext.data.Store',
    requires: [
        'Ext.model.Payment',
        'Ext.data.proxy.Memory'
    ],

    constructor: function(cfg) {
        var me = this;
        cfg = cfg || {};
        me.callParent([Ext.apply({
            autoLoad: false,
            async:false,
            groupField:'payment_month',
            model: 'Ext.model.Payment',
            method:'POST',
            proxy: {
                isSynchronous:true,
                type: 'ajax',
                url: 'http://localhost/index.php/TblPayment/fetch',
                reader:{
                    type :'json',
                    method:'POST'
                }
            }
        }, cfg)]);
    }
});
这是groupingFeature配置

var groupingFeature = Ext.create('Ext.grid.feature.Grouping', {
            groupHeaderTpl:'{name}'
        });
网格也应该设置此属性
features:[groupingFeature]
如果您在分组时遇到错误,那么关于getRowStyleTableEl为null的内容。。。这个问题有一个解决办法

Ext.override(Ext.view.Table, { 
  /* 
    Temporary fix for bug in ExtJS 4.2.1. See: sencha.com/forum/showthread.php?264657-Exception-When-Selecting-First-Grid-Row 
  */ 
  getRowStyleTableElOriginal: Ext.view.Table.prototype.getRowStyleTableEl, 
  getRowStyleTableEl: function() { 
    var el = this.getRowStyleTableElOriginal.apply(this, arguments); 
    if (!el) { 
      el = { 
        addCls: Ext.emptyFn, 
        removeCls: Ext.emptyFn, 
        tagName: {} 
      } 
    } 
    return el; 
  } 
});

您使用的是什么版本的Ext JS?请显示您使用的代码。这样做对其他人会有帮助。答案不仅仅解释了问题的内容,而且因为这个问题很长。但在任何情况下,都可以随意编辑它。