0

我无法让我的网格与分页一起使用。这是我的代码(此代码在用户在 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 };
            }
        }
    }
});
4

2 回答 2

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);
于 2013-03-14T13:46:47.287 回答
0

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

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

更新

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

var store = Ext.create('App.store.vo.Posts', {
    pageSize: 10
于 2013-03-13T13:14:55.240 回答