setting editorDataField to "selected" works for me....

<mx:DataGridColumn headerText="Region Review" width="120"
dataField="regionReview" editorDataField="selected"
rendererIsEditor="true">
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>


Don Kerr


--- In [email protected], "greg_lafrance" <[EMAIL PROTECTED]> wrote:
>
> I have a column in a datagrid using CheckBox as itemRender, and user 
> checks CheckBoxes they want to send email for.
> 
> But after user checks the CheckBoxes, the data provider has not been 
> updated.
> 
> Should I try to get the dataProvider to get the updated 
> checked/unchecked state of the CheckBoxes (and if so, how), or should 
> I simply examine the "selected" property of each of the Checkboxes 
> (and if so, how).
> 
> Someone in the Adobe Flex forum suggested in CheckBox you have to 
> add "change" event handler and when it is called set the property.
> change="data.sendEmail = chk_box_id.selected", but Flex prevents me 
> from using an ID in this case for the itemrenderer CheckBox.
> 
> I tried this but then the checkBox does not get checked when you 
> click it:
> 
> change="data.sendEmail=this.selected" 
> 
> Thanks very much. Greg
> 
> ------------- data/contactsTest.xml ------
> <?xml version="1.0" encoding="utf-8" ?>
> <contacts>
>   <contact>
>     <name>Frank Bords</name>
>     <sendEmail>false</sendEmail>
>   </contact>
>   <contact>
>     <name>Dave Harris</name>
>     <sendEmail>false</sendEmail>
>   </contact>
>   <contact>
>     <name>Lee Travis</name>
>     <sendEmail>false</sendEmail>
>   </contact>
>   <contact>
>     <name>Glen Matin</name>
>     <sendEmail>false</sendEmail>
>   </contact>
>   <contact>
>     <name>Gary Curtis</name>
>     <sendEmail>false</sendEmail>
>   </contact>
> </contacts>
> --- Test.mxml ---
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
>   creationComplete="init()">
>   <mx:Script>
>     <![CDATA[
>       import mx.rpc.events.ResultEvent;
>       import mx.collections.XMLListCollection;
>       import mx.controls.DataGrid;
> 
>       [Bindable]
>       private var contactData:XMLListCollection;
>       
>       private function init():void {
>         contactService.send();
>       }
> 
>       private function sendEmail(event:MouseEvent):void{
>         for each(var item:XML in contacts.dataProvider){
>           trace(item.sendEmail);
>         }
>       }
>       
>       private function contactResultHandler(event:ResultEvent):void{
>         contactData = new XMLListCollection
> (event.result.contact);        
>       }
>     ]]>
>   </mx:Script>
>   <mx:HTTPService id="contactService" url="data/contactTest.xml" 
> resultFormat="e4x"
>     useProxy="false" result="contactResultHandler(event)"/>
>   <mx:DataGrid id="contacts" dataProvider="{contactData}" 
> rowCount="5">
>     <mx:columns>
>       <mx:DataGridColumn dataField="name" headerText="Name" 
> width="100"/>
>       <mx:DataGridColumn dataField="sendEmail" headerText="Email 
> Contacts" width="100"
>         rendererIsEditor="true">
>         <mx:itemRenderer>
>           <mx:Component>
>             <mx:CheckBox label="Send Email" 
> selectedField="{data.sendEmail as Boolean}"
> change="data.sendEmail=this.selected" 
>               paddingLeft="5"/>
>           </mx:Component>
>         </mx:itemRenderer>            
>       </mx:DataGridColumn>
>     </mx:columns>
>   </mx:DataGrid>      
>   <mx:Button label="Email Checked Contacts" fontSize="14" 
> color="0xAB45C4"
>     click="sendEmail(event)"/>
> </mx:Application>
>


Reply via email to