1. ホーム
  2. Web プログラミング
  3. フレックス

ツリーバインドデータ後、自動的にツリーノードを展開するFlexメソッド

2022-01-19 11:24:03
Flex/Flashで開発している方は、expandChildrenOf(item,true)メソッドを使ってTreeコンポーネントを使えば、データバインド後にすべてのツリーノードを自動的に展開できます(ユーザーが自分でノードをクリックして展開しなくても、ずっと簡単)、これはFlex開発のヘルプドキュメントにも明確に書かれていますね。
dataProviderを設定した後、すぐにexpandChildrenOf()を呼び出すと、正しい動作が表示されない場合があります。コンポーネントが検証されるのを待つか、validateNow() メソッドを呼び出す必要があります。
最初:(検証済み)
コピーコード コードは以下の通りです。

//Expand all, with the first item initially selected
treePlayList.dataProvider=results;//refresh all nodes of Tree to expand - royanxin - royanxin's blog
treePlayList.validateNow(); //Validate and update the properties and layout of this object, and redraw the object (if needed).
treePlayList.selectedIndex=0;
treePlayList.expandChildrenOf(treePlayList.selectedItem,true);//expand all

2番目
コピーコード コードは以下の通りです。

setTimeout(IniExpand, 1000); //delay 1 second
private function IniExpand():void {
TreeView1.selectedIndex=1;
TreeView1.expandItem(TreeView1.selectedItem,true);
}

第3位
コピーコード コードは以下の通りです。

//Expand all, with no options initially selected
sysTree.validateNow();
for each(var item:XML in this.sysTree.dataProvider){
sysTree.expandChildrenOf(item,true);
}

注意事項