我需要将Adobe Flex中的datagrid表转换为ArrayCollection。我希望能够循环遍历数据网格的每一行并将其写入Array集合,但是我可以找到的唯一可以访问数据网格中的数据的方法是SelectedItem,这对我没有帮助。
显然,人们可以只为数据网格复制dataProvider,但我的数据网格是可编辑的,我需要在任何时候将数据网格的状态存储到数据库中。任何人都可以推荐一种方法吗?
-Matt
答案 0 :(得分:3)
如果你的DataGrid是:
<mx:DataGrid id="someDG" dataProvider="{this.provider}" />
然后检查this.provider是Array还是ArrayCollection。如果是ArrayCollection,则只需通过以下方式访问它:
var gotIt:ArrayCollection = this.someDG.dataProvider as ArrayCollection;
如果是数组,那么:
var gotIt:ArrayCollection = new ArrayCollection(this.someDG.dataProvider as Array);
希望这有帮助。
答案 1 :(得分:2)
您可以通过迭代列中的字段来完成此操作,但您应该使用数据提供程序。如果数据状态所在的唯一位置是临时用户界面控件,则必须将其恢复到域对象中并将其序列化。据推测,datagrid中的每一行都是某种对象,在这种情况下,我会重新解决您的问题,如何保持数据网格中的编辑和域对象同步。如果你破解那么就没有必要迭代数据网格了。
解决同步问题的最简单方法是在数据网格中观看编辑渲染器上的事件。当网格内容更改时,您将自动更新域对象。
网格中有哪些编辑器?