Ext动态列加载



//声明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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值