ExtJS 4 分页与本地存储

ExtJS 4 pagination with local store

本文关键字:存储 分页 ExtJS      更新时间:2023-09-26

我有一个使用本地存储的网格,它是用数组创建的。我尝试使用此解决方案:自定义组件上的分页工具栏查询本地数据存储但它似乎不起作用。

我的代码:

    var myData = [];
    //... fill myData
    var store = Ext.create('Ext.data.ArrayStore', {
        fields: fields,
        data: myData,
        pageSize: 10,
        proxy: {
            type: 'pagingmemory'
        }
    });

    // create the Grid
    var table = Ext.create('Ext.grid.Panel', {
        id: "reportTable",
        store: store,
        columnLines: true,
        columns: columns,
        viewConfig: {
            stripeRows: true
        },
        dockedItems: [{
            xtype: 'pagingtoolbar',
            store: store,
            dock: 'bottom',
            displayInfo: true
        }]
    });

如果没有这部分代码,将显示网格,但分页不起作用。有了它,整个网格根本不会出现。

    proxy: {
        type: 'pagingmemory'
    }

可能是什么问题?

最有可能的是,问题在于 PagingMemoryProxy.js 未加载。确保你显式加载了这个脚本(因为这是"示例"的一部分,它不是ext-all的一部分)你可以在<extjs folder>'examples'ux'data'PagingMemoryProxy.js下找到这个


Ext.Loader.setConfig({
  enabled: true
});
Ext.Loader.setPath('Ext.ux', 'examples/ux');
Ext.require('Ext.ux.data.PagingMemoryProxy');

在某些 ExtJS 版本(即 4.2.2)中,pagingmemory代理的使用是废弃的。

请改用具有enablePaging配置的 memory 代理:

proxy: {
    type: 'memory',
    enablePaging: true,
}

查看 ExtJS 版本的文档,查看您的版本中是否启用了此配置。