Hi Gaurav,
Create item render with Radio button and assign to all columns. If user 
select radiobutton in any column then update all other columns datafield to 
false. Its works like radio button group.
Flex 3 Working Code:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; layout="absolute" 
minWidth="955" minHeight="600" >
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
[Bindable] private var initDG:ArrayCollection = new ArrayCollection([
{col1:true, col2:false, col3:false},
{col1:false, col2:true, col3:false},
{col1:false, col2:false, col3:true}
]);
 protected function init(event:Event):void
{
dg.addEventListener(FlexEvent.DATA_CHANGE, dataChangeHandler);
}
 private function dataChangeHandler(evt:FlexEvent):void
{
initDG.refresh();
}
 ]]>
</mx:Script>
<mx:DataGrid id="dg"  dataProvider="{initDG}" 
creationComplete="init(event)">
<mx:columns>
<mx:DataGridColumn dataField="col1" headerText="Column 1" 
itemRenderer="RBRenderer"/>
<mx:DataGridColumn dataField="col2" headerText="Column 2" 
itemRenderer="RBRenderer"/>
<mx:DataGridColumn dataField="col3" headerText="Column 3" 
itemRenderer="RBRenderer"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>

ItemRenderer:

<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml"; 
implements="mx.controls.listClasses.IDropInListItemRenderer">
 <mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.BaseListData;
import mx.events.FlexEvent;
 private var _listData:BaseListData;
 override public function set data(value:Object):void
{
super.data = value;
var li:DataGridListData = _listData as DataGridListData;
rb.selected = data[li.dataField]; 
}
 protected function rbChangeHandler(event:Event):void
{
var li:DataGridListData = _listData as DataGridListData;
data[li.dataField]  = rb.selected; 
 for(var i:String in data)
{ 
if(i != li.dataField)
{ 
data[i]  = false;
}
}
 dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE, true));
 } 
 public function get listData():BaseListData
{
return _listData;
}

public function set listData(value:BaseListData ) : void
{ 
_listData = value; 
} 
]]>
</mx:Script>
 <mx:RadioButton id="rb" change="rbChangeHandler(event)" />
</mx:HBox>


Flex 4 Working code:
var initDG:ArrayCollection = new ArrayCollection([
{col1:true, col2:false, col3:false},
{col1:false, col2:true, col3:false},
{col1:false, col2:false, col3:true}
]);

<s:DataGrid dataProvider="{initDG}" width="400" height="200">   
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="col1" itemRenderer="RBRenderer"/>
<s:GridColumn dataField="col2" itemRenderer="RBRenderer"/>
<s:GridColumn dataField="col3" itemRenderer="RBRenderer"/>
</s:ArrayList>
</s:columns>       
</s:DataGrid>

Item Renderer:
<?xml version="1.0" encoding="utf-8"?>
<s:GridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"; 
xmlns:s="library://ns.adobe.com/flex/spark" 
xmlns:mx="library://ns.adobe.com/flex/mx" clipAndEnableScrolling="true">
 <fx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.BaseListData;
 private var _listData:DataGridListData;
override public function prepare(hasBeenRecycled:Boolean):void {
rb.selected = data[column.dataField]
}
 protected function rb_changeHandler(event:Event):void
{
 data[column.dataField] = rb.selected; 
for(var i:String in data)
{
if(i != column.dataField)
{
data[i]  = false;
}
}
 }
 override public function set data(value:Object):void
{ 
super.data = value;
}
 public function get listData():BaseListData
{
return _listData;
}
 // Define the setter method,
public function set listData(value:BaseListData):void
{
_listData = DataGridListData(value);
}
 ]]>
</fx:Script>
<s:RadioButton id="rb" change="rb_changeHandler(event)" />
</s:GridItemRenderer>

-- 
You received this message because you are subscribed to the Google Groups "Flex 
India Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/flex_india.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to