2011-12-02 249 views
0

我想创建一个具有以下阵列的组合框:ExtJS的组合框阵列

var operators = new Array(">=",">","=~","","!=","=","<","<="); 

的问题是,我想第一个元素(有时是最后一个元素)是comboxbox的默认值。我找不到如何成功地做到这一点。

非常感谢和抱歉,如果重复。

编辑

var ops = new Array(">=",">","=~","","!=","=","<","<="); 
var operators = new Ext.data.ArrayStore({ id: 0, fields: [ 'value' ], data: ops }); 

Ext.getCmp('variablesAttributesPanel').add({xtype: 'combo',  id: variables[j].getTitle() + 'MinCombo', mode: 'local', valueField: 'value', displayField: 'value', store: operators, width: 50, x: 240, y: (j * 20 + 19), editable: false, allowBlank: false}); 

这在下拉列表>,=,!制作的选项,<

任何想法?

回答

3

确保triggerAction在组合框中配置设置

triggerAction : 'all'

var operators = new Array(">=",">","=~","x","!=","=","<","<="); 

var test1 = new Ext.form.ComboBox({ 
    height:100, 
    width:100, 
    store: operators 
}); 

var test2 = new Ext.form.ComboBox({ 
    height:100, 
    width:100, 
    triggerAction: 'all', 
    store: operators 
}); 

var win=new Ext.Window({ 
    renderTo:Ext.getBody(), 
    items:[test1,test2], 
    height:300, 
    width:300, 
    title:'comboWin' 
}).show(); 

test1.setValue(operators[1]); 
test2.setValue(operators[2]); 
0

使用组合框的setValue方法。在这种情况下,显示和价值是一样的,所以你可以通过在数组值:

comboBox.setValue(operators[0]); 
+0

似乎当我这样做时,运算符[0]是列表中唯一的。 – gberg927

+0

在您的组合框声明中,您必须指定该数组作为商店的'data'元素: var combo = new Ext.form.ComboBox({xi:'combo', mode:'local', 商店:新Ext.data.ArrayStore({ ID:0, 字段: '值' ], 数据:运营商 }), valueField: '值', displayField: '值' } ); – hspain

+0

你能检查我的编辑吗?我似乎遇到了问题 – gberg927