今回もデータプロバイダーと協力して戻ってきます。
さて、私はFlexで少しトレーニングをしていて、検索して、XMLデータを介してComboBoxにデータを入力することができました。それはかなりうまく機能し、彼はXMLから各アイテムのLabelFieldを取得しますが、XMLから取得しない各アイテムに関連付けられたIDを取得します。
コード:
<?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>
そして今、PHPからの出力XML:
<?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
これが起こることです。私はXMLから国名を取得しますが(<nome></nome>
)、関連付けられたIDを配置しません(<id</id>
)。
これで、ComboBox.selectedIndexにバインド可能なラベルを配置したためです。
<mx:Label x="121" y="403" text="{pais.selectedIndex}"/>
また、Webで見た例によれば、これを使用したこともわかりますがpais.data = "id";
、XMLからComboBoxの各アイテムNOMEまでのIDを含める必要があります。
私はFlexを初めて使用するので、おそらく正しい方法で物事を表現していませんでした。
どんな助けでも大歓迎です。ありがとう。