Flex:用checkBox实现DataGrid所有行的选择(全选)
2009-07-28 15:22
411 查看
<?xml version="1.0" encoding="utf-8"?>
<!-- http://yecon.blog.hexun.com/30014829_d.html -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onInit()">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var userAC:ArrayCollection = new ArrayCollection();
[Bindable]
private var headerThumb:ClassFactory;
public var isAllSelected:Boolean = false;
private function onInit():void{
var obj1:User = new User();
obj1.name = "Tom";
obj1.age = 22;
obj1.isChecked = false;
userAC.addItem(obj1);
var obj2:User = new User();
obj2.name = "Jane";
obj2.age = 18;
obj2.isChecked = true;
userAC.addItem(obj2);
var obj3:User = new User();
obj3.name = "Doug";
obj3.age = 35;
obj3.isChecked = false;
userAC.addItem(obj3);
var obj4:User = new User();
obj4.name = "Bob";
obj4.age = 24;
obj4.isChecked = false;
userAC.addItem(obj4);
headerThumb = new ClassFactory(HeaderThumb);
headerThumb.properties = {externalObject:this,externalProperty:"isAllSelected"};
addEventListener(UserEvent.HEADER_CHANGED,headerChangedHandler);
addEventListener(UserEvent.ITEM_CHANGED,itemChangedHandler);
}
private function headerChangedHandler(event:UserEvent):void{
for each(var item:User in userAC){
item.isChecked = event.isSelected;
}
isAllSelected = event.isSelected;
}
private function itemChangedHandler(event:UserEvent):void{
isAllSelected = event.isSelected;
}
]]>
</mx:Script>
<mx:DataGrid dataProvider="{userAC}" width="300" y="10" horizontalCenter="0">
<mx:columns>
<mx:DataGridColumn headerRenderer="{headerThumb}" itemRenderer="ItemThumb" sortable="false" width="30"/>
<mx:DataGridColumn headerText="Name" dataField="name"/>
<mx:DataGridColumn headerText="Age" dataField="age"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
HeaderThumb.mxml:
<?xml version="1.0" encoding="utf-8"?>
<!-- http://yecon.blog.hexun.com/30014829_d.html -->
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="20" height="100%" preinitialize="onInit()" implements="mx.core.IFactory">
<mx:Script>
<![CDATA[
import mx.binding.utils.BindingUtils;
[Bindable]
public var isSelected:Boolean;
public var externalObject:*;
public var externalProperty:String;
private function onInit():void{
BindingUtils.bindProperty(this,"isSelected",externalObject,externalProperty);
}
public function newInstance():*{
return new HeaderThumb();
}
private function chbxHaederChanged():void{
var event:UserEvent = new UserEvent(UserEvent.HEADER_CHANGED,chbxHaeder.selected);
dispatchEvent(event);
}
]]>
</mx:Script>
<mx:CheckBox id="chbxHaeder" selected="{isSelected}" change="chbxHaederChanged()" horizontalCenter="0" verticalCenter="0"/>
</mx:Canvas>
本文转自:http://yecon.blog.hexun.com/30014829_d.html
相关文章推荐
- flex datagrid 嵌checkbox实现全选与数据存储(非绑定数据源)
- flex DataGrid 标题上放 CheckBox 实现全选
- Flex中DataGrid实现列(包括头部)中加入CheckBox全选功能 几种实现方法
- flex datagrid 嵌checkbox实现全选与数据存储(非绑定数据源)
- 在Flex中简单实现 dataGrid结合CheckBox使项目可选、全选、反选
- Flex中DataGrid实现列(包括头部)中加入CheckBox全选功能
- 如何在Flex中实现全选DataGrid中的所有Item
- 周末在家闲得慌,整理了一下flex AdvancedDataGrid实现checkBox全选功能
- Flex中DataGrid实现列(包括头部)中加入CheckBox全选功能
- CheckBox为CheckBoxList实现全选或全取消选择
- CheckBox为CheckBoxList实现全选或全取消选择(js代码实现)
- Gridview使用CheckBox全选与单选采用js实现同时高亮显示选择行
- Flex 4通过重写DataGridColumn和CheckBox类给DataGrid添加选择列-CheckBoxColumn
- 在DataGrid的头中插入CheckBox单选框定义为全选并实现整个DataGrid的每行数据前的CheckBox全选
- JavaScript实现DataGrid中添加CheckBox列(全选与否)
- javascript实现datagrid客户端checkbox列的全选,反选
- 如何实现单击在DATALIST(DATAGRID)的HEADER加入的CHECKBOX,进行DATALIST(DATAGRID)中的CHECKBOX列全选或全不选
- 在DataGrid中利用CheckBox全选所有行
- 如何全选一个DataList或DataGrid或任何一个标记内的所有checkbox
- javascript实现datagrid客户端checkbox列的全选,反选