Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Accessing an ItemRenderer in a DataGrid

I have a data grid that has a checkbox item renderer in a cloumn to allow row selections:

Main application:


<mx:DataGrid id="dg">
    <mx:columns>
        <mx:DataGridColumn id="ir" itemRenderer="renderers.RowCheckbox" /> 
        <mx:DataGridColumn dataField="Name" headerText="Name" /> 
    &lt/mx:columns>
</mx:DataGrid>

Item renderer:


<-- RowCheckbox -->
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" horizontalAlign="center"> 
    <mx:CheckBox id="chk"/>
</mx:HBox>

How can I get a handle to the item renderer / checkbox so that I may determine which rows are checked?

like image 986
mmattax Avatar asked Dec 31 '22 05:12

mmattax


1 Answers

Just a word of advice: We had a similar problem in our application and we solved it by adding a "selected" property to the entities in the dataprovider of the datagrid. The selected property of the checkBox was then bound to the selected property of our entity. To know which ones were selected, we just looped over the entities in the dataprovider instead of the item renderers. After a lot of different approaches, this really was the best option.

If I remember correctly, the problem was that the itemrenderers did not remember the selected state correctly and the datagrid was completely messed up when you scrolled up and down. The wrong rows were selected after scrolling.

Another option would be to dispatch an event in the item renderer which bubbles up all the way to the control hosting the datagrid. You could then listen for these events and update your model to reflect the changes.

like image 74
Christophe Herreman Avatar answered Jan 05 '23 13:01

Christophe Herreman