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'
}]
希望对你有用。
谢谢