为什么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();
});
答案 0 :(得分:0)
我想如果我要设置" remoteFilters"如果真的,那就行了。
但我简化了一下。我在商店创建配置中设置了过滤器。并且必须在我的模型中设置两个配置才能使其工作。这样,我没有必要手动设置过滤器,或者执行加载(因为我有商店autoLoad它)。
查看代码:
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,