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?请显示您使用的代码。这样做对其他人会有帮助。答案不仅仅解释了问题的内容,而且因为这个问题很长。但在任何情况下,都可以随意编辑它。