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