gpt4 book ai didi

ExtJs 组合在商店页面加载时丢失选定的值

转载 作者:行者123 更新时间:2023-12-04 23:25:01 25 4
gpt4 key购买 nike

我有一个带有 JsonStore 和 queryMode: 'remote' 的 ExtJS 4.1 组合框,带有分页和过滤功能,如下所示:

...
查询模式:'远程',
允许空白:真,
forceSelection: 真,
自动选择:假,
页面大小:25,
提前输入:真,
最小字符:2,
...

当我在这个组合框中使用保存的值加载我的表单时,我加载存储将保存的值作为查询(过滤)参数传递,以确保所选值肯定在返回的记录中,然后我设置该值作为组合选择值,如下所示:

mycombo.getStore().load({
参数:{
查询:显示字段
},
范围: {
领域:组合,
值字段:值字段,
显示场:显示场
},
回调:函数(记录,操作,成功){
this.field.setValue(this.valueField);
}
});

到目前为止,一切都很好,上述工作正常。问题是,如果用户然后单击下拉箭头为组合选择另一个值,则加载商店的第一页,删除所有先前选择的值,即使未选择任何值,先前选择的值也会丢失.

这个问题是通用的,与这个问题非常相似:
ExtJS paged combo with remote JSON store. Display selected value with paging
并且可以概括为:

在带有远程存储和分页的 ExtJS 组合框中,当加载的页面更改时,选定的值会丢失。

我试过设置 clearOnPageLoad: false对于商店,但是每次加载新页面时,记录都会附加到列表的末尾。我本来希望这个参数缓存加载的页面,并在来回移动时仍然显示正确的页面。

那么,关于如何在页面之间移动时保持所选值的任何想法?我想我可以手动创建一个带有选定值的记录,并在每次加载页面时将其附加到存储中,直到选择了一个新值,但这对于如此基本的东西来说听起来太费力了。

最佳答案

我们最终联系了 Sencha 支持,因为我们有付费许可证。这是我们得到的答复:


Ext.override(Ext.form.field.ComboBox, {
onLoad: function() {
var me = this,
value = me.value;

if (me.ignoreSelection > 0) {
--me.ignoreSelection;
}

if (me.rawQuery) {
me.rawQuery = false;
me.syncSelection();
if (me.picker && !me.picker.getSelectionModel().hasSelection()) {
me.doAutoSelect();
}
}

else {

if (me.value || me.value === 0) {
if (me.pageSize === 0) { // added for paging; do not execute on page change
me.setValue(me.value);
}
} else {


if (me.store.getCount()) {
me.doAutoSelect();
} else {

me.setValue(me.value);
}
}
}
}
});

关于ExtJs 组合在商店页面加载时丢失选定的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com