如何像数组形式远程存储extjs一样返回数据
Posted
技术标签:
【中文标题】如何像数组形式远程存储extjs一样返回数据【英文标题】:how to return the data like a array form remote store extjs 【发布时间】:2017-10-19 18:43:46 【问题描述】:我有带有过滤器的网格,在过滤器上我想显示一个项目列表。通过关注过滤器选项,我应该看到带有复选框的项目列表,当我单击复选框时,它应该发送参数。我通过 加载本地数据,我想通过加载远程数据来实现它。 dataIndex: 'adjustmentTypeDescription', text: '调整类型', stateId: 'adjustmentgrid_adjustmentTypeDescription', 筛选: 类型:'列表', 标签字段:'名称', dataIndex: 'adjustmentTypeId',
store: Ext.create('Ext.data.ArrayStore',
fields: [
name: 'id',
type: 'int'
,
name: 'name',
type: 'string'
],
data: [
[2, 'AA'],
[13, 'AFF'],
[11, 'DDD'],
[15, 'Dd'],
[5, 'Fdsdt'],
[6, 'Ide']
[10, 'Return/Reject']
]
)
现在我想从服务中加载这些数据。 我试过这样:
store: Ext.create('Ext.data.ArrayStore',
autoLoad: false,
model: 'ModelName',
/*fields: [
name: 'adjustmentTypeId',
type: 'int'
,
name: 'description',
type: 'string'
],*/
proxy:
type: 'ajax',
url: 'servicurl',
timeout:120000,
reader:
type: 'array',
// rootProperty: 'data',
rootProperty:function(data)
debugger;
return data;
debugger;
//console.log(bb);
/*,
listeners:
load: function(store, records, successful,
operation, eOpts)
debugger;
var data = [];
for(var i = 0; i< 1; i++)
//data.push(records[i].data.description);
var vare = new Array();
vare[0]= records[i].data.description;
data.push(vare);
store.loadData(data);
console.log(data);
*/
)
但没有工作我如何通过进行服务调用和加载远程数据来实现这一点。
【问题讨论】:
【参考方案1】:设置autoLoad
: true
删除 reader
配置对象。由于您使用的是 ArrayStore,因此不需要这样做。并且数组数据是有位置的,所以不使用rootProperty
。
检查您是否正确定义了模型字段。
它应该可以工作。
【讨论】:
我的错误实际上存储不应该是 ArrayStore 因为来自服务器的数据是 json 格式: 我把它改成json阅读器并得到它fiddle.sencha.com/#view/editor&fiddle/28ko以上是关于如何像数组形式远程存储extjs一样返回数据的主要内容,如果未能解决你的问题,请参考以下文章
如何让 extjs 组合框像普通的 html 选择框一样工作?
如何在返回数据的同一行初始化一个新的 int 数组? [复制]