Mi WebService (C#) devuelve un DataTable:
Código :
return dsProductos.Tables[0];
Ya lo invoqué, funciona bien y toda la bola... el problema esta en Flex.
Invoco el WebService mediante AS:
Código :
//J. Griguol private var webService : WebService = new WebService(); private function loadWebService ( ) : void { // Cargar el WSDL y agregar listeners para saber cuando este listo webService.wsdl = "http://localhost:3332/net/Service.asmx?WSDL"; webService.addEventListener(LoadEvent.LOAD, onWSDL); webService.addEventListener(FaultEvent.FAULT, onWebServiceFault); webService.loadWSDL( ); } //listener que avisa cuando el WSDL se ha cargado private function onWSDL (event:LoadEvent ) : void { // Llamada a un metodo en el WebService, primero se crea otro listener para saber cuando // el resultado esta listo. webService.getDataTable.addEventListener(ResultEvent.RESULT, onGetDatosDePersona); webService.getDataTable(); } private function onGetDatosDePersona (event:ResultEvent) : void { // Usar el resultado. Para mas detalles se puede inspecionar event.result en el debugger. firstName.text += String(event.result.apellido); } // En caso de que el WebService no puede ser cargado. private function onWebServiceFault(event:FaultEvent):void { var fault: Fault = event.fault; var message:String = "An error occurred. The details are as follows\ncode: " + fault.faultCode; message += "\ndetail: " + fault.faultDetail; trace("Web Service Error :" + message); }
En el textInput "firstName" me devuelve el valor "Undefined". Supongo que será necesario parsear el XML que obtengo... la pregunta es: Cómo hago? Probé el codigo de una web que encontré por ahi, pero no me funciono.
Estoy levantando un solo registro de la base de datos, por eso utilizo text inputs para mostrar los datos. Tengo entendido que para mostrar una colección completa por ejemplo en un GridView se hace algo asi:
//miDataGrid.dataProvider = ArrayCollection(event.result);
Saludos.
Jonathan