Javascript 如何在flex中将记录动态附加到数组中?

Javascript 如何在flex中将记录动态附加到数组中?,javascript,arrays,apache-flex,Javascript,Arrays,Apache Flex,我在flex中有一个mxml视图,我需要动态地向DataGrid组件添加数据 这是初始化DataGrid的地方: <mx:DataGrid id="myGrid" width="100%" dataProvider="{initDG}" > <mx:columns> <mx:DataGridColumn dataField="Identifier" /> <mx:DataGridColumn dataFie

我在flex中有一个mxml视图,我需要动态地向DataGrid组件添加数据

这是初始化DataGrid的地方:

<mx:DataGrid id="myGrid" width="100%"
    dataProvider="{initDG}" >
    <mx:columns>
        <mx:DataGridColumn dataField="Identifier" />
        <mx:DataGridColumn dataField="Name" />
    </mx:columns> 
</mx:DataGrid>
我之所以使用这种方法,是因为如果
DGArray
是一个静态数组,它就可以工作:

 private var DGArray:Array = [
     {Identifier:'001', Name:'Slanted and Enchanted'},
     {Identifier:'002', NAme:'Brighten the Corners'}];
谁能告诉我如何创建记录并将其添加到DGArray中

谢谢:)

简而言之 通过
ArrayCollection
实例而不是通过
Array
实例添加或删除项

这就是原因
ArrayCollection
——顾名思义——实际上只不过是
Array
的包装器,它添加了一些功能,在使用Flex框架时非常方便

所以当你这么做的时候

initDG.addItem(theNewItem);
该新项目也将自动添加到基础数组中。
此外,此函数还将发送一个,它将通知
DataGrid
,其数据提供程序中的数据已更改,应重新绘制以反映这些更改

另一方面,如果你这样做了

DGArray.push(theNewItem);
就像您所做的那样,您可以直接更改底层数组。这并没有破坏任何东西;您仍然可以通过ArrayCollection.getItemAt()访问新项目,但DataGrid从未收到更改通知,因此它没有重新绘制并继续显示旧数据

DGArray.push(theNewItem);