处理显示与获取的值不同的方法(变相解决itemrender的内部属性问题)

本文介绍了在Flex中实现数据列表点击事件的三种方法。第一种是在itemrenderer中直接处理,第二种是在主页面中处理,第三种是通过itemClick事件进行处理。文中详细解释了每种方法的具体实现,并对比了它们之间的优缺点。

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

<mx:Object text="1" id="t" index="123"/>
<mx:Object text="2" id="g" index="2323"/>
近期做项目,需要实现已以上数据,显示text,点击后获取index的值
方法一:
自定义一个itemrenderer,将处理函数写在空间里面
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" creationComplete="init();" click="click();"
>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public var tem:String;

private function init():void
{
tem=data.index;
}
private function click():void
{
Alert.show(data.index);
}
]]>
</mx:Script>
<mx:Label text="{data.text}"/>
</mx:HBox>

方法二:将处理函数写在主页面里
<mx:List id="list2">
<mx:dataProvider>
<mx:Object text="1" index="12"/>
<mx:Object text="2" index="22"/>
</mx:dataProvider>
<mx:itemRenderer>
<mx:Component>
<mx:Label text="{data.text}" click="send()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
private function send():void
{
Alert.show(data.index);
}
]]>
</mx:Script>
</mx:Label>

</mx:Component>
</mx:itemRenderer>
</mx:List>
以上两种方法均与代码耦合性太高,不便于修改,经多次自我摸索,找到方法三
方法三:
<mx:List id="list" itemRenderer="com.listitem" itemClick="click(event)">
<mx:dataProvider>
<mx:Object text="1" id="t" index="123"/>
<mx:Object text="2" id="g" index="2323"/>
</mx:dataProvider>
</mx:List>
处理函数
private function click(event:Event):void
{
Alert.show(List(event.currentTarget).selectedItem.[color=red]index.[/color]toString());
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值