EXTJS 4 嵌套 json 数组数据到网格面板
Posted
技术标签:
【中文标题】EXTJS 4 嵌套 json 数组数据到网格面板【英文标题】:EXTJS 4 nested json array data to grid panel 【发布时间】:2013-06-13 00:08:48 【问题描述】:我是 ExtJS 的新手,但无论如何我都找不到用简单的 JSON 字符串数组填充我的网格。我的 JSON 如下所示:
...stuff...
"users": ["kevin","ryan", "david", "mark", "ed"]
...more stuff...
我想用这个用户列表填充一个简单的单列网格,但似乎找不到任何方法! :(
我的代码如下所示:
Ext.define('usersModel',
extend: 'Ext.data.Model',
fields: [ name: 'users', type: 'auto']
);
var usersStore = Ext.create('Ext.data.Store',
model: 'usersModel',
proxy:
type: 'ajax',
url : '/users',
reader: 'json'
,
autoLoad: true
);
// create the Grid
Ext.create('Ext.grid.Panel',
store: usersStore,
columns: [
dataIndex: 'users',
width: 500,
text: 'User'
,
],
);
但它只是在一个单元格中显示逗号分隔的用户列表。我知道为什么会这样,我将列的 dataIndex 设置为数组,而不是数组中的元素,但不知道如何修复它。
【问题讨论】:
【参考方案1】:试试这个:
Ext.define('usersModel',
extend: 'Ext.data.Model',
fields: [ name: 'name', type: 'auto']
);
var usersStore = Ext.create('Ext.data.Store',
model: 'usersModel',
proxy:
type: 'ajax',
url : '/users',
reader:
type: 'json',
rootProperty: 'users'
,
autoLoad: true
);
// create the Grid
Ext.create('Ext.grid.Panel',
store: usersStore,
columns: [
dataIndex: 'name',
width: 500,
text: 'User'
,
],
);
【讨论】:
不走运 :( 现在我的网格是空的,我想这是有道理的,因为名称没有标记为“名称”,它们根本没有标记。 @user1998935 这确实是问题所在。您能否将 JSON 响应更改为"users": [ name: "kevin" , ...]
之类的内容?
我无法真正更改传入的 JSON :(
@N3vik .. 我也在寻找同样的问题 .. 你找到解决方法了吗?以上是关于EXTJS 4 嵌套 json 数组数据到网格面板的主要内容,如果未能解决你的问题,请参考以下文章
单击一行后,Extjs 4 网格自定义添加一个带有文本字段的面板
将嵌套 JSON 数据发送到服务器的可能方法 - extjs 4.2.x
在 extjs 4.2 中将数据从商店设置到具有网格的表单面板