2015-12-21 22 views
2

我正在开发extjs 6应用程序,最近发现无法使用setValue(value)方法设置ComboBox的值,当其存储区不包含记录时其中valueFiled等于value,如此处所述 http://docs.sencha.com/extjs/6.0/6.0.0-classic/#!/api/Ext.form.field.ComboBox-method-setValueEXTJS 6:当存储区为空时设置ComboBox的值

所以我的问题是有没有其他方式来更改组合框的值,当它的存储为空(或不包含与valueFiled记录等于value)?

+0

试试['select()'](http://docs.sencha.com/extjs/6.0/6.0.0-classic/#!/api/Ext.form.field.ComboBox-method-select)方法。 –

+0

我不明白...根据文档'select(combo,record,eOpts)' **至少有一个列表项被选中时触发** 我的商店中没有任何元素(它是空的)所以是项目列表...此外这种方法不用于更改值 – Mitchapp

+0

我不认为'select()'方法(不是事件)将起作用,因为在该方法刚才调用的代码中'setValue()'在内部。为什么在没有可供选择的值列表时尝试设置值?也许你可以使用'emptyText'配置来显示一个值,当没有设置? – cpastore84

回答

1

你想要setRawValue()而不是setValue()

+0

我最终使用了这种方法,但我必须检查我的商店是空的还是不包含在使用之前,'valueFiled'的记录等于'value'。 (item)&item item instanceof Ext.form.field.ComboBox && item.getStore()。getData()。length === 0){ item.setRawValue(value); } else { item.setValue(value); }' – Mitchapp

1

你认为它是错误的。请看看https://fiddle.sencha.com/#fiddle/12t4,我在那里工作没有任何问题。

请检查您是否有可能在您的组合上设置了forceSelection: true,因为这会引发您所描述的行为。

+0

实际上你的例子是错误的(与我的问题相比),只需在你的comboxBox中添加一个'valueField:'属性',你的例子就不再工作了...... https://fiddle.sencha.com /小提琴/ 12t4。 关于'forceSelection',它默认保存(false)... – Mitchapp

+0

我已经在示例中添加了'valueField:'属性'。我没有看到任何行为改变。它仍在工作。 – Alexander

+0

对不起,我给了你错误的链接,检查这个https://fiddle.sencha.com/#fiddle/12到 – Mitchapp

相关问题