在setValue()之后加载商店时,最终显示的是valueField。商店加载完毕后,我们单击下拉列表,正确的项目将突出显示。但是输入字段本身不会使用displayField值更新。
我们如何刷新组合框的输入元素以反映所选项目的显示字段?
答案 0 :(得分:1)
将setValue()
放入商店加载的回调函数中。假设combo
是组合框,您的代码应该像这样。
combo.store.load({
callback: function (rec) {
combo.setValue(value);
}
});
答案 1 :(得分:0)
我建议在使用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