Comunidad de diseño web y desarrollo en internet online

combobox y combobox

Citar            
MensajeEscrito el 30 Sep 2009 08:02 pm
Amigos, alguien sabe como puedo hacer para que de acuerdo a la opción seleccionada en un combobox, me cargue otro con las opciones que le corresponden al valor del combobox 1????
En el combobox1 irían los países y de acuerdo al país seleccionado, se mostrarían las provincias o estados correspondientes a ese país. Por ejemplo si selecciono " Argentina" en el combobox2 me mostraía esto:

<mx:ComboBox x="579" y="54" width="178" useHandCursor="true" buttonMode="true" id="Cursos0">
<mx:dataProvider>
<mx:Array>
<mx:String>Provincias</mx:String>
<mx:String>Ciudad de Buenos Aires</mx:String>
<mx:String>Buenos Aires</mx:String>
<mx:String>Río Negros</mx:String>
<mx:String>Santa Cruz</mx:String>
<mx:String>Tierra del Fuego</mx:String>
</mx:Array>
</mx:dataProvider>
</mx:ComboBox>

Gracias!!! :)

Por xchacalx

Claber

133 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Oct 2009 11:11 am
Idea: pones los países y sus opciones en arrays paralelos (coincide el índice), en el caso de las opciones es un arrayCollection. Luego usas el selectedIndex de la selección del primer combo para hacer que el item que está en esa posición del arrayCollection sea el dataProvider del combo 2

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Oct 2009 03:39 pm
Jorge, lo hice así:

Código :

<mx:Script>
        <![CDATA[
           import mx.controls.Alert;
            import mx.collections.ArrayCollection;
            [Bindable]
            public var cards:ArrayCollection = new ArrayCollection(
                [ {label:"Continentes", data:0}, 
                    {label:"América", data:2},
                  {label:"Europa", data:2}, 
                  {label:"África", data:3} ]);
                  
            [Bindable]
            public var latam:ArrayCollection = new ArrayCollection(
                [ {label:"Países", data:0},
                {label:"Argentina", data:1}, 
                  {label:"Brasil", data:1},
                  {label:"Uruguay", data:1} ]);
            
           [Bindable]
            public var europa:ArrayCollection = new ArrayCollection(
                [ {label:"Países", data:0}, 
                {label:"España", data:2},
                  {label:"Italia", data:2},
                  {label:"Francia", data:2} ]);
                  
            [Bindable]
            public var africa:ArrayCollection = new ArrayCollection(
                [ {label:"Países", data:0}, 
                {label:"Egipto", data:3},
                  {label:"Marruecos", data:3},
                  {label:"Tanzania", data:3} ]);
            
            public function cargarCombo():void{    
             if (Cmbcontinentes.selectedItem.data == 1) {
                Cmbpaises.dataProvider= latam;
             }
             if (Cmbcontinentes.selectedItem.data == 2) {
                Cmbpaises.dataProvider= europa;
             }
             if (Cmbcontinentes.selectedItem.data == 3) {
                Cmbpaises.dataProvider= africa;
             }
     }
        ]]>
</mx:Script>
    
<mx:ComboBox  dataProvider="{cards}"  x="138" y="249" id="Cmbcontinentes" width="180" change="cargarCombo()"></mx:ComboBox>
<mx:ComboBox x="498" y="249"  id="Cmbpaises"></mx:ComboBox>


De esa forma funciona, no creo que sea la mejor!!!, seguramente cambiarias algo, ya que no me parece bien usar un Array por cada opción!!!! Si podes y tenes ganas dame una opinión. Gracias!!!! :)

Por xchacalx

Claber

133 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.