ExtJS4 は初めてです。プロジェクトでページング ツールバーを使用しています。
grid.getStore().removeAll()
問題は、ページング ツールバーにあります。ボタンをクリックすると、ストアが取得されます。ページング ツールバーでストアをクリアする方法は疑問です。
私を助けてください。
ありがとう、
クシャル
私はこのことを調査するのに数時間を費やしたばかりで、誰かがまだ探している場合に備えて共有したいと思いました. 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()
}]
まず、グリッドとツールバーの両方に同じストアを構成していますか?はいの場合は、grid.getStore()(myStore.removeAll()など)を使用するのではなく、ストア自体をクリアするようにしてください。
グリッドとページング ツールバーが同じストアを使用する場合、ページング ツールバーは正しく機能します。別のストアを使用する場合 (コーディング スタイルが悪い)、このページング パネルのストアの同期メソッドを呼び出して、データを同期する必要があります。