每个父节点末尾的树中的链接按钮

时间:2011-04-18 07:51:20

标签: flex

我需要在每个父节点的末尾都有链接按钮,如下所示

- >(父)IBM Machines(重命名|删除|禁用)

儿童1儿童2儿童3

- >(父)Sony(重命名|删除|禁用)

儿童1儿童2儿童3

重命名,删除和diasble应该是链接按钮。我已尝试过标签功能和其他方法,但无法获得确切的要求。请帮助我如何实现这一目标。

2 个答案:

答案 0 :(得分:2)

使用ItemRendrer,可以在以下位置找到示例(包括树) Using an item renderer with a Tree control

编辑请参阅示例:Flex Checkbox TreeItemRenderer

希望有所帮助

编辑请使用以下ItemRendrer

package
{
    import mx.controls.LinkButton;
    import mx.controls.treeClasses.*;

    public class LinkButtonTreeItemRenderer extends TreeItemRenderer{

        public var lnkRename:LinkButton;
        public var lnkDelete:LinkButton;
        public var lnkDisable:LinkButton;

        public function LinkButtonTreeItemRenderer(){
            super();
        }

        override protected function createChildren():void{
            super.createChildren();


            lnkRename= new LinkButton();
            lnkRename.label = "rename";
            lnkRename.visible = true;

            addChild(lnkRename);

            lnkDelete= new LinkButton();
            lnkDelete.label = "delete";
            lnkDelete.visible = true;

            addChild(lnkDelete);

            lnkDisable= new LinkButton();
            lnkDisable.label = "disable";
            lnkDisable.visible = true;

            addChild(lnkDisable);


        }

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
            super.updateDisplayList(unscaledWidth,unscaledHeight);


                 lnkRename.x = label.x + label.textWidth+10;
                 lnkRename.width = 55;
                 lnkRename.height = 20;


                 lnkDelete.x = lnkRename.x + lnkRename.width;
                 lnkDelete.width = 55;
                 lnkDelete.height = 20;

                 lnkDisable.x = lnkDelete.x + lnkDelete.width;
                 lnkDisable.width = 55;
                 lnkDisable.height = 20;

                 //this.width= 250;



        }


    }
}

答案 1 :(得分:0)

您需要使用项呈示器为行添加额外的功能。像这样:

<mx:Tree itemRenderer="SomeItemRenderer" />

然后,项呈示器只是名为SomeItemRenderer的单独文件中的新自定义组件:

<mx:HBox width="100%">
<mx:Label text="{data.name} />
<mx:Spacer width="100%" />
<mx:LinkButton label="rename" />
<mx:LinkButton label="delete" />
<mx:LinkButton label="disable" />
</mx:HBox>

你需要某种逻辑来知道你是否应该显示链接按钮;我可能只是添加状态并添加/删除它们,如果数据有孩子或没有孩子。