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