FLEX3 树形图结构

用FLEX3从数据库接受数据形成树形图步骤:

1.封装一个名为Node的as类,包括编号,名称,子节点和一个构造方法。

package common{
    import mx.collections.ArrayCollection;
        public class Node{
               public var id:int;
               public var name:String;
               public var children:ArrayCollection;
              

               public function Node(){
        }
    }
}

2.运用Node.as完成树形图(假设两层数)。

            private var trees:ArrayCollection;  //第一层树结点数据
            private var nodesChildren:ArrayCollection; //孩子结点集合
            private var node:Node = new Node();   //树结点

private function getTree():void{
                trees = new  ArrayCollection();
                var i:int = 0;
                var j:int = 0;
                var channel:Object ;//所有栏目
                var firstChannel:Object ;//一级栏目
                var secondChannel:Object ;//二级栏目
                for(i;i<_channelList.length;i++){
                    channel = _channelList.getItemAt(i);
                    if(channel.PARENT_ID==0){
                        firstChannel = channel;
                        nodesChildren = new ArrayCollection();
                        for(j=0;j<_channelList.length;j++){
                            channel = _channelList.getItemAt(j);
                            if(channel.PARENT_ID==firstChannel.ID){
                                secondChannel = channel;
                                node = new Node();
                                node.id=secondChannel.ID;  
                                node.name=secondChannel.CHANNEL_NAME;
                                node.children=null;
                                nodesChildren.addItem(node);
                            }
                        }
                        node = new Node();
                        node.id=firstChannel.ID;  
                        node.name=firstChannel.CHANNEL_NAME;
                        node.children=nodesChildren;
                        trees.addItem(node);
                    }
                }
                tree.dataProvider=trees;   
                tree.labelField="name"; //指定显示字段
            }


            /**********获得栏目-回调方法**********/
            private function getChannelListHttp_Handler(evt:JsonResponseEvent):void{
                 _channelList = new ArrayCollection(evt.JsonObj.data as  Array);
                 getTree();
            }
            
            /**********点击树形栏目方法 *******/
            private function tree_itemClick(evt:ListEvent):void {
                var item:Object = evt.currentTarget.selectedItem;
                var searchKeys:Array = new Array();
                var searchValues:Array = new Array();
                searchKeys.push("CHANNEL_ID");
                searchValues.push(item.id);                
                paginator.param.isSearch=true;
                paginator.param.searchKeys=searchKeys;
                paginator.param.searchValues=searchValues;
                paginator.commHttp.send(paginator.param);                              
                channelId=item.id;
               }

<mx:HBox width="150" height="100%">
            <mx:Tree id="tree" width="100%" height="100%" itemClick="tree_itemClick(event)" ></mx:Tree>
        </mx:HBox>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值