Select to view content in your preferred language

Item render data grid issue

527
0
09-24-2013 02:23 AM
NadirHussain
Occasional Contributor II
protected function application1_creationCompleteHandler(event:FlexEvent):void
   {
    // TODO Auto-generated method stub
     ValuesList = new ArrayCollection(
     [
      {color:"0xFFFF00", Name:"One",  selected:false},
      {color:"0x990000", Name:"Two",  selected:false},
      {color:"0x000066", Name:"Three",selected:false},
      {color:"0x666666", Name:"Four", selected:false}
     ]
    );
   
   }

protected function dataGrid_gridClickHandler(event:GridEvent):void
   {
    // TODO Auto-generated method stub
    try
    {
     //if(event.columnIndex==1)
     {
          var obj:Object;
       var obj1:Object;
             obj=event.item;
        var bool:Boolean=obj.selected;//ValuesList[3]["selected"];
       // var obj1=
          // if(bool)
      //   lbl.visible=true;
       // else
      //   lbl.visible=false;
        //lbl.text=obj.selected;
        lbl1.text=ValuesList[event.rowIndex]["color"];
        //Alert.show(ValuesList[event.rowIndex]["color"]);
     }
    }
    catch(err:Error)
    {
     Alert.show(err.message);
    }
   }
  
  ]]>
</fx:Script>
<fx:Declarations>
  <!-- Place non-visual elements (e.g., services, value objects) here -->
 
</fx:Declarations>
<s:DataGrid id="dataGrid" dataProvider="{ValuesList}" x="0" y="0" height="300" width="400" gridClick="dataGrid_gridClickHandler(event)" >
  <s:columns>
   <s:ArrayList>
    <s:GridColumn id="GridCol0" headerText="Col1" />
    <s:GridColumn id="GridCol1" headerText="Col2"  dataField="selected" editable="false"  >
     <s:itemRenderer>
      <fx:Component>
       <s:GridItemRenderer>
        <fx:Script>
         <![CDATA[
          import mx.controls.Alert;
          import mx.events.FlexEvent;
          public override function set data(value:Object):void
          {
           super.data=value
           if (value==null)
           {
            cb.selected=false
           }
           else
           {
            cb.selected=value.isEnabled as Boolean;
           }
          }
          /*
          override public function get value():Object {
           return cb.selected;
          
          }
          */
          override public function prepare(hasBeenRecycled:Boolean):void
          {
           cb.selected = grid.selectionContainsIndex(rowIndex);
          }
         
          protected function cb_creationCompleteHandler(event:FlexEvent):void
          {
           // TODO Auto-generated method stub
           try
           {
            if(data!=null){       
             if(data.selected){
              event.currentTarget.selected=true;
             }else{
              event.currentTarget.selected=false;
             }
            }
           }
           catch(err:Error)
           {
            Alert.show(err.message);
           }
          }
         
          protected function cb_changeHandler(event:Event):void
          {
           // TODO Auto-generated method stub
           if(cb.selected)
             data.selected=true;
           else
            data.selected=false;
           //Alert.show(cb.selected+"");
          }
         
         
         
          protected function cb_updateCompleteHandler(event:FlexEvent):void
          {
           // TODO Auto-generated method stub
           if(data!=null){       
            if(data.selected){
             event.currentTarget.selected=true;
            }else{
             event.currentTarget.selected=false;
            }
           }
          
          }
         
         ]]>
        </fx:Script>
        <s:CheckBox id="cb" change="cb_changeHandler(event)" updateComplete="cb_updateCompleteHandler(event)" creationComplete="cb_creationCompleteHandler(event)"  />
       </s:GridItemRenderer>
      </fx:Component>
     </s:itemRenderer>
    </s:GridColumn>
    <s:GridColumn id="GridCol2" headerText="Col3"  itemRenderer="clrRenderer" />
   </s:ArrayList>
  </s:columns>
</s:DataGrid>
i am facing the problem for getting the current state of checkbox.when i click chcekbox inside data grid i get the old  state.By means when i click on checkbox i get the current state not the  state which will be change.like if it is unselect and i clcik it will select it give me unselect.please give me some clue.
thanks
in advance
Tags (2)
0 Kudos
0 Replies