Javascript 如何在flex中将记录动态附加到数组中?
我在flex中有一个mxml视图,我需要动态地向DataGrid组件添加数据 这是初始化DataGrid的地方: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
<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);