私は、ExtJS 6.2、MemoryStore with Pagingを使用しており、リモートソースからデータを取得しようとしています。私がMemoryStoreを使用しているのは、リモートソースからデータを取得するためにWebSocketを使用しているからです。 表示する記録が1000個あり、ページあたり10個のアイテムを視覚化したいとします。それは私が代わりに直接ストアにロードのプロキシにデータを設定しなければならなかった仕事を得るためにExtJS 6.2 MemoryStoreでページングを使用する場合のloadPageを理解します。
function (message) {
received_data = JSON.parse(message.data);
me.store.getProxy().setData(received_data.data);
me.store.loadPage(received_data.data.page);
:私はのWebSocketからこのコールバックでの最初のページを視覚化したいときに物事は動作します。 received_data.data.page
が1の場合、すべて正常です。今私は2ページreceived_data.data
に切り替えると
{limit: 10, page: 1, start: 0, total: 1000, items: Array(10)}
問題が発生:received_data.data
は次のようになりますJSONが含まれてい
{limit: 20, page: 2, start: 10, total: 1000, items: Array(10)}
しかし、グリッドは何も表示されません。ページングツールバーに「No data to display」というメッセージが表示され、ストアが奇妙に見えます。つまり、データがないということです。 store.getData()
およびstore.getCount()
はアイテムと0を返しません。
解決策は、サーバーからすべてのデータを取得して、最後の1つを表示し、最後のページを表示するまでです。私は小さなを取得するためにページングを活かしされないため、実行可能な解決策ではありません
{limit: 20, page: 2, start: 10, total: 1000, items: Array(20)}
期待としてではなく、もちろん動作します:2ページの場合、私は、サーバーからJSONを取得することができます全体のデータセットではなく、データのチャンク。
問題は、プロキシがどのように動作しているのかということです。すなわち、page
,start
およびlimit
のパラメータを使用してストアに入れる実際のデータを計算します。私はそれがフードの下でどのように機能するかについて十分に分かっていないので、私はそれが私が望むように行動するのを苦労している。だから問題は、プロキシにストアに正しいページデータセットを取得させるにはどうすればいいですか?