读书人

怎么引用Repeater下控件属性

发布时间: 2012-02-05 12:07:15 作者: rapoo

如何引用Repeater下控件属性
代码先贴出来
<mx:Repeater id="pp" dataProvider="{myData.row}">
<mx:Button height="90" width="89" label="{(pp.currentItem.Name)}"/>

</mx:Repeater>
其中myData 是通过HTTPService回调函数里返回的Object,
[Bindable]
public var myData:Object;
public function shopHandler(event:ResultEvent):void
{
myData=event.result.shop;
}
现在想要引用Button中的label的值,怎么引用

[解决办法]
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="top"
horizontalAlign="center"
backgroundGradientColors="[0x000000,0x323232]"
paddingTop="0"
viewSourceURL="srcview/index.html">

<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;

[Bindable]
private var ac:ArrayCollection=new ArrayCollection([{name: 1}, {name: 3}, {name: 2}, {name: 4}, {name: 5}]);
]]>
</mx:Script>

<mx:Panel title="Repeater Example"
layout="vertical"
color="0xffffff"
borderAlpha="0.15"
paddingTop="10"
paddingRight="10"
paddingBottom="10"
paddingLeft="10"
horizontalAlign="center">

<mx:Text width="100%"
color="0x323232"
textAlign="center"
text="Use the Repeater class to create multi-Button controls in a Tile container."/>

<mx:Tile direction="horizontal"
borderStyle="inset"
horizontalGap="10"
verticalGap="10"
color="0x323232"
paddingLeft="10"
paddingTop="10"
paddingBottom="10"
paddingRight="10">

<mx:Repeater id="rp"
dataProvider="{ac.source}">
<mx:Button height="24"
width="50"
label="{String(rp.currentItem.name)}"
click="Alert.show(String(event.currentTarget.getRepeaterItem().name) + ' pressed')"/>
</mx:Repeater>
</mx:Tile>

</mx:Panel>
</mx:Application>

[解决办法]
是不是这个意思?你点击按钮的时候,不知道当前按钮应该对应dataProvider中的哪条记录,也就是不知道下标是什么

XML code
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*"><mx:Script>    <![CDATA[        import mx.controls.Button;        import mx.controls.Alert;        private function onClickHandler(event:Event):void        {            var myButton:MyButton = event.target as MyButton;            if (myButton != null) {                // 从按钮中获得dataProvider所对应的下标,即可以获得dataProvider中按钮对应的相关信息。                var currentIndex:int = myButton.index;                Alert.show(pp.dataProvider[currentIndex]);            }        }    ]]></mx:Script>    <mx:Repeater id="pp" dataProvider="{[1,2,3,4,5]}">        <!-- 通过index="{pp.currentIndex}" 把当前Repeater的下标传入按钮中 -->        <local:MyButton height="90" width="89" label="{pp.currentItem}" index="{pp.currentIndex}" click="onClickHandler(event)"/>    </mx:Repeater>  </mx:Application> 

读书人网 >flex

热点推荐