使用 ArrayCollection 中的数据填充树
假设我有一个像这样的 ArrayCollection:
public var ac:ArrayCollection= new ArrayCollection([
{item:"dog", group:"Animals"},
{item:"orange", group:"Fruits"},
{item:"cat", group:"Animals"},
{item:"apple", group:"Fruits"}
]);
如何在 Flex 3 中创建一个使用组作为节点的 Tree 组件,并在每个节点下列出适当的项目?
Let's say I had an ArrayCollection like this:
public var ac:ArrayCollection= new ArrayCollection([
{item:"dog", group:"Animals"},
{item:"orange", group:"Fruits"},
{item:"cat", group:"Animals"},
{item:"apple", group:"Fruits"}
]);
How would I create a Tree component in Flex 3 that uses the groups as nodes, with the appropriate items listed under each node?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用树的
labelField
属性来指定要作为每个节点的标签的属性。在您的示例中,这将为您提供单级
树
:这些链接应该可以帮助您:
编辑:您创建的
ArrayCollection
包含对象,每个对象都将组与项目相匹配。如果您想使用Tree
,您需要从上到下分层思考。最顶层的对象将是您的“组”,由代表“项目”的对象组成。在
ArrayCollection
中,每个索引都需要是一个Object
,而该对象又包含任何嵌套的子项。请注意:每个对象必须在名为“children”的属性中指定其嵌套子对象。例如:
这个“对象因此是分层结构的:
对象:动物
|
|-- 儿童
|
狗
|
Cat
从这里开始,
Dog
和Cat
对象也可以有一个children
属性,指向另一个ArrayCollection
。这有道理吗?请注意每个对象如何包含相同的标识符。在本例中,我使用“name”作为标签,该标签将显示在
Tree
中。您还可以使用labelFunction
属性定义一个返回String
的函数,从而可以在运行时确定给定节点的标签是什么。我将您的
ArrayCollection
并将其捆绑到一个简单的应用程序中,该应用程序将其显示为Tree
。You can use the
labelField
property of the Tree to dictate which property you want to be the label for each node.In your example, this would give you a single-level
Tree
:These links should help you out:
Edit: the
ArrayCollection
you created contains objects, each of which match groups with items. If you want to use aTree
, you need to think hierarchically, from top to bottom.The top-most objects will be your "groups", comprised of objects representing the "items." In your
ArrayCollection
, each index will need to be anObject
which, in turn, contains any nested children. Please note: each object must have their nested children specified in a property named "children."For example:
This `Object is thus structured hierarchically:
Object: Animals
|
|-- children
|
Dog
|
Cat
From here, the
Dog
andCat
objects could also have achildren
property, pointing to yet anotherArrayCollection
. Does this make sense?Note how each object contains the same identifier. In this case, I used "name" for the label which will be displayed in the
Tree
. You can also use thelabelFunction
property to define a function which returns aString
and thus can determine what the label for a given node is at run-time.I took your
ArrayCollection
and bundled it into a simple application which displays it as aTree
.您可以从平面
ArrayCollection
创建一个包含子节点的分层ArrayCollection
。这里是 Adobe 食谱的链接。
You can create a hierarchical
ArrayCollection
with children node in it from a flatArrayCollection
.Here is a link on Adobes cookbooks.
我已经使用了这种方式并且对我有用:链接!
I have used this way and works for me: a link!