I have simple mxml code
<mx:DataGrid id="DGG"
editable="true">
<mx:dataProvider>
<mx:Object scheduledDate="4/1/2006"/>
</mx:dataProvider>
</mx:DataGrid>
<mx:Button id="SetBut"
label="Set Array as Data Provider"
click="SetDP(); AddBut.visible = true;"
x="100.5"
y="164"
width="211"/>
<mx:Button id="AddBut"
label="Add a column!"
click="AddCol();"
x="100.5"
y="194"
width="211"
visible="false"/>
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridColumn;
import mx.collections.ArrayCollection;
[Bindable]
public var MyAC:ArrayCollection=new ArrayCollection([{scheduledDate: "4/1/2006", homeTeam: "Chester Bucks"}]);
public function SetDP():void
{
DGG.dataProvider=MyAC
}
public function AddCol():void
{
MyAC.addItem({scheduledDate: "4/5/2007", homeTeam: "Long Valley Hitters", Umpire: "Amanda Hugenkis"});
DGG.columns.push(new DataGridColumn("Umpire"));
}
]]>
</mx:Script>
I want to add rows to my table datagrid how to do such thing?
How to add Column to Adobe flex mx:DataGrid in mxml and/or actionsctpt?
(You can put this code in Flash or AIR app – it will compile with no errors, but will not add any columns=( )
The best way to add rows is to use a bindable dataProvider, and I prefer the ArrayCollection Class.
Then in your datagrid, instead of defining your DP through MXML add it like this:
Then you can add rows by adding items into your MyAC var via action script:
Since it’s bound it will automatically show up in the dataGrid.
Assume you define your columns in MXML as in your example you can add the Umpire column like so:
Credit to ClownBaby for the column adding AS that was already posted.
EDIT 2/1/2010: Full Code Example