Hi Akhil,
Here is the two way of creating a data grid dynamically out those two way one is commented for now so you can remove comment line and try that one also, hope these will help you, please reply
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridColumn;
import mx.controls.DataGrid;
import mx.collections.ArrayCollection;
private var myColumn:DataGridColumn;
private var arrCol:Array = new Array();
private var myDg:DataGrid;
[Bindable]
private var dataArr:ArrayCollection =
new ArrayCollection
(
[
{label0:0, label1:"label1", label2:"label2", label3:"label3", label4:"label4"},
{label0:1, label1:"label1", label2:"label2", label3:"label3", label4:"label4"},
{label0:2, label1:"label1", label2:"label2", label3:"label3", label4:"label4"}
]
);
private var labelArr:Array = new Array("label0","label1","label1","label2","label4");
private function initApp():void{
var arrCollection:ArrayCollection = new ArrayCollection();
if( myDg != null ) {
myCanvas.removeChild( myDg );
myDg = null;
}
myDg = new DataGrid();
/* for(var loopRow:int = 0; loopRow < 5; loopRow++)
{
var arrCell:Array = new Array;
for( var loopCol:int = 0; loopCol < 5;loopCol++ )
{
var str:String = 'cell['+loopRow+']['+loopCol+']';
arrCell.push(str);
}
arrCollection.addItem(arrCell);
}
myDg.dataProvider = arrCollection;
myCanvas.addChild( myDg );
*/
for( var i:int = 0; i < 5; i++ ){
myColumn = new DataGridColumn();
myColumn.headerText = 'Column'+i;
myColumn.dataField = labelArr[i];
arrCol.push( myColumn );
}
myDg.columns = arrCol;
myDg.dataProvider = dataArr;
myCanvas.addChild( myDg );
}
]]>
</mx:Script>
<mx:Canvas id="myCanvas" />
</mx:Application>
Regards,
Kalpesh Mahida