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