flex - Proveedor de datos de Combobox: solo obtiene LabelField de XML, no la ID asociada
flex3 dataprovider (1)
No necesitas esta línea:
pais.data = "id";
cambiar la etiqueta a
<mx:Label x="121" y="403" text="{pais.selectedItem.id}"/>
EDITAR: El código se puede simplificar a
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
width="355" height="465" creationComplete="getPaises.send();"
xmlns:ns1="com.*" title="Perfil" fontWeight="normal">
<mx:HTTPService id="getPaises" url="com-handler/paises.php" resultFormat="e4x"/>
<mx:ComboBox x="121" y="328" width="200" id="pais" labelField="nome"
dataProvider="{XML(getPaises.lastResult).pais}"/>
</mx:TitleWindow>
Editado el proveedor de datos. Gracias
De nuevo esta vez trabajando con proveedores de datos.
Bueno, he estado entrenando un poco con Flex, y he buscado, y logré que ComboBox se llenara a través de datos XML. Funciona bastante bien, obtiene el LabelField para cada elemento de XML, pero el ID asociado a cada elemento que no obtiene luego del XML.
Código:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="355" height="465" creationComplete="getPaises.send();"
xmlns:ns1="com.*" title="Perfil" fontWeight="normal">
<mx:HTTPService id="getPaises" url="com-handler/paises.php" result="paisesHandler()"/>
<mx:Script>
<![CDATA[
private function paisesHandler():void
{
pais.dataProvider = getPaises.lastResult.paises.pais;
pais.data = "id";
pais.labelField = "nome";
}
]]>
</mx:Script>
<mx:ComboBox x="121" y="328" width="200" id="pais">
</mx:ComboBox>
</mx:TitleWindow>
Y ahora el resultado XML desde PHP:
<?xml version="1.0" encoding="utf-8"?>
<paises>
<pais>
<id>1</id>
<nome>Portugal</nome>
</pais>
<pais>
<id>2</id>
<nome>Espanha</nome>
</pais>
</paises
Bueno, esto es lo que ocurre, obtengo los nombres de países del XML ( <nome></nome>
) pero no coloca el ID asociado ( <id</id>
).
Ahora que lo hice porque puse una etiqueta enlazable al ComboBox.selectedIndex
<mx:Label x="121" y="403" text="{pais.selectedIndex}"/>
Y como también ves, utilicé pais.data = "id";
que según los ejemplos que vi en la web, debe incluir el ID de XML para cada elemento NOME en el ComboBox.
Soy nuevo en Flex, así que probablemente no expresé las cosas de la manera correcta.
Cualquier ayuda es apreciada. Gracias.