//////////////////////////// //声明grid var Dat; //表字段:ID CName EName Sex Address Mobile //声明全局变量session_Column作为当前的列集,默认是2列 var session_column = "pno,pname,pnum,"; //封装grid function DataGrid(){ //默认2列 this.fields = '{name:"pno"},{name:"pname"},{name:"pnum"}'; this.columns = '{header:"组合",dataIndex:"pno",hidden:false,sortable:true},' +'{header:"名称",dataIndex:"pname",sortable:true},' +'{header:"市值",dataIndex:"pnum",sortable:true}'; //动态增加列 this.addField=function(name,caption) { if(this.fields.length > 0){ this.fields += ','; } if(this.columns.length > 0){ this.columns += ','; } this.fields += '{name:"' + name + '"}'; this.columns += '{header:"' + caption + '",dataIndex:"' + name + '",sortable:true}'; }; //动态删除列 this.removeField=function(name,caption) { if(this.fields.length > 0&&this.columns.length > 0) { var d_field = ',{name:"' + name + '"}'; var index = this.fields.indexOf(d_field); if(index>=0) { this.fields = this.fields.replace(d_field,""); } var d_column = ',{header:"' + caption + '",dataIndex:"' + name + '",sortable:true}'; var index2 = this.columns.indexOf(d_column); if(index2>=0) { this.columns = this.columns.replace(d_column,""); } } }; //绑定存储器 this.ds = new Ext.data.Store ({ autoLoad :false, proxy:new Ext.data.HttpProxy({url:"griddata.action"}), reader:new Ext.data.JsonReader({totalProperty:"results",root:"items"}, Ext.data.Record.create(eval('(['+this.fields+'])'))) }); //清空字段,恢复初始值 this.clearFields= function(){ this.fields = '{name:"pno"},{name:"pname"},{name:"pnum"}'; this.columns = '{header:"组合",dataIndex:"pno",hidden:false,sortable:true},' + '{header:"名称",dataIndex:"pname",sortable:true},' +'{header:"市值",dataIndex:"pnum",sortable:true}'; }; //实现动态增加或者删除列 this.RefreshDataSource = function(u){//动态添加列 var cm1 = eval('([' + this.columns + '])'); //默认可以对字段排序 cm1.defaultSortable = true; //重新绑定数据集 var newStore = new Ext.data.Store ({ autoLoad :false, proxy:new Ext.data.HttpProxy({url: u}), reader:new Ext.data.JsonReader({totalProperty:"results",root:"items",id :"id"},Ext.data.Record.create(eval('([' + this.fields + '])'))) }); //重新绑定grid this.grid.reconfigure(newStore, new Ext.grid.ColumnModel(cm1)); //重新绑定分页工具栏 this.pagingBar.bind(newStore); //重新加载数据集 newStore.load({params:{start:0,limit:10}}); } this.ds.load(); this.pagingBar = new Ext.PagingToolbar ({ displayInfo:true, emptyMsg:"没有数据显示", displayMsg:"显示从{0}条数据到{1}条数据,共{2}条数据", store:this.ds, pageSize:10 }); this.grid = new Ext.grid.GridPanel ({ cm:new Ext.grid.ColumnModel(eval('([' + this.columns + '])')), store:this.ds, id:"pgrid", title:"组合信息", loadMask:true, layout:"fit", autoWidth:true, stripeRows :true, frame :false, viewConfig : { autoFill :true, enableRowBody :true }, // autoHeight:false, height:440, autoScroll:true, bbar:this.pagingBar, listeners:{ 'cellclick':function(grid,rowIndex,columnIndex,e){ var record = grid.getStore().getAt(rowIndex); Ext.getCmp('text1').setValue(rowIndex); } }, renderTo:grid1 }); } //动态增加列 function AddColumn(columnName,caption){ if(session_column.indexOf(columnName)>0) { // Ext.Msg.alert("友好提示","["+caption+"]字段已经添加过了,不能够重复!当然你想重复,要改源代码哦!"); return; } session_column +=columnName; Dat.addField(columnName,caption); } //刷新页面恢复初始加载状态 function Refresh(){ var url = "griddata.action"; Dat.clearFields();//清空字段,恢复初始值 session_column = "pno,pname,pnum,"; //Dat.RefreshDataSource(url); } Dat = new DataGrid(); /////调用发出请求 AddColumn("tmgamma","伽玛(T-M三因素)"); url = "griddata.action?type=4&begin="+begin+"&end="+end+"&pno="+pno; Dat.RefreshDataSource(url); </script>