Hi Alex,
I've been studying your code at
http://blog.flexexamples.com/2008/01/27/using-a-checkbox-control-as-a-list-item-renderer-in-flex/
You use the filter method on the underlying array (source) for the
arrayCollection datasource of the list. The signature of your function is:
private function selectedOnly(item:ListItemValueObject, idx:uint,
arr:Array):Boolean {
return item.isSelected;
}
The filter method, according to the Flex docs, 'executes a test
function on each item in the array and constructs a new array for all
items that return true for the specified function.' That I understand,
and I can see that you're being returned an array, tArr. But how are
you able to call a function with that signature and know that all
three parameters are going to be passed in? I tried adding a fourth
parameter - , porky:String - and it broke. How does this method know
that idx:uint is OK, but porky:String isn't?
--- In [email protected], Alex Harui <aha...@...> wrote:
>
> You could use a derivative of the example on my blog and then just
test if selectedIndex != -1
>
> From: [email protected] [mailto:[email protected]]
On Behalf Of stldvd
> Sent: Tuesday, January 06, 2009 1:47 PM
> To: [email protected]
> Subject: [flexcoders] Validating Checkboxes in an item renderer
>
>
> Hi All,
>
> I've got a checkbox in an item renderer. I need to know that at least
> one checkbox has been selected in order for the data to be considered
> valid and the 'save' function to go through. But I'm not sure how to
> iterate through the checkboxes, since in the code there's only one:
>
> <mx:VBox>
> <mx:List id="myList" dataProvider="{_dp}" >
> <mx:itemRenderer>
> <mx:Component>
> <mx:HBox horizontalScrollPolicy="off">
> <mx:CheckBox selected="false" />
> <mx:Label text="Sample" textAlign="right" width="150" />
> </mx:HBox>
> </mx:Component>
> </mx:itemRenderer>
> </mx:List>
> </mx:VBox>
>
> Any help appreciated.
>
> -- David
>