ExtJS 4:存储数据未填充存储加载回调函数中的数据
Posted
技术标签:
【中文标题】ExtJS 4:存储数据未填充存储加载回调函数中的数据【英文标题】:ExtJS 4: Store data not populated with data inside store load callback function 【发布时间】:2014-09-16 15:03:53 【问题描述】:为什么将records.length设置为大于0的数字,而store.data.length却等于0?我基本上是在尝试在回调中引用我的商店,以便在我将数据添加到表单之前,我的网格有数据。但是由于某种原因,商店数据不存在。如果您有更好的方法来实现相同的最终结果,我愿意将其更改为您的建议。本质上,每个网格都是基于此代码的包装循环中的不同过滤器动态构建的。
var p = item.get('p');
var store = Ext.create('App.store.example.MyStore');
store.clearFilter(true);
store.filter('s', s);
store.filter('p', p);
store.load(
callback: function(records, operation, success)
alert(store.data.length);
alert(records.length);
var grid = Ext.create('App.view.example.MyGrid',
store: store
);
formPanel.add(
Ext.create('Ext.form.FieldSet',
id: p + '_TOP',
title: p,
width: '100%',
anchor: '100%',
layout:
type: 'vbox',
align: 'stretch'
,
items: [myGrid]
)
);
formPanel.doLayout();
);
formPanel.doLayout();
);
【问题讨论】:
【参考方案1】:我想如果我只是将“remoteFilters”设置为 true,它会起作用的。
但我简化了一点。我在商店创建配置中设置了过滤器。并且必须在我的模型中设置两个配置才能使其正常工作。这样,我不必手动设置过滤器或执行加载(因为我有商店自动加载它)。
查看代码:
var store = Ext.create('App.store.example.MyStore',
filters: [
property: 's',
value: s
,
property: 'p',
value: p
]
);
var grid = Ext.create('App.view.example.MyGrid',
store: store
);
formPanel.add(
Ext.create('Ext.form.FieldSet',
id: p + '_TOP',
title: p,
width: '100%',
anchor: '100%',
layout:
type: 'vbox',
align: 'stretch'
,
items: [grid]
)
);
存储配置:
autoLoad: true,
remoteFilter: true,
【讨论】:
以上是关于ExtJS 4:存储数据未填充存储加载回调函数中的数据的主要内容,如果未能解决你的问题,请参考以下文章