有谁有好的方法动态加载grid的列,如果有100个列,要写100次列头,这样不是很麻烦吗?是EXTJS4,不是以下的版本,希望各位大侠帮帮忙

解决方案 »

  1.   

    var json = "";
         Ext.Ajax.request({//Ajax异步调用
    url : 'entityconfig.action?entityTag=001009001001',
    //params : {defineBtn:defineBtn},
    method : 'POST',
    async : false,
    success: function(rs, request) { //成功后处理
        var result = rs.responseText;//拿到结果集,此时为字符串
            json =  Ext.JSON.decode(result);//将字符串转换为json类型
            if(json.failure){
           Ext.Msg.alert('提示','实体资源没有配置!请联系管理员!')
           return;
            }
    }
    });上面是从后台驱动json字符串并转换为jsonvar jcm = json.columnModel;
    var cMs = new Array();
    for (var i=0, j=0; j<jcm.length; i++,j++) {
    var pa = jcm[j].header;
    var pb = jcm[j].dataIndex.toLowerCase();
    cMs.push({header: pa, dataIndex: pb,sortable: true});
    }
    这是吧列名动态的赋值给一个数组Ext.create('Ext.grid.Panel', {
             height:getDivHeight() * 0.79,
             bbar:pagetb,
                store: elStore,
            id:gridid,
            columns: cMs, //cMs 就是那个包含所有列名的数组
            autoWidth:true
            });这就ok了!!