0

グリッドでページネーションが機能しません。誰かが理由を教えてください。コントローラーからxmlを読み取って取得した静的データを利用しています。1 ページに 10 件のレコードを表示したい。

Model.js

Ext.define('Mymodel.model.settingModel', {
    extend: 'Ext.data.Model'
});    

Store.js

Ext.define('Mymodel.store.settingStore', {
    extend: 'Ext.data.Store',
    requires:['Mymodel.model.settingModel'],
    model: 'Mymodel.model.settingModel',
    pageSize:10,
     lastOptions: {params: {start: 0, limit: 10}}
 });

View.js

Ext.define('Mymodel.view.graphPanel', {
    extend: 'Ext.grid.Panel',
    layout:'border',
    alias: 'widget.graphPanel',
    name:'graphPanel',
    title: 'Tests',
    store: 'Mymodel.store.settingStore',
    pageSize:10,
    dockedItems: [{
        xtype: 'pagingtoolbar',
        store: 'Mymodel.store.settingStore',   // same store GridPanel is using
        dock: 'bottom',
        pageSize: 10,
        displayInfo: true
    }]
 });

Controller.js

Ext.define('Mymodel.controller.myController', {
extend:'Ext.app.Controller',
models:['Mymodel.model.settingModel'],
stores:['Mymodel.store.settingStore'],
init: function() {
Ext.Ajax.request({
            url: 'Sample.xml',
            success: function(response, opts) {
                var txt = response.responseText;
                parser=new DOMParser();
                xmlDoc=parser.parseFromString(txt,"text/xml");

                // I now build the modelField Array, Data Array and column array based on the xml      
                got and give it to the stores.

                var store = Ext.data.StoreManager.lookup('Mymodel.store.settingStore');
                store.setFields(modelfieldArr);
                store.setData(completeDataArr);
                store.setPageSize(10);
                store.load({
                  params: {
                    start: 0,
                    limit: 10
                 }
                 });

                var gridview = Ext.ComponentQuery.query('graphPanel')[0];
                gridview.reconfigure(store,columnarr);
            }
        });

    }
    });
4

1 に答える 1

0

プロキシをmemoryに設定し、 を設定する必要がありますenablePaging: true

Ext.define('Mymodel.store.settingStore', {
    extend: 'Ext.data.Store',
    config: {
        proxy: {
            type: 'memory',
            enablePaging: true,
            reader: 'array'
        }
    },
    requires: ['Mymodel.model.settingModel'],
    model: 'Mymodel.model.settingModel',
    pageSize: 10
});

データをロードするには、次のコードを使用します。

store.getProxy().setData(data);
store.read();

例: http://jsfiddle.net/z2x074n0/3/

于 2014-09-21T08:59:41.190 に答える