当我尝试仅显示五行时,分页工具栏显示“显示1-5 [我在db中获得了多少项目]”,问题是网格实际上显示了整个数据库,即使它显示它显示只是5项。这是我的商店:
var viewOrder = Ext.create('Ext.data.Store', {
model : 'orderModel',
pageSize: 5,
proxy : new Ext.data.HttpProxy({
type : 'ajax',
url : 'allOrderJson',
method : 'GET',
reader : {
type : 'json',
root : 'jsonArray',
totalProperty : 'total'
}
}),
autoLoad: false,
});
模特:
Ext.regModel('orderModel', {
fields : [ {
name : 'order_number',
type : 'string'
}, {
name : 'status',
type : 'string'
}, {
name : 'time_of_delivery',
type : 'string'
}, {
name : 'last_edited',
type : 'string'
} ]
});
在创建网格之前,我加载了商店:
viewOrder.load({
params : {
start : 0,
limit : 5,
}
});
我的网格:
xtype : 'grid',
id : 'incompleteorders',
title : 'outstanding orders',
store : viewOrder,
columns : [ {
text : 'order number',
dataIndex : 'order_number',
}, {
text : 'status',
dataIndex : 'status',
}, {
text : 'delivery date',
dataIndex : 'time_of_delivery',
}, {
text : 'last edited',
dataIndex : 'last_edited',
}, ],
dockedItems : [ {
xtype : 'pagingtoolbar',
pageSize : 5,
store : viewOrder,
dock : 'bottom',
displayInfo : true,
emptyMsg : 'No data to display',
} ]
你能看出我做错了什么吗?我试着遵循sencha文档,但显然这不能正常工作。
答案 0 :(得分:1)
当请求被发送到服务器5个项目时,您是否只返回它请求的5个项目?您可以在服务器上进行适当的过滤。
请在此处查看totalProperty选项:http://docs.sencha.com/ext-js/4-0/#/api/Ext.data.reader.Json
totalProperty指的是响应中包含记录总数的属性。它默认为total,因此您的响应应该类似于:
{
"total": 20,
"records": [{
"a": "foo"
}]
}
这样做你还需要在阅读器上适当地设置root属性,在上面的例子中它将是“record”。