我有一个网格商店,我正在使用Ext.data.Store
并加载该值。下面是我通过store.on(load)
发送请求,获取数据和加载的方法。
myGridStore: function(myXml) {
var me = this,store;
me.setLoading(true);
store = new Ext.data.Store({
proxy: new Ext.data.proxy.Ajax({
actionMethods: {
read: 'POST'
},
url: 'someUrl',
headers: {
'Accept': 'text/xml; charset=utf-8'
},
reader: {
type: 'xml',
record: 'I',
rootProperty: 'R'
},
extraParams: {
strIPXML: myXml
}
}),
sortOnLoad : true,
autoLoad: true,
remoteFilter: false,
multiSelect: true,
fields: me.fields,
});
store.on('load', function(thistore, records , successful , operation , eOpts){
me.store.loadData(thistore.data.items);
});
return store;
},
现在我想要我的商店bufferedStore
所以为此我将Ext.data.Store
更改为Ext.data.BufferedStore
但是在bufferedStore中我无法使用store.on(load)
就像我对代码进行了评论,下面是代码然后网格正在加载。但是当我第二次应用myXml
时,我无法设置数据,因为store.on(load)
无效。
myGridStore: function(myXml) {
var me = this,store;
me.setLoading(true);
store = new Ext.data.Store({
pageSize: 100,
leadingBufferZone: 100,
proxy: new Ext.data.proxy.Ajax({
actionMethods: {
read: 'POST'
},
url: 'someUrl',
headers: {
'Accept': 'text/xml; charset=utf-8'
},
reader: {
type: 'xml',
record: 'I',
rootProperty: 'R'
},
extraParams: {
strIPXML: myXml
}
}),
sortOnLoad : true,
autoLoad: true,
remoteFilter: true,
fields: me.fields,
});
/*store.on('load', function(thistore, records , successful , operation , eOpts){
me.store.loadData(thistore.data.items);
});*/
return store;
},
任何人都可以帮助我如何使它工作。如何在bufferedStore中设置数据,我可以在Ext.data.store
错误:可能无法在缓冲存储上使用LoadData - 存储是远程数据的映射
答案 0 :(得分:1)
store.load事件的ExtJS文档说:
注意:如果您使用的是缓冲存储,则应使用预取。
您是否尝试将功能移至预取事件以查看是否适用于您?
...
store.on('prefetch', function(...