Flex4 - 数据源数据更改后,重新刷新列表数据
列表或表格绑定到一个数据源上,当数据源内的数据发生改变时,对应列表是不会同步更新数据的。
要想表格数据全部更新,或更新具体某一项,可进行如下操作:
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Script> <![CDATA[ import mx.collections.ListCollectionView; protected function refresh(event:MouseEvent):void { myData.getItemAt(1).text = "修改"; //单独更新某一条数据 ListCollectionView(list.dataProvider).itemUpdated(myData.getItemAt(1)); //跟新所有数据 ListCollectionView(list.dataProvider).refresh(); } ]]> </fx:Script> <fx:Declarations> <s:ArrayCollection id="myData"> <fx:Object text="项目1"/> <fx:Object text="项目2"/> <fx:Object text="项目3"/> </s:ArrayCollection> </fx:Declarations> <s:VGroup horizontalCenter="0" verticalCenter="0"> <s:List id="list" dataProvider="{myData}" labelField="text"/> <s:Button label="刷新" click="refresh(event)"/> </s:VGroup> </s:Application>
效果图如下: