tags:

views:

21

answers:

1

I want my checkbox -- which is in a datagrid, to be selected when the row of the datagrid is selected. And for this I wrote the following code:

<mx:DataGrid id="dg_trashContent" allowMultipleSelection="true"
                         verticalGridLines="true"
                         dataProvider="{trashDataProvider}"                      
                         width="100%"                        
                         height="240"
                         fontFamily="Arial" y="23"
                         selectable="true">  
        <mx:columns>
            <mx:DataGridColumn id="col0"
                                textAlign="left"
                                sortable="false"
                                headerText=""
                                headerStyleName="datagridHeader"
                                dataField="name"
                                width="20">
                        <mx:itemRenderer> 
                                <mx:Component> 
                                        <mx:VBox paddingLeft="5"> 
                                                <mx:CheckBox  selected="{data.isRowSelected}" 
                                                            click="outerDocument.updateSelectedRowFlag(event);" 
                                                            change="{this.selected = data.isRowselected; }"/> 
                                        </mx:VBox> 
                                </mx:Component> 
                        </mx:itemRenderer> 
                </mx:DataGridColumn> 
            <mx:DataGridColumn id="col1"
                                textAlign="left"
                                sortable="true"
                                headerText="Name"
                                headerStyleName="datagridHeader"
                                dataField="name"/>

But I get an error for "selected" property that i used in my checkBox. the error says : Access of possibly undefined property selected through a reference with static type TrashContainer_inlineComponent1.

Could you plz see what am I doing wrong here.

Regards Zeeshan

A: 

Hi Zeeshan

You can use this renderer

<mx:DataGridColumn id="col0" 
                            textAlign="left" 
                            sortable="false" 
                            headerText="" 
                            dataField="key" 
                            width="20"> 
                    <mx:itemRenderer>  
                            <mx:Component>  

                                    <mx:VBox paddingLeft="5">  
                                    <mx:Script>
                                        <![CDATA[
                                            import mx.controls.DataGrid;

                                            override public function set data(value:Object):void
                                            {
                                                super.data = value;
                                                ckb.selected = data.isRowSelected;

                                                if(data.isRowSelected)
                                                    (parent.parent as DataGrid).selectedItem = data;
                                            }
                                        ]]>
                                    </mx:Script>
                                            <mx:CheckBox id="ckb" />
                                    </mx:VBox>  
                            </mx:Component>  
                    </mx:itemRenderer>  
            </mx:DataGridColumn>  

where isRowSelected is part of the data object in the collection.

I hope that can be usefull.

ricdex