ExtJS4 - 网格存储pageSize

时间:2011-11-20 23:09:51

标签: extjs4

我正在尝试将商店的pageSize限制为1.我在网格中有10个项目,而分页机制正确显示10个中的1个,10个中的2个等,网格仍然显示所有10个项目。我也尝试在json中将“total”属性返回到1,但这仍然不起作用。有什么想法吗?

文档中的示例不是非常有用,因为它显示了源代码,但实时预览为空。

        var photos = new Ext.data.Store({
            model: 'Photos',
            autoLoad: true,
            pageSize: 1
        });

        var photosGrid = Ext.create('Ext.grid.Panel', {
            id: 'PhotoGrid',
            store: photos,
            columns: [
                       { text: "Filename", width: 200, dataIndex: 'filename' }
                    ],
            dockedItems: [{
                xtype: 'pagingtoolbar',
                store: photos,
                dock: 'bottom',
                displayInfo: true
            }],
            region: 'center',
            border: 0,
            overCls: 'row-pointer'
        });

2 个答案:

答案 0 :(得分:1)

嘿,你的问题是你可能正在返回你的json中的所有10个项目,页面支持你必须自己实现,所有的分页正在做的是调用商店的负载,具有特定的参数,如页面的限制和页面开始索引。您必须在后端使用这些参数一次发送一个项目。 Chers mate。

修改

//this is the model we will be using in the store
Ext.define('Page', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'id',    type: 'int'},
    ]
});

var data = null;
var store = null;
Ext.Ajax.request({
    url: 'someurl',
    success: function(result){
        data = Ext.decode(result.responseText);
        store = Ext.create('Ext.data.Store', {
            autoLoad: true,
            model: 'Page',
            pageSize: 1,
            data : data,
            proxy: {
                type: 'memory',
                reader: {
                  type: 'json',
                  root: 'pages'//this has to be as the root from your json
                }
            }
        }); 
    }
});

答案 1 :(得分:0)

在脚本中格式化json是一个查询问题。 当你使用带有pageSize的extjs时,它会发送带参数的查询(page& limit,我记得)。 在服务器端脚本中,您必须检查它们是否存在,如果存在,请更改查询以添加limit子句(或其他数据库中的等效项)。