我在使用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。 )数据网格中没有刷新数据。
答案 0 :(得分:1)
您正在使用内联项呈示器。它的范围与父视图不同,因此您不能引用_view.xxx(不在范围内)。
您可以尝试 outerDocument 关键字来解决此问题。
outerDocument.xxx = null;
outerDocument.xxx = temp;