如何 return 像数组一样的数据形成远程存储 extjs
how to return the data like a array form remote store extjs
我有带过滤器的网格,我想在过滤器上显示项目列表。通过关注过滤器选项,我应该看到一个带有复选框的项目列表,当我点击复选框时它应该发送参数。我通过以下方式实现了这一目标
加载本地数据,我想通过加载远程数据来实现相同的目标,我该如何实现。
{
数据索引:'adjustmentTypeDescription',
文本:'Adjustment
Type',
stateId: 'adjustmentgrid_adjustmentTypeDescription',
筛选: {
类型:'list',
标签字段:'name',
数据索引:'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);
}
}*/
})
但没用 我如何通过调用服务和加载远程数据来实现这一点。
设置autoLoad
: true
删除 reader
配置对象。由于您使用的是 ArrayStore,因此不需要这样做。并且数组数据是位置数据,因此不使用 rootProperty
。
检查您是否正确定义了模型字段。
应该可以。
我有带过滤器的网格,我想在过滤器上显示项目列表。通过关注过滤器选项,我应该看到一个带有复选框的项目列表,当我点击复选框时它应该发送参数。我通过以下方式实现了这一目标
加载本地数据,我想通过加载远程数据来实现相同的目标,我该如何实现。
{
数据索引:'adjustmentTypeDescription',
文本:'Adjustment
Type',
stateId: 'adjustmentgrid_adjustmentTypeDescription',
筛选: {
类型:'list',
标签字段:'name',
数据索引:'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);
}
}*/
})
但没用 我如何通过调用服务和加载远程数据来实现这一点。
设置
autoLoad
: true删除
reader
配置对象。由于您使用的是 ArrayStore,因此不需要这样做。并且数组数据是位置数据,因此不使用rootProperty
。检查您是否正确定义了模型字段。
应该可以。