Просмотр полной версии : Expand root в Tree
Подскажите, как открыть root-овый элемент дерева.
Пробую так - не получается
myTree.expandItem(myTree.root,true,true);
Взял из help-а пример дерева, добавил метод init(), где пытаюсь разворачивать дерево
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
public function init():void{
var arr:XMLListCollection = myTree.dataProvider as XMLListCollection;
if (arr!=null){
var obj:Object = arr[0];
}
myTree.expandItem(obj,true,false);
}
]]>
</mx:Script>
<mx:XMLList id="treeData">
<node label="Mail Box">
<node label="Inbox">
<node label="Marketing"/>
<node label="Product Management"/>
<node label="Personal"/>
</node>
<node label="Outbox">
<node label="Professional"/>
<node label="Personal"/>
</node>
<node label="Spam"/>
<node label="Sent"/>
</node>
</mx:XMLList>
<mx:Tree id="myTree" width="100%" height="100%" labelField="@label" showRoot="true" dataProvider="{treeData}"/>
</mx:Application>
... дерево разворачивается.
Начинаю делать у себя
myXML = XML(myLoader.data);
var xml:XMLList = myXML.children();
myTree.dataProvider = xml;
if (xml!=null){
var obj:Object = xml[0];
myTree.expandItem(obj,true,false);
}... ничего не получается.
Объект obj во втором примере:
<root data="100" label="RQ=187/2007_12">
<node data="200" label="Исходные данные">
<node data="210" label="Транковые группы"/>
<node data="220" label="Главные номера"/>
<node data="230" label="ТОПС"/>
</node>
<node data="300" label="Отчет"/>
<node data="500" label="Детализация"/>
</root>
FlexOkeks
09.01.2008, 14:31
myTree.expandItem(myTree.dataProvider.getItemAt(0),true,false);
myTree.expandItem(myTree.dataProvider.getItemAt(0),true,false);
Это тоже самое, что и я написал, во всяком случае, объект тот же получаю (obj), а дерево не разворачивается.
myTree.expandItem(myTree.dataProvider[0],true,false);
myTree.expandItem(myTree.dataProvider[0],true,false);
То, что предлагаете - это практически тоже самое, что и я написал.
var arr:XMLListCollection = myTree.dataProvider as XMLListCollection;
if (arr!=null){
var obj:Object = arr[0];
myTree.expandItem(obj,true,false);
}
Объект получается один и тот же, просто не тот объек нужно получать наверное, в другом формате.
Цитата из хелпа по expandItem:
Opens or closes a branch item. When a branch item opens, it restores the open and closed states of its child branches if they were already opened. If you set dataProvider and then immediately call expandItem() you may not see the correct behavior. You should either wait for the component to validate or call validateNow().
Ну тогда callLater спасёт.
Во, вот так только и заработало, пасиб
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.