2010-11-15 20 views
0

Je suis nouveau à ExtJS, et d'essayer de mettre en œuvre les fonctionnalités suivantes:Ext JS zone de liste déroulante à charge

J'ai deux menus liste déroulante, sélectionnez, transformé en utilisant ExtJS. Comment puis-je m'assurer que si une valeur dans une zone de liste déroulante est sélectionnée, l'autre valeur doit être remise à une valeur par défaut?

Merci.

Modifié: Code jusqu'à présent:

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

J'utilise ColdFusion pour interroger la base de données et remplir les menus déroulants:

<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> 

Répondre

3

ÉDITÉ - Je ne l'ai pas utilisé CFM .. Vous aurez besoin de comprendre comment charger votre CF en utilisant des magasins de données pour utiliser cette technique.

Vous aurez besoin d'ajouter un écouteur pour l'événement select sur le combo:

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

Fondamentalement, vous procédez comme suit ici:

  1. obtenir la valeur sélectionnée dans le premier combo
  2. Obtention d'une référence au magasin de données du second combo
  3. Rechargez le magasin de la deuxième zone de liste déroulante à l'aide de la valeur sélectionnée dans le premier bo
+0

Voici le code que j'ai jusqu'à présent 'Ext.onReady (function() {var = new converti Ext.form.ComboBox ({typeahead: true, TriggerAction: 'all', transformer: 'id_Select1 ', width: 600, forceSelection: true, emptyText:' Sélectionnez '}}); var convertiCdr = new Ext.form.ComboBox ({typeAhead: vrai, triggerAction: 'all', transformer: 'id_select2', largeur: 600, forceSelection: true, emptyText: 'Select'}); }); J'ai deux listes déroulantes sélectionnées à partir de la base de données: Vous ne savez pas si combo.store fonctionnerait dans mon cas? – DG3

+0

Pouvez-vous modifier votre question avec votre code source en utilisant le formatage de code dans l'éditeur WYSIWYG s'il vous plaît? D'où trouvez-vous vos listes déroulantes? Je ne vois aucune option de configuration. –

+0

J'ai édité ma question initiale avec mon code. Merci. – DG3