Hi jo

I've had a little play around with what you gave and came up with the 
following example. Let us know if this is what you want.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>
  <mx:Script>
  <![CDATA[
 import mx.controls.dataGridClasses.DataGridColumn;
 import mx.collections.ArrayCollection;
 import mx.collections.IList;
                        
  public function startUP():void
  {
    var myObject:Object = {0:"0", 1:"1", 2:"2"}
                                
    var columns:ArrayCollection = new ArrayCollection();
    columns.addItem("parent");
    columns.addItem("cell1");
    columns.addItem("cell2");
    columns.addItem("dummy");
                                
    //create columns    
    var colArray1:Array = [];
    for(var i:int=0;i<columns.length;i++)
    {
        var dgCol:DataGridColumn = new DataGridColumn();
        dgCol.dataField = columns[i];
        colArray1.push(dgCol);
    }
                                
    dg.columns = colArray1;                     
                                                                
    //let say 3 rows:
    var data_:ArrayCollection = new ArrayCollection;
    var rowData_:Map;
                                
    rowData_ = new Map();
    rowData_.put(columns[0],"root1");
    rowData_.put(columns[1],55);
    rowData_.put(columns[2],100);
    rowData_.put(columns[3],myObject[0]);
    data_.addItem(rowData_);
                
    rowData_ = new Map();
    rowData_.put(columns[0],"root1");
    rowData_.put(columns[1],34);
    rowData_.put(columns[2],10);
    rowData_.put(columns[3],myObject[1]);
    data_.addItem(rowData_);
                        
    rowData_ = new Map();
    rowData_.put(columns[0],"root1");
    rowData_.put(columns[1],6);
    rowData_.put(columns[2],60);
    rowData_.put(columns[3],myObject[2]);
    data_.addItem(rowData_);

    // set dg dataProvider
    var dp1:Array = [];
    var obj1:Object;
                                
    for(var j:int=0;j<data_.length;j++)
    {
      var map:Map = data_.getItemAt(j) as Map;
      var meme:Object;
      obj1 = {};
                                        
      for(var k:int=0;k<dg.columnCount;k++)
      {
        meme = dg.columns[k].dataField;                                 
        obj1[meme.valueOf()] = map.getValueAt(k);
      }
                                                                                
                                
      dp1.push(obj1);
    }
                                
    dg.dataProvider = dp1;
}
]]>
</mx:Script>
<mx:DataGrid id="dg" initialize="startUP()"/>
</mx:Application>



Reply via email to