【问题标题】:Flex: Updating data provider of mx:treeFlex:更新 mx:tree 的数据提供者
【发布时间】:2011-11-18 13:15:17
【问题描述】:

我用 flex 创建了一个 mx:tree,它的数据提供者是一个数组集合。另外,这个数组集合是使用数据库来设置的。此过程由事件侦听器函数处理。数据库异步返回数据到数组集合。这就是 flex 应用程序启动时数组集合未完全初始化的问题。因此,mx:tree 是不完整的。这是代码段:

protected function populateTreeNode(node:Object):void
        {

            if (node != null && node["className"] != "InventoryCategory") return;

            var categoryId:Number = 0;
            if (node != null)
                categoryId = node["id"];

            DAOUtil.loadAll("InventoryCategory", EventUtil.handleWithArgs(popoluateTreeNodeHandler, [node, "InventoryCategory"]), "categoryId", categoryId.toString());
            DAOUtil.loadAll("InventoryItem", EventUtil.handleWithArgs(popoluateTreeNodeHandler, [node, "InventoryItem"]), "categoryId", categoryId.toString());
        }

        protected function popoluateTreeNodeHandler( event : Event , nodeCategory:Object, typeName:String): void
        {
            var items:Array = DAOUtil.getArray(event, typeName);
            items = LangUtil.fromNameField(items);

            if (nodeCategory != null)
                nodeCategory["children"] = items;
            else
                inventoryArray.addAll(new ArrayCollection(items));


            for each (var item:Object in items) populateTreeNode(item);

        }

此函数尝试递归初始化数组集合,并在 populateTreeNodeHandler 函数结束时完全初始化。但是当 flex 应用程序启动时,它有时是不完整的。这个问题有解决办法吗?

【问题讨论】:

  • 如何设置树的数据提供者?它只是绑定到人口函数的响应还是绑定到可绑定的类变量?
  • 它只是绑定到人口函数的响应。像这样:dataProvider="{inventoryArray}"。此外,该数组还包含一个数据库。

标签: actionscript-3 apache-flex flex4.5


【解决方案1】:

问题已解决。问题是两次完成数据提供者数组。其中一个正确地用类别项填充数组,但另一个清空数据提供者数组。

【讨论】:

    猜你喜欢
    • 2011-02-18
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    相关资源
    最近更新 更多