1

ExtJS4 は初めてです。プロジェクトでページング ツールバーを使用しています。

grid.getStore().removeAll()

問題は、ページング ツールバーにあります。ボタンをクリックすると、ストアが取得されます。ページング ツールバーでストアをクリアする方法は疑問です。

私を助けてください。

ありがとう、
クシャル

4

3 に答える 3

1

私はこのことを調査するのに数時間を費やしたばかりで、誰かがまだ探している場合に備えて共有したいと思いました. Ext.toolbar.Paging は removeAll() メソッドで発生するストアのクリア イベントをリッスンしていないようです。私の解決策は、それをサブクラス化し、getStoreListeners をオーバーライドして onLoad 内部関数を clear イベントにバインドすることでした。ちなみにExtJS 4.1を使っています。

Ext.define('MyApp.ClearablePagingToolbar', {
    extend: 'Ext.toolbar.Paging',
    alias: 'widget.clearablepagingtoolbar',
    getStoreListeners: function () {
        var listeners = this.callParent();

        Ext.apply(listeners, {
            clear: this.onLoad
        });

        return listeners;
    }
});

次のように、グリッドで clearablepagingtoolbar を参照して使用します。

dockedItems: [{
    xtype: 'clearablepagingtoolbar',
    dock: 'bottom',
    displayInfo: true,
    store: this.getSearchResultStore()
}]
于 2013-03-26T19:01:13.463 に答える
0

まず、グリッドとツールバーの両方に同じストアを構成していますか?はいの場合は、grid.getStore()(myStore.removeAll()など)を使用するのではなく、ストア自体をクリアするようにしてください。

于 2012-05-04T08:03:25.807 に答える
0

グリッドとページング ツールバーが同じストアを使用する場合、ページング ツールバーは正しく機能します。別のストアを使用する場合 (コーディング スタイルが悪い)、このページング パネルのストアの同期メソッドを呼び出して、データを同期する必要があります。

于 2012-05-04T20:05:14.883 に答える