PDA

View Full Version : Advance DataGrid on the-fly


pasensyoso_mani
09-13-2010, 06:01 AM
Hi there coders,

I'm learning flex about a week or two. Am using Flex 4, may I ask some guidance of creating a component on-the-fly particularly an advancedatagrid object.

This advancedatagrid will have an advancedcolumn and advancecolumngroup on it. Please show me the right way to do this on-the-fly.


Best Regards!

Inigoesdr
09-13-2010, 06:33 AM
You can see an MXML example here (http://livedocs.adobe.com/flex/3/langref/mx/controls/AdvancedDataGrid.html#includeExamplesSummary). This is (almost) the same thing in pure AS3:
import mx.collections.ArrayCollection;
import mx.collections.Grouping;
import mx.collections.GroupingCollection2;
import mx.collections.GroupingField;
import mx.controls.AdvancedDataGrid;
import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;

private function init():void
{

var testData:ArrayCollection = new ArrayCollection([
{Region:"Southwest", Territory:"Arizona", Territory_Rep:"Barbara Jennings", Actual:38865, Estimate:40000},
{Region:"Southwest", Territory:"Arizona", Territory_Rep:"Dana Binn", Actual:29885, Estimate:30000},
{Region:"Southwest", Territory:"Central California", Territory_Rep:"Joe Smith", Actual:29134, Estimate:30000},
{Region:"Southwest", Territory:"Nevada", Territory_Rep:"Bethany Pittman", Actual:52888, Estimate:45000},
{Region:"Southwest", Territory:"Northern California", Territory_Rep:"Lauren Ipsum", Actual:38805, Estimate:40000},
{Region:"Southwest", Territory:"Northern California", Territory_Rep:"T.R. Smith", Actual:55498, Estimate:40000},
{Region:"Southwest", Territory:"Southern California", Territory_Rep:"Alice Treu", Actual:44985, Estimate:45000},
{Region:"Southwest", Territory:"Southern California", Territory_Rep:"Jane Grove", Actual:44913, Estimate:45000}
]);


var myADG:AdvancedDataGrid = new AdvancedDataGrid();
myADG.columns = new Array(new AdvancedDataGridColumn('Territory'), new AdvancedDataGridColumn('Territory_Rep'), new AdvancedDataGridColumn('Actual'), new AdvancedDataGridColumn('Estimate'));

var myGroup:Grouping = new Grouping();
myGroup.fields = new Array(new GroupingField('Region'), new GroupingField('Territory'));

var myGroupingCollection:GroupingCollection2 = new GroupingCollection2();
myGroupingCollection.source = testData;
myGroupingCollection.grouping = myGroup;
myGroupingCollection.refresh();

myADG.dataProvider = myGroupingCollection;
myADG.validateNow();

container.addElement(myADG);
}
"container" is the ID of the element you want to append the ADG to.

pasensyoso_mani
09-14-2010, 05:59 AM
Thanks maaan...! I will test this when I get home.

Got a question. How am I going to render a textbox in the AdvancedDataGrid header or shall I say columngroup?