我有一个Spark列表,其中包含一个填写表单应用程序列表的数据提供程序.向每个列表项(表单应用程序)添加按钮的最佳方法是什么?此按钮将命名为“打开”,并将导航到指定的表单应用程序.
提前感谢您的任何建议!
解决方法
这与@ www.Flextras.com所说的类似,所以我不打算再重复一遍.但是,我将添加一个示例和一两件事.
您的自定义ItemRenderer可能如下所示:
- <s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
- xmlns:s="library://ns.adobe.com/flex/spark">
- <fx:Script>
- <![CDATA[
- import mx.events.ItemClickEvent;
- private function requestForm():void {
- var event:ItemClickEvent = new ItemClickEvent(ItemClickEvent.ITEM_CLICK);
- event.index = itemIndex;
- event.item = data;
- owner.dispatchEvent(event);
- }
- ]]>
- </fx:Script>
- <s:Label id="labelDisplay" verticalCenter="0" />
- <s:Button right="0" label="open" verticalCenter="0" click="requestForm()" />
- </s:ItemRenderer>
有两件事与Flextras的答案不同:
>我使用内置的ItemClickEvent而不是自定义事件>减
编码
>我在ItemRenderer的所有者上发送事件
实际上是包含此ItemRenderer的List.因为这个,
你不需要泡泡事件.
现在,在单击Button时打开表单,执行以下操作:
- myList.addEventListener(ItemClickEvent.ITEM_CLICK,openForm);
- private function openForm(event:ItemClickEvent):void {
- trace("open " + event.item.toString());
- }