0

ExtJS 4.2 の使用 - 結果のセット全体を JSON 形式 (loadRawData を使用) で格納する AJAX 呼び出しがあります。一度にグリッドに表示される結果の数を制限する必要があります。最終的な目標は、クライアント側のページングを実装することです。私は pagingmemoryproxy を使ってみましたが、あまりうまくいきませんでした。

Ext.define('TestApp.view.TestGrid' , {
extend: 'Ext.grid.Panel',
alias: 'widget.testgrid',

requires:[
    'TestApp.store.TestStore'
],

initComponent: function() {
    var me = this;
    this.store = Ext.create('Ext.data.Store', {
        model: 'TestApp.model.TestModel',
        proxy: {
            type: 'memory',             
            reader: {
                 type: 'json'
            },
        },  
        pageSize: 20
    });

// set the maxRows parameter based on the store's page size
    this.maxRows = this.store.pageSize;
    this.columns = this.buildColumns();
    this.bbar = Ext.create('Ext.PagingToolbar', {
        itemId: 'pagingToolbar',
        store: this.store,   
        dock: 'bottom',
        displayInfo: true
    });
    this.callParent();
}

私のコントローラーは次のAJAX呼び出しを使用します

Ext.Ajax.request({
        url: '/testing/test',
        method: "POST",
        jsonData : requestParams,
        timeout: 120000,    
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        success: function(response) {
            var resp = Ext.decode(response.responseText);
            var testStore = testGrid.getStore();

            var numResults = response.getAllResponseHeaders().resultlength;

            // this successfully loads results into store and populates grid 
            // with pagingtoolbar displaying page 0 of 0
            testStore.loadRawData(resp);  


            //testStore.loadPage(1);

        },
4

1 に答える 1

0

ページングツールバーをグリッドに追加する必要があります。

基本的に、あなたがしなければならないことは3つあります:

1) グリッドにページング ツールバーを追加します。 2) グリッドで使用されるストアには「pageSize」属性を指定する必要があります。 3) loadrawdata を使用する場合は、ロード後に使用してツールバーを更新する必要があります。そのために loadPage 関数を使用します。

次のトピックから始めましょう: Ext-js 4.2 で PagingToolbar を正しく管理するには?

于 2013-10-03T14:49:01.723 に答える