【问题标题】:Extjs 5.0 grid paging with static data带有静态数据的 Extjs 5.0 网格分页
【发布时间】:2014-11-13 18:06:06
【问题描述】:

分页不适用于我的网格。有人可以让我知道为什么。我正在使用通过从控制器读取 xml 获得的静态数据。我想每页显示 10 条记录。

模型.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);
            }
        });

    }
    });

【问题讨论】:

    标签: pagination grid extjs5 static-data


    【解决方案1】:

    您应该将代理设置为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/

    【讨论】:

    • 我有一个问题。如果我想通过使用 grid.reconfigure() 动态添加列及其数据来实现相同的目的,我该怎么做
    • 我的意思是假设网格列和模型字段是使用 grid.reconfigure() 动态添加的,如何实现分页
    猜你喜欢
    • 2014-05-17
    • 1970-01-01
    • 2015-07-24
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    相关资源
    最近更新 更多