1

私は店を持っているとしましょう:

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 でロードしますが、後ですべてをロードできるようにしたい、別名 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 のままです。それを変更して、それ自体のページサイズを強制的に変更する方法はありますか?

編集(追加情報):

したがって、別の奇妙な部分は、次のことを行うときです。

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

私のコンソールで。1行目は「onStoreLoad」関数からのもので、2行目はリロード関数からのものです。明らかに、私はすべての記録を取り戻していますが、どこかでそれらのほとんどがブロックされています。

4

2 に答える 2

0

ストア構成から pageSize を変更します。次のページに nextPage() を呼び出すことができます。

各ページの番号レコードを変更する場合は、loadPage を pagenumber とオプションとともに使用できます。このリンクを参照してください。例で使用したものと同じオプションを使用できます。

これを試して、私に知らせてください。

于 2014-01-27T11:08:08.410 に答える