Скажем, у меня есть магазин:ExtJS: Alter магазин PAGESIZE
Ext.define('MyApp.store.MyTestStore', {
extend: 'Ext.data.Store',
alias: 'store.MyTestStore',
requires: [
'MyApp.model.MyTestModel'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: true,
autoSync: true,
model: 'MyApp.model.MyTestModel',
remoteFilter: true,
remoteSort: true,
storeId: 'MyTestStore',
buffered: true,
pageSize: 100,
listeners: {
load: {
fn: me.onStoreLoad,
scope: me
},
beforeload: {
fn: me.onStoreBeforeLoad,
scope: me
}
}
}, cfg)]);
},
onStoreLoad: function(store, records, successful, eOpts) {
console.log('load', records.length);
},
onStoreBeforeLoad: function(store, operation, eOpts) {
console.log('beforeload',operation);
}
});
Как вы можете видеть изначально я загрузить его с PAGESIZE: 100, который идеально подходит для того, когда я загружаю этот магазин первоначально, но позже I хочу, чтобы иметь возможность загрузить все это, иначе я хочу, чтобы иметь возможность изменять pageSize. Я пробовал следующее:
Ext.getStore('MyTestStore').reload({params:{start:0, limit:50000}});
Ext.getStore('MyTestStore').reload({start:0, limit:50000, page:1, addRecords:true});
Но, похоже, это не работало. Я полагал, что это было, очевидно, привести к тому PAGESIZE еще за 100. Так что я пошел и обновил магазин на лету:
Ext.getStore('MyTestStore').lastPageSize = 50000;
Ext.getStore('MyTestStore').pageSize = 50000;
Ext.getStore('MyTestStore').pageMap.pageSize = 50000;
Теперь, когда я console.log (Ext.getStore («MyTestStore»)) всё показывает но я все еще получаю только 100 записей. Я посмотрел на код, возвращающийся с сервера, и я правильно получаю каждую запись, но когда функция «onload» работает над числом записей, она остается на уровне 100. Есть ли способ изменить ее и заставить ее изменить ее собственную страницу?
Edit (Дополнительная информация):
Так другая странная часть, что, когда я делаю следующее:
Ext.getStore('MyTestStore').reload({start:0, limit:50000, page:1, addRecords:true, callback : function(r, options, success) {
console.log(r.length,success)
}});
я вернусь:
load 100
6362 true
в моей консоли. Первая строка - из функции onStoreLoad, а вторая - из моей функции перезагрузки. Поэтому, очевидно, я возвращаю все свои записи, но где-то большинство из них блокируются.