如何将选定的 extjs 组合值设置为另一个组合框

Posted

技术标签:

【中文标题】如何将选定的 extjs 组合值设置为另一个组合框【英文标题】:How to set selected extjs combo value to another combobox 【发布时间】:2013-09-26 13:34:00 【问题描述】:

我有两个Extjs Comboboxes

var cb1 = new Ext.form.ComboBox(
    fieldLabel: 'Combobox1',
    width: 100,
    listeners:
         scope: this,
         'select': this.reset
    
);
var cb2 = new Ext.form.ComboBox(
    fieldLabel: 'Combobox2',
    width: 100,
    baseParams:  loadInitial: true, cb1Val: this.cb1.getValue()  // Here I want to get selected value of cb1
    listeners:
         scope: this,
         'select': this.reset
    
);

我正在使用this.cb1.getValue() 来获取cb1 的选定值,但我在这里得到的是空白值。

谁能告诉我我在这里做错了什么。

【问题讨论】:

【参考方案1】:

我认为组合 2 无法获得组合 1 的值,因为当您在 baseParams 中调用它的值时它没有加载。我会在你的情况下推荐这种方法 -

    var cb1 = new Ext.form.ComboBox(
        fieldLabel: 'Combobox1',
        width: 100,
        **id : "combo_1",**  // ID property added 
        listeners:
             scope: this,
             'select': this.reset
    );

// Previous code 
...

    listeners : 
        select : function(combo, rec, rind) 
             var combo2_val = Ext.getCmp("id_of_combo_1").getValue();
    

这里,在第二个组合的选择渲染器上,第一个的值应该设置在combo2_val中。更准确的说,你也可以给combo 1设置默认值,不使用ID,直接使用变量cb1即可。

希望这能给你一个方法。

【讨论】:

但是我想在加载 cb2 时将 cb1 的选定值传递给 cb2 的基本参数。上述方法将其设置在 cb2 的 select listener 中。

以上是关于如何将选定的 extjs 组合值设置为另一个组合框的主要内容,如果未能解决你的问题,请参考以下文章

extjs:加载时如何设置组合框的值

如果名称中没有 [],ExtJS 组合框仅从 JSON 设置值

Extjs:如何从控制器设置额外参数以在商店中用于填充组合框值。想要将额外参数值设置为 abc.1-cond1、abc.2-con2

在 ExtJS 中获取组合框的值

Extjs 3.4 ComboBox:首次加载组合框时如何预选一条记录?

组合框extjs的设置值