【问题标题】:ExtJS Combobox ArrayExtJS 组合框数组
【发布时间】:2012-01-11 16:26:24
【问题描述】:

我想用以下数组创建一个组合框:

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

问题是我希望第一个元素(有时是最后一个元素)成为组合框的默认值。我找不到如何成功地做到这一点。

非常感谢,如有重复,请见谅。

编辑

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});

这是使下拉列表中的选项>,=,,!,

有什么想法吗?

【问题讨论】:

    标签: arrays extjs combobox default-value


    【解决方案1】:

    确保在组合框配置中设置了 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]);
    

    【讨论】:

      【解决方案2】:

      使用组合框的 setValue 方法。在这种情况下,显示和值是相同的,因此您只需传入数组值即可:

      comboBox.setValue(operators[0]); 
      

      【讨论】:

      • 似乎当我这样做时,operators[0] 是列表中唯一的一个。
      • 在组合框的声明中,您必须将数组指定为存储的“数据”元素: var combo = new Ext.form.ComboBox({ xtype: 'combo', mode: ' local', store: new Ext.data.ArrayStore({ id: 0, fields: [ 'value' ], data: operator }), valueField: 'value', displayField: 'value' });
      • 您需要像我在评论中所说的那样将商店初始化为 ArrayStore。
      猜你喜欢
      • 2011-08-19
      • 1970-01-01
      • 2012-10-10
      • 2012-06-29
      • 2012-06-20
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多