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

时间:2013-07-12 09:34:52

标签: 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
},

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

设置组合框的值

2 个答案:

答案 0 :(得分:9)

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

Ext.ComponentQuery.query('#combo')[0].setValue('2');
  

setValue(value):Ext.form.field.Field 设置指定的值   进入该领域。对于每个值,如果在商店中找到记录   匹配基于valueField,然后该记录的displayField将   在现场显示。如果没有找到匹配,那么   valueNotFoundText配置选项已定义,那将是   显示为默认字段文本。否则将是空白值   显示,虽然值仍将设置。

listeners:{
    scope: this,
    afterRender: function(me){
        me.setValue('1');   
    }
}

这是小提琴中的componentQuery

答案 1 :(得分:0)

试试这个:

Ext.getCmp('combo').setValue('1' or '2');