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.
>


Reply via email to