sencha/extjs 动态创建grid表格

//创建普通表格 id,父容器,标题,json数据字符串,列名(逗号分隔),json数据key即store的fields属性(逗号分隔)


 

function createCommonTable(id, container, fieldLabel, value, columns,dataIndexs) {
    	if(typeof(container)!="object")
		{
			container=Ext.getCmp(container); //根据id取组件
		}
    
    var rarr = columns.split(',');
    var darr=dataIndexs.split(',');
       
    var columnsArr = new Array();
    var fieldsArr = new Array();

    for (var i = 0; i < rarr.length; i++) {
        columnsArr.push({tooltip:rarr[i] ,text: rarr[i], dataIndex: darr[i], editor: { xtype: 'textfield', allowBlank: true} });
    }
    for (var i = 0; i < darr.length; i++) {
        fieldsArr.push(darr[i]);
    }
  
    
    var fd = Ext.create('Ext.grid.Panel', {
        xtype: 'gridpanel',
        autoScroll:true,
        id: id,       
        columns: columnsArr , 
		forceFit:true
    });
    if(fieldLabel)
        {
            fd. title=fieldLabel;//标题
        }
    else
        {
            fd.header=false;
        }
	
	
	if (value) {
        value = eval(value);
    }

    var jsonData = { 'items': value };

    Ext.create('Ext.data.Store', {
        storeId: 'simpsonsStore-' + id,
        fields: fieldsArr,
        /*data:jsonData,*/
        proxy: {
            type: 'memory',
            reader: {
                type: 'json',
                root: 'items'
            }
        }
    });

    //console.log(jsonData);
    
    var store = Ext.data.StoreManager.lookup('simpsonsStore-' + id);
    fd.reconfigure(store);
    store.loadRawData(jsonData);	
	
	container.items.add(container.items.getCount(), fd);
	container.doLayout();
	return fd;
}


 



使用:

var grid=createCommonTable('mygrid',Ext.getCmp("gridContainer"), null, [{"姓名":"aabb","年龄":21}], "姓名,年龄");


版权声明:本文为博主原创文章,未经博主允许不得转载。

 

转载于:https://www.cnblogs.com/xuejianxiyang/p/sencha_extjs_dynamic_create_gridpanel.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值