Flex 4 Mx:树没有使用tree.refresh()或tree.reset()更新

时间:2016-03-30 16:35:43

标签: flex tree

我正在使用Flex 4创建mx:tree,并且正在使用XMLList文件填充树,该文件是从数据库更新的,以及我尝试完成的内容是刷新树,以便根据课程的完成状态显示不同的图标。

问题是树没有更新,但是XMLList文件是,所以我真的很感激一些帮助。

顺便说一句,我不了解Flex。

以下是代码:

public static var treeData:XMLList = new XMLList(MyString);

<mx:Tree id="myTree" width="40%" height="100%" labelField="@label" fontSize="14" focusColor="#ff5003"
                     render="renderTree()"
                     iconFunction="tree_iconFunc"
                     showRoot="false"
                     dataProvider="{treeData}"  
                         change="treeChanged(event)" 
                         depthColors="{myDepthColors}"
                         color="#006596" borderColor="#03B4EC"
                         click="SoundExample(String(selectedNode.@lesson)), habilitar()"
                         alternatingItemColors="{myAlternatingRowColors}"

                         />



    public function renderTree():void {
                    trace("Entró a renderTree");
                    initAppB();
                    if (refreshData){

                        myTree.invalidateList();
                        refreshData = false;
                        myTree.openItems = Globals.treeData;

                        myTree.validateNow();
                    }
                }

1 个答案:

答案 0 :(得分:0)

而是XMLList您可以使用像ArrayCollection这样的可绑定集合。 有了它,您不需要手动使树无效。它会在ArrayCollection更改时自动更新。

此外,我不确定你是什么意思&#34;树正在填充XMLList文件,该文件是从数据库&#34;更新的。你能澄清一下吗?

要更新树,您必须更新treeData:XMLList。如果要将其替换为另一个值,请尝试以下操作:

[Bindable] //Notice this metadata
public var treeData:XMLList = new XMLList(MyString);
public function updateTreeData():void {
    var text:String = ...; //loading text
    treeData = new XMLList(text);
}