You got it.  The reason is that item renderers only exist for the visible
rows, and are re-cycled when you scroll, or the data changes.  Attempting to
get data out of a renderer is like trying to taste Emeril's cooking by
licking the tv screen.

 

Tracy Spratt,

Lariat Services, development services available

  _____  

From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com] On
Behalf Of Matthew
Sent: Monday, December 28, 2009 10:15 AM
To: flexcoders@yahoogroups.com
Subject: [SPAM] [flexcoders] Re: Access Checkbox ItemRenderer in
AdvancedDataGrid

 

  

Sorry, I just answered my own question....

It appears that you should never be able to access an ItemRenderer directly.
If I want to find out that a checkbox is selected then I must listen for
that event in the ItemRenderer and then set a value on the 'data' property.
Then, the dataProvider is available to me with the updated value.

That's the beauty of an ItemRenderer, I guess. 

--- In flexcod...@yahoogro <mailto:flexcoders%40yahoogroups.com> ups.com,
"Matthew" <fume...@...> wrote:
>
> Hi - 
> 
> I have a button outside an AdvancedDataGrid. On the click event, I want to
find which of my checkbox item renderers are selected. For some reason, I
can't figure out. Here's my code below. Any tips are greatly appreciated. 
> 
> Thank you!
> 
> <mx:Button label="Remove Selections" click="removeGrouping();" />
> <mx:AdvancedDataGrid
> id="GroupingGrid"
> width="100%"
> height="45%">
> <mx:dataProvider>
> <mx:HierarchicalData source="{model.groupingColl}" />
> </mx:dataProvider>
> <mx:columns>
> <mx:AdvancedDataGridColumn textAlign="center" dataField="label"
headerText="Group"/>
> <mx:AdvancedDataGridColumn textAlign="center" dataField="cpName"
headerText="CP Name" />
> <mx:AdvancedDataGridColumn textAlign="center" dataField="parentId"
headerText="Parent ID" />
> <mx:AdvancedDataGridColumn textAlign="center" dataField="parentName"
headerText="Parent Name" />
> <mx:AdvancedDataGridColumn id="removeItemCol" dataField="removable"
headerText="Remove" />
> </mx:columns>
> 
> <mx:rendererProviders>
> <mx:AdvancedDataGridRendererProvider 
> column="{removeItemCol}"
> columnSpan="1" 
> renderer="com.renderer.RemoveItemCheckboxRenderer"/>
> </mx:rendererProviders>
> </mx:AdvancedDataGrid>
> 
> 
> And here's my removeGroup() method. It returns null on the 'renderer'
variable. 
> 
> /** User wants to remove a grouping
> */
> private function removeGrouping():void{
> // Loop over the dataProvider and find the items selected, then remove
them. 
> var dpLength:int = GroupingGrid.dataProvider.length;
> for( var i:int=0; i<dpLength; i++ ){
> var im:Array = GroupingGrid.rendererProviders; // .renderer.generator as
com.renderer.RemoveItemCheckboxRenderer;
> var j:int=0;
> while( j<im.length ){
> var myim:AdvancedDataGridRendererProvider = im[j] as
AdvancedDataGridRendererProvider;
> var renderer:RemoveItemCheckboxRenderer = myim.renderer as
RemoveItemCheckboxRenderer;
> j++;
> } 
> }
> }
>



Reply via email to