当前位置: 代码迷 >> Java Web开发 >> ext 4.2.1 gridpanel动态创建列跟数据
  详细解决方案

ext 4.2.1 gridpanel动态创建列跟数据

热度:1041   发布时间:2016-04-16 22:27:17.0
ext 4.2.1 gridpanel动态创建列和数据
  original.fieldsNames.add("{name:'"+str+"'}")
 original.colName.add("{text:'"+str+"',dataIndex:'"+str+"'}")
在后台进行拼装的数据  str是列名


 function fnData(msg){
        Ext.define('original',{
            extend: 'Ext.data.Model'
            ,  fields: msg.fieldsNames
        });

        if (Ext.getCmp("originalGrid") != undefined) {
             Ext.getCmp("originalGrid").destroy();
        }
        if (Ext.getCmp("originalStore") != undefined) {
           Ext.getCmp("originalStore").remove();
        }
//
        var store = Ext.create('Ext.data.JsonStore', {
            model: 'original',
            id:'originalStore',
            proxy: {
                type: 'ajax',
                root:'root',
                totalProperty:'totalCount'
            }
        });

       var cm = Ext.create('Ext.grid.ColumnModel',msg.colName)

        // create the grid
        var grid = Ext.create('Ext.grid.Panel', {
            frame: true,
            id:'originalGrid',
            title: '原始指标列表',
            store: store,
           columns: [
               cm
            ],

            renderTo:'dataList'
        });
    }
msg是后台返回的内容  但是这样还是不行  求帮忙指教指教
------解决方案--------------------
长 这么大了  没玩过ext 啊。。 
------解决方案--------------------
类似于这样: {root:[{后台数据}]}
------解决方案--------------------
列模型建了吗? ext4我没研究过,3我到是很熟悉。 
在3一般都要有列模型:
  var cm = new Ext.grid.ColumnModel(head);
head是json对象,类似这样:[{header:'编号',dataIndex:'user_Id'},{header:'姓名',dataIndex:'user_Xingm'}]

然手构建表格时把列模型填充进去:
var grid = new Ext.grid.GridPanel({
   .....
   cm:cm,
   .....

})

你试试这样行不行
------解决方案--------------------
你要实现的功能就是gridPanel中的column从后台动态获得数据?

如果这样的话 尝试以下方法:
columns[{
header : "姓名",
width : 100,
dataIndex : 'name'
}]
希望对你有用。
谢谢