Как заполнить поле со списком flex данными xml - PullRequest
1 голос
/ 03 апреля 2012

вот данные xml:

<root>
    <recommendedMaterials>
        <value label="Aluminium" data="0" /> 
        <value label="Iron" data="0" /> 
    </recommendedMaterials>

</root

Мой код:

<mx:Script>
        <![CDATA[
public function populateRecommendedMaterials(xml_val:XML)           
            {
                 materials_Cmb.dataProvider=(xml_val.recommendedMaterials); 
            }

    ]]>

</mx:Script>        

    <mx:ComboBox x="212" y="164" id="materials_Cmb" dataProvider="materialsCmb_Dp"></mx:ComboBox>

</mx:Canvas>

Проблема в том, что весь xml заполняется.Я просто хочу ярлыки.:(

1 Ответ

4 голосов
/ 03 апреля 2012

Здесь есть два подхода, в зависимости от того, что вам нужно. В любом случае вам нужны данные children узла recommendedMaterials, а не сам узел (что вы и сделали).

materials_Cmb.dataProvider = 
    new XMLListCollection(xml_val.recommendedMaterials.children());

Это уже должно сработать. Обратите внимание, что я обернул XMLList в XMLListCollection: это не является строго обязательным для mx: ComboBox, потому что он будет делать то же самое внутри, но для компонентов Spark это будет обязательно.

Другим более кратким решением было бы просто найти все узлы «стоимости», но я не знаю, подходит ли этот подход вашему счету.

materials_Cmb.dataProvider = 
    new XMLListCollection(xml_val..value);

Также не забудьте назначить правильный 'labelField' в ComboBox:

<s:ComboBox labelField="@label" />

Знак @ представляет атрибут XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...