如何从extjs控制器设置组合框的值

use*_*857 5 combobox controller extjs4

我在extjs4工作.我有代码组合框 -

{
margin:'7 6 5 5',
xtype:'combobox',
fieldLabel:'Language',
name:'language',
id:'combo',
width:190,
allowBlank:false,
emptyText: '--Select language--',
labelWidth: 60,
store: new Ext.data.ArrayStore({
    fields: ['id','value'],
    data: [
        ['1','Marathi'],
        ['2','English']
    ]
}),
queryMode: 'local',
valueField:'id',
displayField:'value',
editable:false
},
Run Code Online (Sandbox Code Playgroud)

根据我的功能,我想将combobox的值默认设置为用户选择的选项.那么如何从控制器中设置组合框的值

Dav*_*bak 9

要选择默认值,您可以使用事件侦听器.渲染了组合框后,您可以使用Ext.form.field.Field中的setValue()方法 设置所需的值,如果需要按需选择组合框值,可以使用它然后使用setValue()甚至更好地设置itemId而不是id并使用componentQuery来获取组合框和设置值:Ext.getCmp('combo')

Ext.ComponentQuery.query('#combo')[0].setValue('2');
Run Code Online (Sandbox Code Playgroud)

setValue(value):Ext.form.field.Field将指定的值设置到字段中.对于每个值,如果在商店中找到基于valueField匹配的记录,则该记录的displayField将显示在该字段中.如果未找到匹配项,并且已定义valueNotFoundText配置选项,则该选项将显示为默认字段文本.否则将显示空白值,但仍将设置该值.

listeners:{
    scope: this,
    afterRender: function(me){
        me.setValue('1');   
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个小提琴的例子