我在从数据库选择项目的组合框方面遇到了一些问题。由于加载了100多个项目,因此我使用组合框底部的分页工具栏。现在,如果页面大小设置为5或50,则分页工具栏将显示第1页(共20页)或第1页(共2页),具体取决于页面大小,但是组合框显示所有100个项目,只需将它们复制到下一页,就像根本没有设置页面大小一样。我尝试了几件事,但似乎没有任何效果。怎么了?
{
xtype: 'combobox',
queryMode: 'local',
valueField: 'id',
fieldLabel: 'Description SKU',
name: 'id_fk',
pageSize: 5,
width: 400,
padding: 5,
store: Ext.create('Ext.data.Store',
{
fields: ['id','key item','description'],
autoLoad: true,
pageSize: 5,
proxy:
{
type: 'ajax',
url: 'items/load',
reader:
{
type: 'json',
root: 'data'
}
}
}),
tpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div class="x-boundlist-item">{key item} - {description}</div>',
'</tpl>'),
displayTpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'{key item} - {description}',
'</tpl>'
)
}
当请求加载商店时,它将传递一个值为5的pageSize查询参数。
但是,由服务器端服务决定返回结果时是否考虑此参数。
编辑:这是分页组合框的一个示例:http://docs.sencha.com/extjs/4.1.3/#!/example/form/forum-search.html
如果您在Web开发控制台上打开“网络”标签,则会看到该请求已被触发,您可以查看查询参数。您可以根据需要发送其他邮件,但这对于基本的分页应该绰绰有余。
以下是发送的查询参数:
限制-由“ pageSize”参数设置(默认值为25)
开始-要返回的第一条记录(从0开始,并使用工具栏上的上一页/下一页按钮将pageSize递增)
页面-我们所在的页面(从1开始,使用工具栏上的上一页/下一页按钮递增1或递减1)
查询-组合框中的文本。
编辑2:您还应该在服务器的响应中返回“ totalProperty”,其中包含结果总数。这将适当地更新工具栏(例如,您位于y的第x页)。默认情况下,totalProperty预期为“总计”。当您查看提供的示例中的代码时,可以看到此信息。