Comunidad de diseño web y desarrollo en internet online

Como controlar datos de entrada a un datagrid desde xml

Citar            
MensajeEscrito el 19 Nov 2009 11:25 am
Hola a todos, soy novato y tengo una duda hice una coneccion a un api de una web a traves del httpservice el cual me lo entrega en una variable array la cual la muestro en un datagrid , aca esta mi funcion :

[Bindable]
private var evedatos:ArrayCollection;
private function resultHandler(e:ResultEvent):void
{
evedatos = proxyService.lastResult.eveapi.result.rowset.row as ArrayCollection;

}

el api entrega datos en formato xml, con muchos datos aca pego una parte del xml para ke vean la jerarkia ke tiene:

<?xml version='1.0' encoding='UTF-8'?>
<eveapi version="1">
<currentTime>2007-12-02 19:37:55</currentTime>
<result>
<rowset name="alliances" key="allianceID" columns="name,shortName,allianceID,executorCorpID,memberCount,startDate">
<row name="Starbase Anchoring Alliance" shortName="MATT" allianceID="150382481"
executorCorpID="150279367" memberCount="4" startDate="2007-09-18 11:04:00">
<rowset name="memberCorporations" key="corporationID" columns="corporationID,startDate">
<row corporationID="150279367" startDate="2007-09-18 11:04:00" />
<row corporationID="150333466" startDate="2007-09-19 11:04:00" />
</rowset>
</row>
<row name="The Dead Rabbits" shortName="TL.DR" allianceID="150430947"
executorCorpID="150212025" memberCount="3" startDate="2007-11-12 16:00:00">
<rowset name="memberCorporations" key="corporationID" columns="corporationID,startDate">
<row corporationID="150212025" startDate="2007-11-12 16:00:00" />
</rowset>
</row>
</rowset>
</result>
<cachedUntil>2007-12-02 20:37:55</cachedUntil>
</eveapi>

( aca esta completa http://api.eve-online.com/eve/AllianceList.xml.aspx )

al guardar los datos en mi variable puse proxyService.lastResult.eveapi.result.rowset.row para llenar un datagrid el cual me kedo con las siguientes columnas :

aca dejo una foto de mi datagrid http://img682.imageshack.us/img682/485/74659908.jpg

mi pregunta es como regulo los campos ke kiero tener en el datagrid ya ke me salen campos ke no kisiera tener y a los cuales me gustaria cambiarles el nombres de columnas , mi otra duda es ke al parecer en el xml cada una de las alianzas ke salen ahi tiene como subcategorias datos de coorporaciones a los cuales no puedo acceder ,me pregunto si se podria dar el target de la alianza y me de el contenido del bloke de datos ke contiene , si alguien me puede dar alguna ayudita lo agradeceria mucho .
De ante mano muchas gracias .

Por bambanx

48 de clabLevel



 

msie8
Citar            
MensajeEscrito el 19 Nov 2009 01:08 pm

Código Flex :

<mx:columns>
  <mx:DataGridColumn headerText="El_nombre_que_quieras" dataField="nombre"/>
  <mx:DataGridColumn headerText="El_nombre_que_quieras2" dataField="apellidos"/>
</mx:columns>

Mediante la etiqueta <mx:DataGridColumn controlas que columna del origen de datos mostrar, y por otro lado.. el atributo headerText de la misma etiqueta te permite ponerle un texto de header distinto al nombre del campo que viene desde el webservice...

salu2

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 19 Nov 2009 06:38 pm
Gracias zandy me sirvio mucho , lo ke keria saber tambien es si te fijas en el xml hay una linea con info ke es la :
<rowset name="memberCorporations" key="corporationID" columns="corporationID,startDate">
a mi en mi data grid me muestra solo las alianzas pero en el xml cada alianza muestra sus coorporaciones respectivas , como puedo acceder a los datos de las coorporaciones?

kizas cambiando aca? proxyService.lastResult.eveapi.result.rowset.row

Por bambanx

48 de clabLevel



 

msie8
Citar            
MensajeEscrito el 19 Nov 2009 09:00 pm
Si no me explico bien tratare de hacerlo aca , mira cada alianza tiene datos sobre sus coorporaciones mi pregunta es como defino el proxyService.lastResult.eveapi.result.rowset.row para poder acceder por ejemplo a los datos de cieta alianza?

En la info de la api sale estas claves :
Output Rowset Columns
alliances rowset:

Name Type Description
name string Name of the alliance.
shortName string Alliance ticker.
allianceID int ID number of the alliance.
executorCorpID int Corporation ID of the executor corporation.
memberCount int Number of pilots in the alliance.
startDate datetime Date the alliance was founded.


memberCorporations rowset

Name Type Description
corporationID int Corporation ID of the member corporation.
startDate datetime Date the corporation joined the alliance.

aca esta mas completa la info : http://wiki.eve-id.net/APIv2_Eve_AllianceList_XML

SAludos y gracias

Por bambanx

48 de clabLevel



 

msie8
Citar            
MensajeEscrito el 20 Nov 2009 08:13 am
En otro post me decian ke hicera algo asi pero me da error :

[Bindable]
private var evedatos:ArrayCollection;
private function resultHandler(e:ResultEvent):void
{
evedatos = proxyService.lastResult.result.rowset.row.(@allian ceID=='824518128') as ArrayCollection;



}


lo deje asi para filtrar datos y me da error:

TypeError: Error #1010: Un término no está definido y no tiene propiedades.
at eve/resultHandler()
at eve/__proxyService_result()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.rpc.http.mxml::HTTPService/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()
at mx.rpc::Responder/result()
at mx.rpc::AsyncRequest/acknowledge()
at DirectHTTPMessageResponder/completeHandler()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

alguna idea?

Por bambanx

48 de clabLevel



 

msie8

 

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