【发布时间】: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