web-dev-qa-db-ja.com

ストアをクリアしてページングツールバーを更新するにはどうすればよいですか?

検索ボタンをクリックしてグリッドストアにさまざまなパラメータを再読み込みするときに、ページングツールバーのパラメータを"page""start""limit"にリセットする必要があります。

どうすればいいですか?

問題は、次のページにいて、新しい検索を行うときに、パラメーターpage=2start=25limit=25 dirtyがあり、代わりにこのパラメーターをリセットする必要があることです。

私のコード:

listeners: {
    click: function(){
        Ext.getCmp('GrlGio').getStore().removeAll();
        Ext.getCmp('GrlGio').store.load({
                params:{
                  mode: "RIC",
                  DataRicerca: dd,
                  Pit: Ext.getCmp('cmbPiattaforma').getValue()
                }
        });
    }
 }

ありがとう!

16
jack.cap.rooney

手動でパラメータをリセットできます

Ext.getCmp('GrlGio').getStore().getProxy().pageParam =1;
Ext.getCmp('GrlGio').getStore().getProxy().startParam =0;

次に、ストアのロードを実行します。私はそれがハードコードされているように見えることを知っていますが、それは私が見つけた唯一の解決策です...

6
nscrob

Ext 4では、 loadPage() がデータストアをリセットし、ページングツールバーを最初のページに戻すのに非常にうまく機能していることがわかりました。例:

store.loadPage(1) // note: 1-based, not 0-based
13

これを試して -

pagingToolbar.moveFirst();
5
Amol Katdare

Ext.data.storeをオーバーライドして、次の関数「resetStartParam」を定義します。

Ext.override(Ext.data.Store, {

            resetStartParam:function(){

                //get the latest store options
                var storeOptions=this.lastOptions;

                if(storeOptions!=undefined){

                    //get the param names
                    var pn = this.paramNames;

                    //get the params from options
                    var params=storeOptions.params;

                    //change the param start value to zero
                    params[pn.start] = 0;

                    //reset options params with this new params
                    storeOptions.params=params;

                    //apply this new options to store options
                    this.storeOptions(storeOptions);
                    }
                }
    });

次に、検索ボタンをクリックしてこの関数を呼び出します。

Ext.getCmp('GrlGio').getStore().resetStartParam(); 

それだけです。うまくいくはずです。

4
rst

みんなcurrentPage = 1は私のためにトリックをしました

毎回ストアをロードする前に、以下を呼び出します。ちなみに、500件の結果が得られ、キャッシュにロードされます。ページネーションはローカル用です。新しい検索の前にこれを試すことができます。

                        var store = Ext.getStore('MyStoreS');
                        store.proxy.extraParams = { employeeId : searchStr};

                        store.currentPage = 1;

                        store.load();

これが古い投稿であることは知っていますが、ペニーの仕事を追加したいと思いました。 EXTJS 4を使用していますが、同様の問題が発生しました。新しい検索を行っても、ページ番号などがリセットされませんでした。私が見つけた解決策は、ナビゲーションバーで自動的に機能するように見えますが、ストアのcurrentPage属性を使用することです。私は少し奇妙な設定をしていますが、新しい検索を行うときにthis.currentPage = 1を実行すると、問題なく動作します

4
Nigel Stirzaker

ハンドラーでこれを試してください

Ext.getCmp('gridpanel').getStore().removeAll();
Ext.getCmp('PagingToolbar').moveFirst();

この後、検索クエリを入力し、それに応じてストアを読み込みます

Ext.getCmp('gridpanel').getStore().load({params : { start : 0, limit : maxRecords, searchText : _searchText } });

それが役に立てば幸い

3
Ankur

removeAll()の後にpagingToolbar.onLoad()を呼び出すだけです。簡潔でシンプル。

3
Lawrence

これが私がページングで検索を達成した方法です。 1つの要求のみを実行し、ページングデータを更新します。

onExecuteSearch: function(){
  var params = this.getSearchForm().getForm().getFieldValues()
      , proxy = this.getSomeGrid().getStore().getProxy();

  proxy.extraParams = params;
  this.getPagingToolbar().moveFirst();
}

getFieldValues()ドキュメント: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.Basic-method-getFieldValues

プロキシ「extraParams」の詳細については、こちらをご覧ください: ExtJs4-baseParams構成プロパティを格納しますか?

2
Justin

これは正常に機能します(ページング情報を正しく更新します):

    myStore.removeAll();

    myStore.fireEvent('load', myStore, [], {});
2
piscestou

ストア/グリッド全体を印刷するには、ページサイズを500に変更する必要があり、印刷したら、グリッドを元のページサイズの25に戻します。

    // 500 records are now in the store and on the grid
    ux.core.grid.Printer.print(this.getOrderList());
    store.pageSize = this.displaySize;   // new page size is 25
    this.getPagingToolbar().doRefresh(); // equivalent of pressing a refresh button on the toolbar

トリックを行います-同じソーター/フィルター/ currentPageでストアをリロードします

1
Yuri Gridin