如何构建动态的Grid的列

存在这样的需求,即如果显示的Grid的列是通过配置获取的,如何实现?
关键点:
加载配置的列数据

var store = new Ext.data.JsonStore({
autoDestroy:true,
fields : ['mainTaskColumnConfig'],
url: 'getUserDefineCols_columnConfig.do'
});

store.on('load', function(st, records) {
this.grid = new MyGrid({columnConfig:records[0].data.mainTaskColumnConfig});
}, this)

store.load();

对应的JSON数据:

[{"mainTaskColumnConfig":[{"align":"center","dataIndex":"taskName","header":"任务名称","hidden":false,"sortable":true,"width":100},{"align":"center","dataIndex":"priority","header":"优先级","hidden":false,"sortable":true,"width":100},{"align":"center","dataIndex":"proposeSystem","header":"提交系统","hidden":false,"sortable":true,"width":100},{"align":"center","dataIndex":"executeMode","header":"任务执行模式","hidden":false,"sortable":true,"width":100},{"align":"center","dataIndex":"taskType","header":"任务类型","hidden":false,"sortable":true,"width":100},{"align":"center","dataIndex":"groupName","header":"组名","hidden":false,"sortable":true,"width":80},{"align":"center","dataIndex":"progress","header":"进度","hidden":false,"sortable":true,"width":100},{"align":"center","dataIndex":"proposeInterfaceType","header":"提交接口类型","hidden":false,"sortable":true,"width":100},{"align":"center","dataIndex":"taskHint","header":"任务描述","hidden":false,"sortable":true,"width":60},{"align":"center","dataIndex":"proposer","header":"提交者","hidden":false,"sortable":true,"width":100}]}]

自扩展的MyGrid的定义:

...
this.cm = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer()
]);

var defaultLength = this.cm.config.length;
for(i = 0 ; i < columnConfig.length ;i++){
if (columnConfig[i].dataIndex === 'executeMode') {//add render
columnConfig[i].renderer = someRenderFn;
}
this.cm.config[defaultLength + i] = columnConfig[i];
}
this.cm.setConfig(this.cm.config);
...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值