Flex Accordion控件的数据绑定

本文介绍了如何在Flex中使用Accordion控件结合Repeater来实现数据绑定,动态生成内容。通过XML数据源表示树形结构,利用Repeater根据数据生成Canvas容器,并设置Label和List控件以展示内容。示例代码展示了具体实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键词:Accordion,数据绑定,动态生成,Repeater
在flex中Accordion控件人气很高,因为这个控件很简单的就实现了类似QQ的效果,让许多开发人员情有独钟。在很多场合需要我们根据得到的数据来与之绑定,动态的改变Accordion控件的内容与结构。如果用AS代码根据数据来初始化Accordion控件是完全可以的,但是实现起来比较复杂。于是我们希望能够用flex的数据绑定,轻松的初始化Accordion控件。可惜的是,Accordion控件中并没有提供dataProvider属性来让我们进行数据绑定。不过没关系,flex中还提供了一个强大的控件Repeater。接下来我就说一下如何使用Repeater来动态生成Accordion。
一、 数据源的数据类型。
数据源也就是希望绑定到Accordion控件上的数据。一般情况下应该是树形结构,Accordion中的容器并且这些容器中还应该有一些内容。在此我推荐使用xml,xml表示树形结构非常容易,而且flex对xml的操作非常简单。以下为xml数据源的一个例子:

希望的结果是Accordion控件中生成连个标签名字为“System”和“Manager”,并且每个标签下面都有各自的内容,例如system标签下面有“sys1”和“sys2”。
二、 Accordion与Repeater结合
Accordion控件内部对象都是容器对象,而Repeater可以和数据绑定,根据数据源来生成n个容器对象,这样的结合可以说是完美。编码行式如下:

Accordion 标签中添加Repeater标签,Repeater标签中再添加一个Canvas标签。表示Repeater会根据绑定的数据源动态生成n个Canvas对象作为Accordion对象的成员。Repeater标签的dataProvider属性与XML对象menuLst进行绑定后,Repeater会根据menuLst的内容生产两个Canvas对象。Canvas对象的label属性为当前xml节点的label属性。当前xml节点应该是这个形式的内容:

然后还需要把xml节点的叶子节点显示出来,叶子节点的xml应该是这个形式:

在此我使用了List控件,设置List控件的dataProvider属性为rep.currentItem.item.@label就指的是“sys1”这个级别的内容了。完整的代码如下所示:

效果图:

1

 

2

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值