【发布时间】:2020-01-13 14:36:55
【问题描述】:
当在 setValue() 之后加载 store 时,我们最终会显示 valueField。加载商店并单击下拉菜单后,将突出显示正确的项目;但输入字段本身不会使用 displayField 值更新。
我们如何刷新组合框的输入元素以反映选中项显示字段?
【问题讨论】:
标签: extjs
当在 setValue() 之后加载 store 时,我们最终会显示 valueField。加载商店并单击下拉菜单后,将突出显示正确的项目;但输入字段本身不会使用 displayField 值更新。
我们如何刷新组合框的输入元素以反映选中项显示字段?
【问题讨论】:
标签: extjs
将您的setValue() 放入商店加载的回调函数中。假设combo 是组合框,你的代码应该是这样的。
combo.store.load({
callback: function (rec) {
combo.setValue(value);
}
});
【讨论】:
我建议在使用 setValue() 之前使用 clearValue() 选项。这将删除组合框之前的基础值。但是,如果您正在设置组合框的值,存储尚未加载,并且它是一个远程组合框,我建议您先将记录添加到组合框的存储中,然后将值设置为该记录。再次加载商店后,商店将被清除,但您仍将拥有您的第一个值。
combobox.getStore().insert(0, {
id: 1,
name: 'displayField'
});
combobox.setValue(1); //if your valueField is id
上述方法的文档:https://docs.sencha.com/extjs/6.6.0/classic/Ext.form.field.ComboBox.html https://docs.sencha.com/extjs/6.6.0/classic/Ext.data.Store.html
【讨论】: