我在使用combobox从数据库中选择项目时遇到了一些问题。 由于加载了100多个项目,我使用组合框底部的分页工具栏。 现在,如果页面大小设置为5或50,则分页工具栏显示第1页的20或1的2,具体取决于pagesize,但是combobox显示所有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>'
)
}
答案 0 :(得分:2)
当请求加载商店时,它将传递值为5的pageSize查询参数。
但是,在返回结果时,服务器端服务需要考虑此参数。
编辑:以下是分页组合框的示例:http://docs.sencha.com/extjs/4.1.3/#!/example/form/forum-search.html
如果您在Web开发控制台上打开网络选项卡,您将看到触发的请求,您可以查看查询参数。您可以根据需要发送其他内容,但这对于基本分页来说应该足够了。
以下是发送的查询参数:
limit - 由“pageSize”参数设置(默认值为25)
start - 要返回的第一条记录(从0开始,使用工具栏上的上一个/下一个按钮以pageSize递增)
page - 我们所在的页面(从1开始,使用工具栏上的上一个/下一个按钮递减/递增1)
查询 - 组合框中的文本。
编辑2: 您还应该在服务器的响应中返回“totalProperty”,其中包含结果总数。这将适当地更新工具栏(例如,您在y的第x页)。默认情况下,期望的totalProperty是“total”。当您查看提供的示例中的代码时,您可以看到这一点。