Extjs6 下 动态生成grid表头

前端使用Extjs6j技术。遇到动态生成gird的需求。这里记录下,便于以后使用。

首先定义表格

{
    xtype: 'grid',
    region: 'center',
    reference: 'salaryGrid',
    columnLines: true,
    //enableLocking:true,
    //enableColumnHide:false,
    bind: { store: '{salaryResult}' },
    tbar: [
        {text: '查询', handler: 'onQuery'},'->',
        {text: '后退', handler: 'onBack'}
    ],
    columns: [
        { text: '列1', dataIndex: 'c1',width:100,minWidth:80,menuDisabled: true,locked:true},
        { text: '列2', dataIndex: 'c2' ,width:100,minWidth:80,menuDisabled: true,locked:true}
    ],
    bbar: {
        xtype: 'pagingtoolbar', //分页绑定
        bind: { store: '{salaryResult}' }
    }
}

后台在页面加载后获取数据,动态生成表格的列头

//加载数据
salaryResult.loadPage(1,{
	callback: function (records) {
		if (records==null || records.length == 0)
			return;
			
		//获取数据
		var r = records[0],
		cols = [
			{ text: '固定列1', dataIndex: 'c1',menuDisabled: true,locked:true,draggable:false,width:100,minWidth:80,disabled : true},
			{ text: '固定列2', dataIndex: 'c2' ,menuDisabled: true,locked:true,draggable:false,width:100,minWidth:80,disabled : true}
		];
		
		//遍历数据
		for (var key in r.data) {
			//排除不使用列
			if (key == "id"|| key == "name" ) {
				continue;
			}
			
			//动态加入。text可以使用Map去值替代
			cols.push({ text: key, dataIndex: key ,menuDisabled: false,locked:false ,sortable:true,minWidth:80,flex: 1})
		}
		
		//获取数据源加入动态的列
		me.lookupReference('salaryGrid').reconfigure(null, cols);
	}
});

 

转载于:https://my.oschina.net/niaoge/blog/1635997

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值