2010-11-15 100 views
0

我是extJS的新手,並試圖實現以下功能:Ext JS Dependent combo box

我有兩個選擇下拉菜單,使用extJS進行轉換。我怎樣才能確保如果選擇了一個組合框中的值,另一個值應該設置回某個默認值?

謝謝。

編輯:代碼至今:

Ext.onReady(function(){ 

var converted = new Ext.form.ComboBox({ 

    typeAhead: true, 
    triggerAction: 'all', 
    transform:'id_Select1', 
    width:600, 
    forceSelection:true, 
    emptyText:'Select' 

}); 

var convertedCdr = new Ext.form.ComboBox({ 
    typeAhead: true, 
    triggerAction: 'all', 
    transform:'id_select2', 
    width:600, 
    forceSelection:true, 
    emptyText:'Select' 
}); 
}); 

我使用ColdFusion查詢數據庫和填充下拉菜單:

<cfquery name="getData1" datasource="abc"> 
    SELECT * FROM table1 
</cfquery> 

<cfquery name="getData2" datasource="abc"> 
    SELECT * FROM table2 
</cfquery> 

<select name="select1" id="select1"> 
    <cfoutput query="getData1"> 
     <option value="#getData1.Id#">#getData1.name#</option> 
    </cfoutput> 
</select> 

<select name="select2" id="select1"> 
    <cfoutput query="getData2"> 
     <option value="#getData2.Id#">#getData2.name#</option> 
    </cfoutput> 
</select> 

回答

3

編輯 - 我沒有使用CFM .. 。你需要弄清楚如何使用數據存儲加載你的CF來使用這種技術。

您需要在組合中添加偵聽select事件:

xtype: 'combo', 
id : 'firstComboID', 
listeners: { 
    select: function(combo, record, index) { 
    var selVal = Ext.getCmp('firstComboID').getValue(); 
    var secondCombo = Ext.getCmp('secondComboID'); 
    secondCombo.store.reload({params: {yourParameterName: selVal}}); 
} 

基本上你在這裏做以下幾點:

  1. 在第一個組合
  2. 獲取選定的值
  3. 獲取對第二個組合的數據存儲的引用
  4. 使用第一個com中的選定值重新加載第二個組合框的存儲博
+0

這裏是我到現在爲止 'Ext.onReady(函數(){VAR轉換=新Ext.form.ComboBox({預輸入代碼:真實,triggerAction: '全部',轉變:「id_Select1 ',width:600,forceSelection:true,emptyText:'Select'}}); var convertedCdr = new Ext.form.ComboBox({typeAhead:true,triggerAction:'all',transform:'id_select2',width:600,forceSelection:true,emptyText:'Select'}); }); 我有兩個選擇下拉填充從數據庫:不知道如果combo.store會在我的情況下工作? – DG3 2010-11-15 18:39:56

+0

您可以使用所見即所得的編輯器中的代碼格式編輯您的問題與源代碼嗎? 你的組合框從哪裏獲取他們的數據?我沒有看到任何配置選項。 – 2010-11-15 18:58:49

+0

我用我的代碼編輯了我最初的問題。謝謝。 – DG3 2010-11-15 19:05:16