this is the snippet from my code library:

package
{
    import mx.containers.HBox;
    import mx.controls.CheckBox;
   
    public class CheckBox2 extends HBox{
       
        public function CheckBox2(){
            this.setStyle("horizontalAlign", "center");
        }
       
        var c:mx.controls.CheckBox;
       
        override protected function createChildren():void{
            c = new CheckBox();
            this.addChild( c );
        }
       
        override public function set data(item:Object):void     {

         super.data = "">
         if( item!=null ){
            c.selected = (item.Sent == 1)?true:false ;
         }

       }
       
       
    }
}

=== mxml ===============

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
     
  <mx:Script>
    <![CDATA[
      
      [Bindable]
      public var myDP:Array =         [
          {label1:"Order #2314", contact:"John Doe", quant:3, solddate:new Date(2005, 0, 1), Sent:1},
          {label1:"Order #2315", contact:"Jane Doe",  quant:3, solddate:new Date(2005, 0, 5), Sent:0}];
    ]]>
  </mx:Script>

  <mx:DataGrid id="myDG" dataProvider="{myDP}" variableRowHeight="true" width="500" height="250" editable="true">
    <mx:columns>
        <mx:DataGridColumn dataField="label1"           headerText="Order #" editable="false"/>
        <mx:DataGridColumn dataField="quant"           headerText="Quantity"           itemEditor="mx.controls.NumericStepper "            editorDataField="value"/>
        <mx:DataGridColumn dataField="solddate"           headerText="Date"            itemRenderer=" mx.controls.DateField"           rendererIsEditor="true"           editorDataField="selectedDate"/>
       
        <mx:DataGridColumn itemRenderer="CheckBox2" dataField="Sent" rendererIsEditor="true" editorDataField="data" />

       
    </mx:columns>
  </mx:DataGrid>
</mx:Application>

=========================

things to note:

1. Using HBox (or any containers) inside item renderer is very *expensive* (said Joan Tan from Adobe), which might be the cause for sluggish scrolling of Datagrid.

2. Most of the time my item renderer are a composition of multiple UI components, so I have to use Box or other kind of Containers.

3. Anatole's approach (using DataGridListData(listData).dataField ) is more abstractive so that the renderer is generic enough for easy reuse later, if you just need one single chechbox in there, that's the best way to go (IMHO).


__._,_.___

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com





SPONSORED LINKS
Web site design development Computer software development Software design and development
Macromedia flex Software development best practice


YAHOO! GROUPS LINKS




__,_._,___

Reply via email to