Comunidad de diseño web y desarrollo en internet online

asignar datos dinamicamente a un ComboBox

Citar            
MensajeEscrito el 18 Dic 2009 01:59 pm
HOla,
Tengo un combobox que quiero llenarlo con datos de un XML generado en un archivo PHP.
Lo estube tratando de hacer con un ArrayCollection, pero mi código no me sirve cuando el xml tiene más de un registro

Código :

[Bindable]
private var lista_seccion:ArrayCollection;

private function getSecciones(event:ResultEvent):void{
               lista_seccion=new ArrayCollection([event.result.WSResult.secciones]);   
}

Por escenariovirtual

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Dic 2009 08:50 pm
He estado investigando y he modificado toda mi aplicación,
1. en primer lugar obligo a que mi XML generado, siempre me devuelva un valor por defecto que es
<WSResult><secciones><seccion>seleccione seccion </seccion><Id>0</Id></secciones></WSResult>
2. luego al HTTPService le añadí la propiedad resultFormat="object".
3. y recibo el xml obtenido por el HTTPService con un Objeto.
4. despues, paso el contenido del Objeto a un ArrayCollection y finalmente el ArrayCollection lo asigno como dataProvider de mi Combobox tal y como me lo mensionaste, Jorge.

Código :

Código :

<mx:HTTPService id="seccionRequest" url="xmllistasecciongrado.php" result="getSecciones(event)"
      useProxy="false" method="POST" resultFormat="object">  
      <mx:request xmlns="">
         <idgrado>{grado}</idgrado>
         <anio>{anio}</anio>
      </mx:request>  
</mx:HTTPService>

Código ActionScript :

private function getSecciones(event:ResultEvent):void{
            var resultObj:Object = event.result;

            var i:int=0;
            for(i;i<resultObj['WSResult'].secciones.length; i++){ 
            var oItem:Object = new Object();   
             if(i==0)
             {
                oItem.label= resultObj['WSResult'].secciones[i].seccion;
               oItem.data= resultObj['WSResult'].secciones[i].Id;
             }else{
               
               oItem.label= resultObj['WSResult'].secciones[i].seccion;
               oItem.data= resultObj['WSResult'].secciones[i].Id;
               oItem.disponible= resultObj['WSResult'].secciones[i].disponible;
               oItem.aula= resultObj['WSResult'].secciones[i].aula;
               oItem.capacidad= resultObj['WSResult'].secciones[i].capacidad;
               oItem.detalles= resultObj['WSResult'].secciones[i].detalles;
               
               }   
               lista_seccion.addItem(oItem);
            }
      
          
          if(lista_seccion.length>0) {
                 seccion_cbo.dataProvider = lista_seccion
             seccion_cbo.labelField="label";
            }




Y para que el ArrayCollection tenga los datos actualizados, pongo este código antes de volver a agregarle datos:

Código :

lista_seccion.removeAll();

Por escenariovirtual

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Dic 2009 11:12 pm
a estas mas enredado loquillo lo unico que tiene que hacer es recoger tus xml tal como esta en la guia de adobe
luego crear un itemrender o bien extenderlo y punto.

Por xcom

Claber

530 de clabLevel



 

firefox

 

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