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