As a quick and dirty... <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:custom="Components.*"> <mx:Script> <![CDATA[ import mx.collections.ArrayCollection;
[Bindable] private var staffArrColl:ArrayCollection; ]]> </mx:Script> <mx:Repeater id="myStaff" dataProvider="{staffArrColl}"> <custom:CheckBoxComponent id="checkBoxs" person="{Person(myStaff.currentItem)}" /> </mx:Repeater> </mx:Application> CheckBoxComponent.mxml: <?xml version="1.0" encoding="utf-8"?> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="onCreationComplete()"> <mx:Script> <![CDATA[ import ValueObjects.Person; public var person:Person; private function onCreationComplete():void { // From person object make a remote object call to get Modules and Queues // When remote object calls return, create checkboxes appropriately } ]]> </mx:Script> </mx:VBox> Person.as: package ValueObjects { [RemoteClass(alias="Classes.Testing.Person")] [Bindable] public class Person { //instance variables private var _name:String; private var _id:String; //accessor methods public function get name():String {return _name;} public function get id():String {return _id;} //mutator methods public function set name(name:String):void {_name = name;} public function set id(id:String):void {_id = id;} } // end class }//end package I have not included any remote object calls or result handlers. I'll leave that up to you. Keep in mind that Flex is object oriented. One of the ideas behind OOP is encapsulation. If you can encapsulate all the properties and methods of something and then repeat that, the possibilities are endless. HTH Steve --- In flexcoders@yahoogroups.com, "postwick" <p...@...> wrote: > > Can you give me a brief example of code that would achieve the part where you say "create a component"? > > Keep in mind the number of checkboxes and their labels is not static. There are three tables involved: staff, modules, and queues. The checkboxes are created dynamically from the records returned from the modules and queues tables. > > --- In flexcoders@yahoogroups.com, "valdhor" valdhorlists@ wrote: > > > > I use repeaters quite a lot and like them. > > > > What I do is to create a component (Which sometimes contains other components) and the repeat that. > > > > In your situation, I would create a component with all of your check boxes and save button. This component would have all of the functionality to display which check boxes are selected as well as the save button click handler. It would also have a public property that would take a data object. On creation complete of this component, it would check the values of the data object and set the check boxes appropriately. > > > > Then, I would repeat this component passing in the data objects returned from the remote object call... > > > > <mx:Repeater id="myStaff" dataProvider="{staffArrColl}"> > > <custom:CheckBoxComponent id="checkBoxs" person="{Person(myStaff.currentItem)}" /> > > </mx:Repeater> > > > > > > HTH > > > > > > > > Steve > > > > > > --- In flexcoders@yahoogroups.com, "postwick" <paul@> wrote: > > > > > > I don't like repeaters. They are too clumsy. The biggest drawback is an inability to access values after the repeater has finish executing. It's not the same as, for example, looping over values and generating static HTML using ColdFusion. I seem to always end up having to navigate up and down through the parents/children of the objects and storing values I need in properties like name, automationName, etc. This is clumsy and messy. > > > > > > As an example, I have a section of my application where I want to list the names of people from a table, and for each person generate a set of checkboxes that designate access to certain areas of the application. For example: http://www.ubeek.com/images/staffrepeater.jpg > > > > > > That is one main repeater that loops through the staff (records returned from remoteObject) and inside that repeater two other repeaters (also from remoteObjects) that generate the checkboxes. > > > > > > I can't simply pass the primary key of the staff for which the Save button was clicked, by putting click="saveClick({staffRepeater.currentItem.SEQ})" into the button object. When I do that and click it I get an error about "repeater is not currently executing" or something like that. > > > > > > I don't want to resort to a datagrid and then "click to edit" then bring up a form kind of process. I want it as few clicks as possible. > > > > > > Is there a better way to display data in a custom way like this, without using repeaters, so that I can more easily access the child objects and their properties? > > > > > > Thanks, > > > Paul > > > > > >