extjs4 grid 问题
我要做一个gridpanel,要求能动态加载ajax的数据,但是grid的column字段是动态的,要求动态加载的,以前做的是store是动态的它的column是固定的,...
我要做一个gridpanel,要求能动态加载ajax的数据,但是grid的column字段是动态的,要求动态加载的,以前做的是store是动态的它的column是固定的,这个好做。要把column表头也要动态,该怎么弄,不仅名称是变化的,column数量也是。不能多定义几个grid,来切换,因为column数量不确定,根据后台来确定,请问怎么弄?最好用点代码来告诉我,不要说抽象的,我extjs不是很熟,有例子更好。
展开
3个回答
展开全部
Ext.Ajax.request({
url: ‘.........................',
success: function(resp, opts) {
var responseArray = Ext.JSON.decode(resp.responseText);
var a = responseArray.columns;
var b = responseArray.fields;
var c = Ext.create('Ext.data.ArrayStore', {
fields: b,
data: responseArray.data
});
grid.reconfigure(c, a);
c.load();
}
});
url: ‘.........................',
success: function(resp, opts) {
var responseArray = Ext.JSON.decode(resp.responseText);
var a = responseArray.columns;
var b = responseArray.fields;
var c = Ext.create('Ext.data.ArrayStore', {
fields: b,
data: responseArray.data
});
grid.reconfigure(c, a);
c.load();
}
});
追问
非常感谢,请问您懂chart吗?我有一个Line类型的图表,就是xy轴的那种。我想让它ajax加载数据,我用的是chart.store.load(data),这样加载数据是可以的,但是定义的图表的store预先定义好,返回的json数据和store的格式是一样的。就如同grid一样,grid的column和store先定义好,格式一致,只要加载json就可以了。但我现在也要求动态的,就是chart的属性axes和series也要动态生成。就是chart有几条line是不确定的。应该怎么弄?
展开全部
我不是很明白为什么会有这样的需求?你能说一下具体的应用情况吗?
从你现在的描述来看,我暂时认为你的 columns 里面的数据也应该是从数据库里面读取的,那样我们可以在后台封装这个JSON数据。
比如我们读取到一个list,然后把每个list里面的值封装成
{
header : '编号的文字描述',
dataIndex : '对应字段的描述'
}
把这个json数据发送到前端就可以了。
从你现在的描述来看,我暂时认为你的 columns 里面的数据也应该是从数据库里面读取的,那样我们可以在后台封装这个JSON数据。
比如我们读取到一个list,然后把每个list里面的值封装成
{
header : '编号的文字描述',
dataIndex : '对应字段的描述'
}
把这个json数据发送到前端就可以了。
追问
我的例子是这样的:{xtype: 'gridpanel',id: 'sjgridpanel',store:'storea',column:[]}我这个grid是放在容器里的,storea定义:Ext.define('MyApp.store.storea', {extend: 'Ext.data.Store',
constructor: function(cfg) {fields:‘定义fields‘}})就是这个grid怎么定义或store怎么定义能够让column写在store里?
追答
不要写在store里,后台封装好
column的值[{},{},{}],可以封装在String里面, 直接发送回来就行了,把获取到的变量放进去就行了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过ajax取得后台返回的字段,用循环把各个字段拼成column表头,再用Ext.decode转成对象放到grid里面(column)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询