Просмотр полной версии : Построение <mx:Tree> из XML
Вопрос: Как построить <mx:Tree> используя данные из внешнего XML-документа?
То есть, каким-то образом построить это дерево, используя что-то типа HTTPServise, dataProvider,
и при этом не строить вручную <mx:XMLList>.
Как ни странно, но в хелпе к флексу есть пример.
В хелпе к флексу во всех примерах данные для <mx:Tree> задаются из <mx:XMLList>. Если нет, укажите раздел хелпа.
Есть примеры HTTPService+DataGrid, а уж HTTPService+Tree сделать вообще не может быть проблемой.
ок, конкретизирую (см. комментарии в коде, 3шт).
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="feedRequest.send();">
<mx:Script>
<![CDATA[
[Bindable]
// Создаем для первого дерева XML вручную:
public var myData:XML=
<data>
<clas name="Розділ 1. Повторення курсу алгебри 10-го класу" subdir="Rozdil_1">
<part name="Контрольна робота" subdir="Lesson_1_2">
</part>
</clas>
<clas name="Розділ 2. Границя і неперервність функції" subdir="Rozdil_2">
<part name="Тема 1. Границя і неперервність функції" subdir="Tema_1">
<topic name="Урок 1. Модуль дійсного числа та його властивості" subdir="Lesson_1"/>
<topic name="Урок 2, 3. Границя функції неперервного аргументу" subdir="Lesson_2_3"/>
<topic name="Урок 4. Неперервні функції" subdir="Lesson_4"/>
</part>
</clas>
</data>;
]]>
</mx:Script>
<mx:HTTPService
id="feedRequest"
url="data/data.xml"
useProxy="false" />
<!-- Это панель с деревом 1, которое строится из myData:XML, описанной выше, путем выбора атрибутов "name" -->
<mx:Panel x="39" y="10" width="304" height="363" layout="absolute" title="Tree_proba">
<mx:Tree x="10" y="10" height="303" width="264" id="myTree" dataProvider="{myData}"
showRoot="false" labelField="@name"></mx:Tree>
</mx:Panel>
<!-- Здесь я пытаюсь построить аналогичное дерево из внешней data.xml (по содержанию она такая же, как и myData),
но в результате получаю [object:Object] (см. скриншот). Вероятно, не срабатывает labelField="@name"-->
<mx:Panel x="372" y="10" width="272" height="363" layout="absolute" title="Tree_proba2">
<mx:Tree x="10" y="10" height="303" width="232" id="myTree2" dataProvider="{feedRequest.lastResult.data}"
showRoot="false" labelField="@name"></mx:Tree>
</mx:Panel>
</mx:Application>
У HTTPService нужно указать resultFormat или e4x или xml. И .data в dataProvider не надо, т.е. просто {feedRequest.lastResult}.
Пользователь MaxD получает предупреждение.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.