去年的时候写了一个 DataGrid和AdvancedDataGrid CheckBox全选功能 组件,对这个组件很多朋友了很多建议,现在有点时间,新增了两个功能。
1.1 版本主要解决两个问题
1 根据DataGrid或AdvancedDataGrid的headText来设置checkbox列名称,1.0版本是写死的“选择”
2 新增getSelectedItems():Array方法,该方法用来获得checkBox选中的行。
下面是简单的例子,附件是1.1的swc包。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" minWidth="955" minHeight="600" horizontalAlign="center" creationComplete="application1_creationCompleteHandler(event)">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.FlexEvent;
import org.utmost.table.util.ColumnUtil;
[Bindable]
private var ac:ArrayCollection=new ArrayCollection([
{col1:true,col2:"1",col3:"4",col4:"df"},
{col1:false,col2:"2",col3:"42",col4:"assdf"},
{col1:true,col2:"3",col3:"41",col4:"asfa"},
{col1:false,col2:"4",col3:"14",col4:"aasf"},
{col1:true,col2:"5",col3:"45",col4:"fasd"},
{col1:true,col2:"6",col3:"48",col4:"asfdf"},
{col1:false,col2:"7",col3:"04",col4:"asfd"},
{col1:true,col2:"8",col3:"49",col4:"asasf"}
]);
private var cu:ColumnUtil;
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
cu=ColumnUtil.getInstance();
cu.addCheckBox(column1,grid);
}
protected function button1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
var items:Array=cu.getSelectedItems();
if(items==null){
Alert.show("没有选中");
}else{
Alert.show("选中"+items.length);
}
}
]]>
</mx:Script>
<mx:Button label="获得选中的列" click="button1_clickHandler(event)"/>
<mx:DataGrid width="400" height="300" dataProvider="{ac}" id="grid">
<mx:columns>
<mx:DataGridColumn dataField="col1" id="column1" headerText="测试22" sortable="false" />
<mx:DataGridColumn dataField="col2" />
<mx:DataGridColumn dataField="col3" />
<mx:DataGridColumn dataField="col4" />
</mx:columns>
</mx:DataGrid>
</mx:Application>