我有简单的mxml代码
<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>
我想添加行到我的表datagrid如何做这样的事情?
如何在mxml和/或actionsctpt中将列添加到Adobe flex mx:DataGrid?
(You我可以将此代码放在Flash或AIR应用程序中-它将编译而不会出错,但不会添加任何列=()
3条答案
按热度按时间d6kp6zgx1#
据我所知,您正在尝试动态地向Datagrid添加一些列:
0yycz8jy2#
添加行的最佳方法是使用可绑定的dataProvider,我更喜欢ArrayCollection类。
然后,在数据网格中,不要通过MXML定义DP,而是按如下方式添加:
然后,您可以通过操作脚本将项目添加到MyAC var中来添加行:
因为它是绑定的,所以它将自动显示在dataGrid中。
假设您在MXML中定义了列,如示例所示,您可以按如下方式添加“裁判”列:
感谢ClownBaby添加AS的列,该列已经发布。
2010年2月1日编辑:完整代码示例
bxgwgixi3#
下面的示例向datagrid“myGrid”添加10列