Ext.require([ 'erp.util.*' ]); Ext.define('erp.view.plm.test.AnalyseTestGrid',{ extend: 'Ext.grid.Panel', alias: 'widget.erpAnalyseTestGridPanel', layout : 'fit', emptyText : '无数据', columnLines : true, autoScroll : true, url:null, store: [], columns: new Array(), bodyStyle:'background-color:#f1f1f1;', BaseUtil: Ext.create('erp.util.BaseUtil'), RenderUtil:Ext.create('erp.util.RenderUtil'), initComponent : function(){ this.getColumnsAndStore(condition); this.callParent(arguments); } , features: [{ ftype: 'summary', groupHeaderTpl: '{name}', hideGroupedHeader: false, enableGroupingMenu: false, enableLocking: true, }], getColumnsAndStore: function(condition){ condition=condition==''?"1=1":condition; startdate=startdate==''?'2012-04-01':startdate; enddate=enddate==''?Ext.Date.format(new Date(),'Y-m-d'):enddate; var me = this; me.BaseUtil.getActiveTab().setLoading(true);//loading... Ext.Ajax.request({//拿到grid的columns url : basePath +this.url, params: { condition: condition, startdate:startdate, enddate:enddate }, method : 'post', callback : function(options,success,response){ me.BaseUtil.getActiveTab().setLoading(false); var res = new Ext.decode(response.responseText); if(res.exception || res.exceptionInfo){ showError(res.exceptionInfo); return; } var data=res.data; if(me.columns && me.columns.length > 2){ me.store.loadData(data); } else { var store = Ext.create('Ext.data.Store', { fields: res.fields, data: data }); var grid=this; Ext.Array.each(res.columns, function(column, y) { if(!column.haveRendered && column.renderer != null && column.renderer != ""){ if(!grid.RenderUtil){ grid.RenderUtil = Ext.create('erp.util.RenderUtil'); } var renderName = column.renderer; if(contains(column.renderer, ':', true)){ var args = new Array(); Ext.each(column.renderer.split(':'), function(a, index){ if(index == 0){ renderName = a; } else { args.push(a); } }); if(!grid.RenderUtil.args[renderName]){ grid.RenderUtil.args[renderName] = new Object(); } grid.RenderUtil.args[renderName][column.dataIndex] = args; //这里只能用column.dataIndex来标志,不能用x,y,index等, //grid在render时,checkbox占一列 } column.flex=1; column.renderer = grid.RenderUtil[renderName]; column.haveRendered = true; } if(column.summaryType!=""){ if(column.summaryType=='sum'){ column.summaryRenderer=function(value, summaryData, dataIndex) { return '