5

我在 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
},

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

4

2 回答 2

9

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

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

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

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

这是小提琴中的一个例子

于 2013-07-12T20:18:52.373 回答
0

尝试这个:

Ext.getCmp('combo').setValue('1' or '2');
于 2013-07-12T09:58:32.790 回答