//ApplyBackCheckGrid的数据源
var dsApplyBackCheck = new Ext.data.GroupingStore({
proxy : new Ext.data.HttpProxy({url :'ApplyBackCheckData.jsp?DbType=GetApplyBackCheck'}),
reader : new Ext.data.JsonReader({
root : 'members',
totalProperty : 'count',
remoteSort : true,
fields: [{name:'AUTOID'}
,{name:'applytime'}
,{name:'usetime'}
,{name:"districtid"}
,{name:"DISTRICTNAME"}
,{name:"REMARK"}
,{name:"APPLYYER"}
,{name:"materialid"}
,{name:"MATERIALNAME"}
,{name:"PN"}
,{name:"MODEL"}
,{name:"unit"}
,{name:"mcount"}
,{name:"remark"},{name:"Factory"}]
}),
groupField : 'Factory',
groupOnSort : false,
sortInfo: {field: 'DISTRICTNAME', direction: 'ASC'}
});
//ApplyBackCheckGrid的列
var cmApplyBackCheck = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),
{dataIndex: 'DISTRICTNAME', header: '区域'},
{dataIndex: 'PN', header: 'PN',width:120},
{dataIndex: 'MATERIALNAME', header: '物料',sortable:true,width:170},
{dataIndex: 'MODEL', header: 'MODEL',sortable:true,width:170},
{dataIndex: 'applytime', header: '申请日期',width:150,renderer : function(value) {
if (value) {
var da = new Date(value.time)
return Ext.util.Format.date(da, ('Y/m/d h:m:s'));
}
}},
{dataIndex: 'mcount', header: '数量'},
{dataIndex: 'unit', header: '单位'},
{dataIndex: 'remark,', header: '备注',hidden:true},
{dataIndex: 'AUTOID', header: 'ID',hidden:true},
{dataIndex: 'districtid', header: '区域ID',hidden:true},
{dataIndex: 'materialid', header: '物料ID',hidden:true}
]);
cmApplyBackCheck.defaultSortable = true;
如果按照以上写数据源及列,那么页面显示时报错:groupRender 为空或者不是对象
原因:在数据源里定义了groupField:'Factory',但是在列模式里并没有包含Factory这一列,这是不允许的(要不,GridPanel怎么显示呢,根据一个GridPanel里一个不存在的列进行分组?),在列模式添加如下就可以了: