为什么这个Tree只显示一级节点?

XMAN197751 2008-05-09 03:44:00
为什么这样构造的ArrayCollection作为Tree的dataProvider只显示一级节点?
------------------------------------------------------------------------------------------------------
Test.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle"
f f >
<mx:RemoteObject id="companyService" destination="companyService" />
<mx:Script>
<![CDATA[
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.controls.Alert;
import mx.collections.ArrayCollection;
[Bindable]private var companyData:ArrayCollection;
/**
* 初始化树
* */
private function initTree():void{
var tmpData:ArrayCollection = companyService.getAllCompany.lastResult as ArrayCollection;
companyData = createCompanyData(tmpData);
}
/**
* 构造树结构
* */
private function createCompanyData(sArrayCollection:ArrayCollection):ArrayCollection{
var dArrayCollection:ArrayCollection = new ArrayCollection();

for(var o:String in sArrayCollection){
if(sArrayCollection[o].parentId=="-1"){
var node:CompanyTree = new CompanyTree(sArrayCollection[o].companyId,
sArrayCollection[o].companyName,
sArrayCollection[o].parentId,
sArrayCollection[o].status,null);
for(var i:String in sArrayCollection){
if(sArrayCollection.parentId!="-1"&&sArrayCollection[o].companyId==sArrayCollection.parentId){
node.childNode = createChildNode(sArrayCollection[o].companyId,sArrayCollection);
}
}
dArrayCollection.addItem(node);
}
}
return dArrayCollection;
}
/**
* 构造子结点
* */
private function createChildNode(companyId:String,sArrayCollection:ArrayCollection):ArrayCollection{
var childNode:ArrayCollection = new ArrayCollection();
for(var i:String in sArrayCollection){
if(sArrayCollection.parentId!="-1"&&companyId==sArrayCollection.parentId){
var childNodeArray:CompanyTree = new CompanyTree(sArrayCollection.companyId,
sArrayCollection.companyName,
sArrayCollection.parentId,
sArrayCollection.status,
createChildNode(sArrayCollection.companyId,sArrayCollection));
childNode.addItem(childNodeArray);
}
}
return childNode;
}
/**
* 初始化组织结构信息
* */
private function initCompany():void{
companyService.getAllCompany();//通过service获取数据库中的组织机构数据
initTree();
}
/**
* 组织结构数labelFunction
* */
public function treeLabelFuction(itembject):String{
if(item.parentId=="-1"){
return item.companyName;
}else{
return item.companyId;
}
}
]]>
</mx:Script>
<mx:VBox height="98%" width="98%" id="vbIndex">
<mxabNavigator width="100%" height="100%">
<mx:Canvas label="部门管理" width="100%" height="100%" creati>
<mxree dataProvider="{companyData}" width="180" height="100%" labelFunction="{treeLabelFuction}" labelField="@label"></mxree>
<mx:Button x="282" y="132" label="创建树" click="initCompany()"/>
</mx:Canvas>
</mxabNavigator>
</mx:VBox>
</mx:Application>
-------------------------------------------------------------------------------------------------------------
CompanyTree.as

package
{
import mx.collections.ArrayCollection;

public class CompanyTree
{
public var companyId:String;
public var companyName:String;
public var parentId:String;
public var status:String;
public var childNode:ArrayCollection;
public function CompanyTree(companyId:String,companyName:String,parentId:String,status:String,childNode:ArrayCollection)
{
this.companyId = companyId;
this.companyName = companyName;
this.parentId = parentId;
this.status = status;
this.childNode = childNode;
}
public function toString():String {
return "{companyId:"+this.companyId
+ ",companyName:"+ this.companyName
+ ",parentId:"+ this.parentId
+ ",status:"+ this.status
+ ",childNode:"+ this.childNode+"}";
}
}
}
数据表
companyId companyName parentId status
---------------------------------------------------------------------------------------------
1 测试的部门0 -1 1
2 测试的部门1 1 1
3 测试的部门2 -1 1
...全文
339 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjsywjh 2008-05-20
  • 打赏
  • 举报
回复
为灾区人民默哀。。。。。
XMAN197751 2008-05-19
  • 打赏
  • 举报
回复
问题已经解决:
使用ArrayCollection构造树的时候,子结点的名称一定要是children,而我此处写的是childNode,而导致Tree不知道怎么处理它。

在此分享成果


为灾区人民默哀。。。。。
marka958 2008-05-19
  • 打赏
  • 举报
回复
请无视.

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧