日期:2014-05-16  浏览次数:20759 次

extjs表格分组控制
我写了一个extjs的表格分组
Ext.onReady(function(){
Ext.QuickTips.init();

var data = [
[1,'张一','1987-09-28','机械制造工程系','数控设备运用与维护'],
[2,'张二','1985-05-09','机械制造工程系','数控设备运用与维护'],
[3,'张三','1986-09-10','机械制造工程系','数控设备运用与维护'],
[4,'张四','1987-05-04','机械制造工程系','数控设备运用与维护'],
[5,'李一','1986-10-01','机械制造工程系','数控设备运用与维护'],
[6,'李二','1985-05-06','机械制造工程系','数控技术'],
[7,'李三','1985-07-20','机械制造工程系','数控技术'],
[8,'李四','1987-08-28','机械制造工程系','数控设备运用与维护'],
[9,'李五','1986-09-26','机械制造工程系','机电技术'],
[10,'李六','1985-10-23','航空装备工程系','航空计算机'],
[11,'李七','1985-11-20','机械制造工程系','数控设备运用与维护'],
[12,'李八','1988-05-05','管理工程系','物流管理']
];

var cm = new Ext.grid.ColumnModel({
defaults : {
sortable : true
},
columns : [
{header:'编号',dataIndex:'studentid'},
{header:'姓名',dataIndex:'studentname'},
{header:'出生日期',dataIndex:'birthday',type:'date',renderer:Ext.util.Format.dateRenderer('Y年m月d日')},
{header:'系部',dataIndex:'department'},
{header:'专业',dataIndex:'professional'}
]
});
var store = new Ext.data.GroupingStore({
reader : new Ext.data.ArrayReader({},[
{name:'studentid',type:'int'},'studentname',{name:'birthday',type:'date',dateFormat:'Y-m-d'},
'department','professional'
]),
data : data,
sortInfo : {field:'studentid',direction:'ASC'},
groupField : 'professional'
});
var grid = new Ext.grid.GridPanel({
title : '表格分组二',
renderTo : Ext.getBody(),
autoHeight : true,
width : 600,
cm : cm,
store : store,
view : new Ext.grid.GroupingView({
forceFit : true,
sortAscText : '升序',
sortDescText : '降序',
columnsText : '可选列',
groupByText : '按照此列分组',
showGroupsText : '显示分组'
})
});
});

代码可以运行,但对出生日期进行分组后,每组都只有一条记录了,所以我想对出生日期分组时,只按照出生的年进行分组,如‘1985’分为一组,‘1986’分一组,请问这样代码怎么改,请各位解决一下,谢谢!!

------解决方案--------------------
  var cm = new Ext.grid.ColumnModel({
        defaults : {
            sortable : true
        },
        columns : [
            {header:'编号',dataIndex:'studentid'},
            {header:'姓名',dataIndex:'studentname'},
            //加一个分组渲染函数
            {header:'出生日期',dataIndex:'birthday',type:'date',renderer:Ext.util.Format.dateRenderer('Y年m月d日'),groupRenderer:function(value,unused,record,rowIndex,colIndex,store){