I advise creating a component that encapsulates all of the stuff you
want to repeat.
Pass a reference to the entire currentItem into that component.
Expose that item in a public property("selectedItem", or whatever).
Inside that component, dispatch an event. Either have it bubble, or
better, set the metadata and declare a handler on the component
declaration tag.
In the handler, you can access the entire "selectedItem", and do
whatever you want, perhaps assign the selectedItem to a bindable
variable.
Some code snippets below.
Tracy
Goal: Display a list of items using a complex display for each item,
and have each of those items behave like a menu element and respond
to a click anywhere on the item by running a handler function.
One solution is to use a Repeater with a custom component
In the main app or component, declare the Repeater, and the click
handler function.
<mx:Application ...
<mx:Script><![CDATA[
import MyRepeaterItem;
...
private function onRPItemClick(oEvent:Event):void
{
var xmlItem:XML = XML(oEvent.target);
}//onRPItemClick
]]></mx:Script>
<mx:VBox ...>
<mx:Repeater id="rp" dataProvider="{_xmlData}" ...>
<!-- Note we pass in the entire currentItem, and define a click
handler -->
<MyRepeaterItem xmlItem="{rp.currentItem}"
itemClick="onRPItemClick(event)" .../>
</mx:Repeater
</mx:VBox>
</mx:Application>
And in the component, MyRepeaterItem.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox mouseChildren="false" buttonMode="true" click="onClick
(event)" >
<!-- The metadata tag below allows us to define an itemClick
handler in mxml, as in the code above -->
<mx:Metadata>
[Event(name="itemClick", type="flash.events.Event")]
</mx:Metadata>
<mx:Script><![CDATA[
[Bindable]private var _xmlItem:XML;
/** Setter function */
public function set xmlItem(xml:XML):void
{
_xmlItem = xml;
//do any special, non-bound ui stuff you want
}//set xmlItem
/** Getter function */
public function get xmlItem():XML
{
return _xmlItem;
}//get xmlItem
/** Outer VBox Click handler function */
private function onClick():void
{
dispatchEvent(new Event("itemClick",false); //we do not need/want
this event to bubble
}//onClick
]]></mx:Script>
<!-- Now declare the Item UI -->
<mx:Text id="lbDescription" text="[EMAIL PROTECTED]"
width="100%" height="100%" />
</mx:HBox>
--- In [email protected], "Rubeel" <[EMAIL PROTECTED]> wrote:
>
> I am trying to get a value of multiple fields that are repeated in a
> repeater outside of the repater when the user clicks on it.
>
> if the repeater is getting results from a datasource, i want them to
> click on a result and then it should update the labels outside of
the
> repeater. i guess i am looking for something similar to the
> dg.selectedItem.fieldname
>
> thanx for the help or guidance.
>