xxx= Ext.extend(Ext.grid.GridPanel, { id : 'xxx', stripeRows : true, region : 'center', exportJsonStr: null, loadMask : { msg : 'Please Wait...' }, sm : new Ext.grid.RowSelectionModel(), autoScroll : true, initComponent : function() { this.store = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : 'xxxx?11111=11111' }), reader : new Ext.data.JsonReader({ totalProperty : 'totalProperty', root : 'msg' }, [] ), listeners : { 'beforeload' : function(msgDetailStore) { Ext.apply(msgDetailStore.baseParams, { msg : Ext.getCmp('xxxDetailWindow').msg }); }, load : function(store, records, options) { // 空数据提示 if (Ext.isEmpty(records)) { Ext.QuickMsg.show('提示', '没有查询到相关数据', '250px', 2, Ext.getBody(), [10, 200], 't-t', true, true); } else { /** * 判定单元格,设置单元格告警样式 */ var gridPanel = Ext.getCmp('xxx'); AddCellCls(gridPanel, records); } }, metachange : function(store, meta) { /** * 根据meta动态生成列 */ var fields = meta.fields; var config = []; for (var i = 0; i < fields.length; i++) { var field = fields[i]; var name = field.name; // 判断某些列需要添加隐藏属性, hidden:true if (name == 'xx' || name == 'xx') { config.push({ header : name, hidden: true, dataIndex : name, align : 'center', width : 80 }); }else{ config.push({ header : name, dataIndex : name, align : 'center', width : 120 }); } // 刷新列 var gridPanel = Ext.getCmp('xxx'); gridPanel.getColumnModel().setConfig(config); } } } }); // 根据meta动态生成列,参见store的metachange函数 this.cm = new Ext.grid.ColumnModel({ defaults : { sortable : true }, columns : [] }); this.bbar = new Ext.PagingToolbar({ pageSize : 1000, store : this.store, firstText : '第一页', nextText : '下一页', prevText : '上一页', refreshText : '刷新', lastText : '最后一页', displayInfo : true, displayMsg : '显示第 {0} - {1}条记录 共{2}条记录', emptyMsg : '没有数据', // 下面为分页插件代码 // plugins : new Ext.ux.ProgressBarPager(), listeners : { beforechange : function(toolBar, params) { // 数据加载遮罩 var myMask = new Ext.LoadMask( Ext.get('xxx'), { msg : "Please wait...", store : this.store } ); myMask.show(); } } }); xxx.superclass.initComponent.call(this); } }); Ext.reg('xxx', xxx);