如何重置Arraycollection并重新初始化和覆盖Arraycollection并刷新FLEX 4中的datagrid

时间:2013-09-27 15:31:13

标签: flex datagrid flex4

我在使用flex的datagrid中列出了一个Arraycollection,在datagrid中我有一个删除行的按钮,之后我通过从java服务中获取数组再次重新分配相同的Arraycollection

我的代码:

<mx:DataGrid width="100%" height="100%" dataProvider="{xxx}" >
<mx:columns>
    <mx:DataGridColumn dataField="name" headerText="Name"/>
    <mx:DataGridColumn dataField="status" headerText="Status"/>
    <mx:DataGridColumn dataField="path" headerTeUxt="Actions" wordWrap="true" minWidth="120">
        <mx:itemRenderer>
            <mx:Component>
            <mx:Script>
                <![CDATA[
                    protected function deliteminlist(event:MouseEvent):void
                    {
                            //delete a value in arrayCollection
                            //Fetch the array collection from java Service
                            //assigning to variable dataprovider variable
                            _view.xxx = null;
                            _view.xxx = temp;
                            //xxx is the arraycollection and dataprovider for the datagrid
                    }
                ]]>
            </mx:Script>
            <mx:Image source="@Embed(source='/assets/images/clone.png')" click="deliteminlist(event)" />
            </mx:Component>
        </mx:itemRenderer>
    </mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>

这会引发错误(发生内部错误 - 错误#1010。 )数据网格中没有刷新数据。

1 个答案:

答案 0 :(得分:1)

您正在使用内联项呈示器。它的范围与父视图不同,因此您不能引用_view.xxx(不在范围内)。

您可以尝试 outerDocument 关键字来解决此问题。

outerDocument.xxx = null;
outerDocument.xxx = temp;