刚刚接触flex,以前用html做网页的时候,碰到循环数据的list时,都会在第一列放一个checkbox,然后提供全选和全取消的按钮。flex中的datagrid也想全选,可是不知道怎么实现,在网上查了好多都是说加一个checkbox列实现。可是我觉得datagrid这么强大的东西不可能非得用checkbox实现吧。研究了半天终于知道了,只要把selectedItems属性设置成datagrid中的array就行了,原来这么简单,看来真要找本书好好从头学习一下了。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var list:ArrayCollection = new ArrayCollection();
public function init():void{
list.addItem({a:"foo1", b:"bar1"});
list.addItem({a:"foo2", b:"bar2"});
list.addItem({a:"foo3", b:"bar3"});
list.addItem({a:"foo4", b:"bar4"});
}
public function selAll():void{
dg.selectedItems=list.toArray();
}
]]>
</mx:Script>
<mx:DataGrid x="199" y="210" dataProvider="{list}" id="dg" allowMultipleSelection="false">
</mx:DataGrid>
<mx:Button x="199" y="389" label="Button" click="selAll()"/>
</mx:Application>