ExtJs网格分页无法正常工作

时间:2013-03-13 11:40:28

标签: extjs extjs4

我无法让我的网格与分页一起工作。这是我的代码(在用户在textField控件中输入一些信息后,此代码在controller.js中执行):

    var store = Ext.create('App.store.vo.Posts', {
        autoLoad: {
            params: {
                query: textTyped,
                start: 0,
                limit: 10
            },
            callback: function (regs) {
                me.getGrid().reconfigure(store);
                me.getGrid().down('pagingtoolbar').bindStore(store);
            }
        }
    });

这是我的商店代码:

Ext.define('App.store.vo.Posts', {
    extend: 'Ext.data.Store',

    model: 'App.model.vo.Post',
    autoLoad: true,
    autoSync: false
});

网格正确填充数据,但分页已禁用。

更新:

和Post模型:

Ext.define('App.model.vo.Post', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'id', type: 'auto'},
        {name: 'text', type: 'auto'}        
    ],
    idProperty: 'id',
    proxy: {
        type: 'rest',
        url : '/posts',
        format: 'json',
        reader: {
            root: 'data',
            successProperty: 'success',
            totalProperty: 'total'
        },
        writer: {
            // wrap post params for Rails
            getRecordData: function(record) {
                return { post: record.data };
            }
        }
    }
});

2 个答案:

答案 0 :(得分:1)

我以这种方式工作:

    //set the 'query' param before load 
    var store = Ext.create('App.store.vo.Posts', {
        listeners: {
            beforeload: function(s,op, ot) {
                op.params = {
                    query: filtro
                }
            }
        }
    });


    store.load({
        callback: function (regs) {
            if (store.data.length > 0) {
                me.getGrid().getView().focus(true, 200);
                me.getGrid().getView().select(0);
            }
        },
        params: {
            query: filtro,
            field: campo,
            start: 0
        }
    });
    me.getGrid().reconfigure(store);
    me.getGrid().down('pagingtoolbar').bindStore(store);

答案 1 :(得分:0)

你应该试试这个(见Ext.data.Operation):

autoLoad: {
    start: 0,
    limit: 10,
    params: { ... },
    callback: function () { ... }
}

更新

我想知道是否需要pageSize才能进行分页工作。默认值设置为25,也许您应该根据所需的页面大小设置此属性:

var store = Ext.create('App.store.vo.Posts', {
    pageSize: 10