1.使用Gird加载完后使用 Gird.headerCt.insert()方式进行动态添加
首先Gird里可以先定义固定的column行
然后从后台查询到动态的数据集dataParam
再利用Gird.headerCt.insert()的方式添加colum:
for(var key in dataParam) {
var value = dataParam[key].NAME;
var column = Ext.create('Ext.grid.column.Column', {
text: value,
width:210,
//style: "text-align:center;",
//align:'center',
dataIndex: dataParam[key].IND
});
Gird.headerCt.insert(Gird.columns.length, column);
}
//Gird.getStore().reload();
Gird.getView().refresh();
2.直接先动态获取colums再将处理好的colums传递到Gird中
Gird中的column其实就是一个数组,如果在加载Gird前,将该数组里的参数动态加载完成,再传递给Gird也一样能实现Gird的动态加载。
var platFormParam = "";
var fieldsParam = [] ;
fieldsParam.push("station");
//动态加载列标题
$.ajax({
url:"/xxx/xxx/xxx.do",
async: false,
data:{xxx: xxx},
daType:'Json',
success: function(data){
platFormParam = data.records;
for(var i in data.records){
fieldsParam.push(data.records[i].PLATFORM_ID);
}
}
});
var cm = [];
cm.push({ header: '区域', dataIndex: 'station', width: 150});
//动态加载列
for(var key in platFormParam) {
if(platFormParam[key].PLATFORM_ID){
var header = "";
if(platFormParam[key].PLATFORM_ID == 1){
header = "xxx";
}else if(platFormParam[key].PLATFORM_ID == 2){
header = "xxx";
}
cm.push({ header: header, dataIndex: platFormParam[key].PLATFORM_ID, width: 150});
}
}
最后将 platFormParam 传递给 store 里的fields
将cm 传递给columns 即可。