1

我正在使用 flex 在数据网格中列出一个 Arraycollection,在数据网格内部我有一个删除一行的按钮,之后我通过从 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。)并且数据网格中的数据未刷新。

4

1 回答 1

1

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

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

outerDocument.xxx = null;
outerDocument.xxx = temp;
于 2014-01-06T11:01:40.677 回答