【发布时间】:2012-12-21 11:06:23
【问题描述】:
我有一个带有 JsonStore 和 queryMode: 'remote' 的 ExtJS 4.1 组合框,具有分页和过滤功能,例如:
... 查询模式:'远程', 允许空白:真, 强制选择:真, 自动选择:假, 页面大小:25, 预输入:真, minChars: 2, ...当我在此组合框中加载带有保存值的表单时,我加载存储并将保存的值作为查询(过滤)参数传递,以确保所选值肯定在返回的记录中,然后我将该值设置为组合选择值,如下所示:
mycombo.getStore().load({ 参数:{ 查询:显示字段 }, 范围: { 领域:组合, 值字段:值字段, 显示字段:显示字段 }, 回调:函数(记录,操作,成功){ this.field.setValue(this.valueField); } });到目前为止,一切都很好,以上工作正常。问题是,如果用户然后单击下拉箭头为组合选择另一个值,则加载商店的第一页,擦除所有先前选择的值,即使没有选择,先前选择的值也会丢失.
这个问题很笼统,和这个问题很相似: ExtJS paged combo with remote JSON store. Display selected value with paging 可以总结如下:
在带有远程存储和分页的 ExtJS 组合框中,当加载的页面发生变化时,选定的值会丢失。
我尝试为商店设置clearOnPageLoad: false,但是每次加载新页面时,记录都会附加到列表的末尾。我本来希望这个参数能够缓存加载的页面,并在来回移动时仍然向我显示正确的页面。
那么,关于如何在页面之间移动时保持所选值的任何想法?我想我可以手动创建一个包含所选值的记录,并在每次加载页面时将其附加到存储中,直到选择一个新值为止,但这对于如此基本的东西来说听起来太费力了。
【问题讨论】: