2013-09-26 168 views
1

有兩個Extjs Comboboxes我如何選擇的ExtJS的組合值設置爲另一個組合框

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選擇的價值,但我在這裏獲得空白值。

有誰能告訴我我在做什麼錯在這裏。

回答

0

我認爲combo 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設置。更確切地說,您還可以爲組合1設置默認值。而不是使用ID,您可以直接直接使用變量cb1。

希望這應該給你一個方法。

+0

但是我想在cb2加載時將選定的cb1值傳遞給cb2的基本參數。上面的方法將它設置爲cb2的選擇監聽器。 –

+0

你可以在加載監聽器中加入這段代碼嗎? – Ved

相關問題