데이터 공급자로 작업하면서 이번에도 다시 돌아 왔습니다.Combobox Dataprovider - 연관된 ID가 아닌 XML에서 labelField 만 가져옵니다.
글쎄, 나는 플렉스로 약간의 훈련을 해왔다. 나는 검색을했고, 나는 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에서 이제 OUPUT의 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}"/>
에 그리고 당신도 내가 예에 따라 내가 웹에서 본 pais.data = "id";
을 사용 보는 바와 같이 라벨 바인딩을 배치하기 때문에, 그것은을 포함해야한다는 지금
나는 XML의 ID를 ComboBox의 각 항목 NOME으로 가져옵니다.
Flex에 익숙하지 않아서 올바른 방식으로 표현하지 못했을 것입니다.
도움을 주시면 감사하겠습니다. 감사.
<mx:Label x="121" y="403" text="{pais.selectedItem.id}"/>
편집에
pais.data = "id";
변화 라벨 :
나는 너무 맹인예요. 나는 .selectedItem, .selectedIndex ...로 모든 것을 시도했습니다. 결코 기억하지 못했습니다. 덕분에 친구. –
감사합니다. 추신 : {XML (getPaises.lastResult) .pais}는이 방식으로 작동하지 않았습니다. {(getPaises.lastResult) .paises.pais}. 다시 한번 감사합니다. –
그것을 반영하기 위해 게시물을 편집했습니다. – Amarghosh