AdvancedDataGrid每列添加复选框和图标以及全选功能
2013-07-29 15:56
483 查看
<fx:Script>
<![CDATA[
//实现全选功能
public function checkbox1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
bool = (event.currentTarget as CheckBox).selected;
var newAC:ArrayCollection = dgDedicated.dataProvider as ArrayCollection;
for(var i:int=0; i<newAC.length; i++){
newAC.getItemAt(i).selected = bool;
}
newAC.refresh();
}
]]>
</fx:Script>
<mx:AdvancedDataGrid width="100%" height="65%" id="dgDedicated" dataProvider="{ac}"
draggableColumns="false" sortExpertMode="true" rowHeight="25" headerHeight="25"
sortableColumns="false" lockedColumnCount="1"
horizontalScrollPolicy="auto" verticalScrollPolicy="auto"
>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="num">
<mx:headerRenderer>
<fx:Component>
<mx:HBox height="25" paddingLeft="5">
<s:CheckBox id="cb" label="序号" click="outerDocument.checkbox1_clickHandler(event)"/>
</mx:HBox>
</fx:Component>
</mx:headerRenderer>
<mx:itemRenderer>
<fx:Component>
<components:EditColumnGrid txt="{data.num}" paddingLeft="5" paddingRight="5"
imageClickEvent="outerDocument.onClickIconHandler(event)"/>
<!-- 渲染器里面调用自定义的imageClickEvent就将事件派发出去了 -->
</fx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn headerText="名称" dataField="name">
<mx:itemRenderer>
<fx:Component>
<mx:Label text="{data.name}" mouseDown="itemMouseDownHandler(event)"
mouseUp="itemMouseUpHandler(event)">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
//点击单元格查看详细信息
protected function itemMouseUpHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
Alert.show(data.name+".....");
// parentDocument.md.visible = false;
}
protected function itemMouseDownHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
}
]]>
</fx:Script>
</mx:Label>
</fx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn headerText="地市" dataField="city"/>
<mx:AdvancedDataGridColumn headerText="IP地址" dataField="ip"/>
</mx:columns>
</mx:AdvancedDataGrid>
下面是EditColumnGrid类
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" height="25" horizontalGap="0">
<fx:Metadata>
[Event(name="imageClickEvent",type="common.events.DataGridImageClickEvent")]
</fx:Metadata>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import common.events.DataGridImageClickEvent;
[Bindable]
private var _txt:String;
public function set txt(lab:String):void{
_txt = lab;
}
public function get txt():String{
return _txt;
}
protected function img_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
this.dispatchEvent(new DataGridImageClickEvent("imageClickEvent",event.currentTarget.name,null));
}
protected function sec_clickHandler(event:MouseEvent,data:Object):void
{
// TODO Auto-generated method stub
this.dispatchEvent(new DataGridImageClickEvent("imageClickEvent",event.currentTarget.name,data));
}
override public function set data(value:Object):void{
super.data = value;
if(data==null){
return;
}
if(data.selected==true){
sec.selected = true;
}else{
sec.selected = false;
}
}
]]>
</fx:Script>
<s:CheckBox id="sec" label="{_txt}" selected="{data.selected}" name="sec" click="sec_clickHandler(event,data)"/>
<s:Spacer width="80%"/>
<s:Image source="@Embed(source='assets/imgs/updata.png')"
toolTip="修改" id="modify" name="modify" click="img_clickHandler(event)"/>
<s:Image source="@Embed(source='assets/imgs/delete.png')"
toolTip="删除" id="del" name="del" click="img_clickHandler(event)"/>
</mx:HBox>
事件派发类DataGridImageClickEvent
package common.events
{
import flash.events.Event;
public class DataGridImageClickEvent extends Event
{
private var _imageName:String;
private var _dataObj:Object;
public function DataGridImageClickEvent(type:String,imgName:String,dataObj:Object)
{
super(type);
_imageName = imgName;
_dataObj = dataObj;
}
/**
* 得到图片的name属性
*/
public function get imageName():String{
return _imageName;
}
public function get dataObj():Object{
return _dataObj;
}
override public function clone():Event{
return new DataGridImageClickEvent(type,_imageName,_dataObj);
}
}
}
<![CDATA[
//实现全选功能
public function checkbox1_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
bool = (event.currentTarget as CheckBox).selected;
var newAC:ArrayCollection = dgDedicated.dataProvider as ArrayCollection;
for(var i:int=0; i<newAC.length; i++){
newAC.getItemAt(i).selected = bool;
}
newAC.refresh();
}
]]>
</fx:Script>
<mx:AdvancedDataGrid width="100%" height="65%" id="dgDedicated" dataProvider="{ac}"
draggableColumns="false" sortExpertMode="true" rowHeight="25" headerHeight="25"
sortableColumns="false" lockedColumnCount="1"
horizontalScrollPolicy="auto" verticalScrollPolicy="auto"
>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="num">
<mx:headerRenderer>
<fx:Component>
<mx:HBox height="25" paddingLeft="5">
<s:CheckBox id="cb" label="序号" click="outerDocument.checkbox1_clickHandler(event)"/>
</mx:HBox>
</fx:Component>
</mx:headerRenderer>
<mx:itemRenderer>
<fx:Component>
<components:EditColumnGrid txt="{data.num}" paddingLeft="5" paddingRight="5"
imageClickEvent="outerDocument.onClickIconHandler(event)"/>
<!-- 渲染器里面调用自定义的imageClickEvent就将事件派发出去了 -->
</fx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn headerText="名称" dataField="name">
<mx:itemRenderer>
<fx:Component>
<mx:Label text="{data.name}" mouseDown="itemMouseDownHandler(event)"
mouseUp="itemMouseUpHandler(event)">
<fx:Script>
<![CDATA[
import mx.controls.Alert;
//点击单元格查看详细信息
protected function itemMouseUpHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
Alert.show(data.name+".....");
// parentDocument.md.visible = false;
}
protected function itemMouseDownHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
}
]]>
</fx:Script>
</mx:Label>
</fx:Component>
</mx:itemRenderer>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn headerText="地市" dataField="city"/>
<mx:AdvancedDataGridColumn headerText="IP地址" dataField="ip"/>
</mx:columns>
</mx:AdvancedDataGrid>
下面是EditColumnGrid类
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" height="25" horizontalGap="0">
<fx:Metadata>
[Event(name="imageClickEvent",type="common.events.DataGridImageClickEvent")]
</fx:Metadata>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import common.events.DataGridImageClickEvent;
[Bindable]
private var _txt:String;
public function set txt(lab:String):void{
_txt = lab;
}
public function get txt():String{
return _txt;
}
protected function img_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
this.dispatchEvent(new DataGridImageClickEvent("imageClickEvent",event.currentTarget.name,null));
}
protected function sec_clickHandler(event:MouseEvent,data:Object):void
{
// TODO Auto-generated method stub
this.dispatchEvent(new DataGridImageClickEvent("imageClickEvent",event.currentTarget.name,data));
}
override public function set data(value:Object):void{
super.data = value;
if(data==null){
return;
}
if(data.selected==true){
sec.selected = true;
}else{
sec.selected = false;
}
}
]]>
</fx:Script>
<s:CheckBox id="sec" label="{_txt}" selected="{data.selected}" name="sec" click="sec_clickHandler(event,data)"/>
<s:Spacer width="80%"/>
<s:Image source="@Embed(source='assets/imgs/updata.png')"
toolTip="修改" id="modify" name="modify" click="img_clickHandler(event)"/>
<s:Image source="@Embed(source='assets/imgs/delete.png')"
toolTip="删除" id="del" name="del" click="img_clickHandler(event)"/>
</mx:HBox>
事件派发类DataGridImageClickEvent
package common.events
{
import flash.events.Event;
public class DataGridImageClickEvent extends Event
{
private var _imageName:String;
private var _dataObj:Object;
public function DataGridImageClickEvent(type:String,imgName:String,dataObj:Object)
{
super(type);
_imageName = imgName;
_dataObj = dataObj;
}
/**
* 得到图片的name属性
*/
public function get imageName():String{
return _imageName;
}
public function get dataObj():Object{
return _dataObj;
}
override public function clone():Event{
return new DataGridImageClickEvent(type,_imageName,_dataObj);
}
}
}
相关文章推荐
- .NET漫游指南-004-在dataGrid中添加CheckBox支持单选,多选,全选功能
- echarts图标legend全选功能添加
- EasyUI datagrid 复选框可以多选但不能全选功能实现
- ASP.NET给DataGrid,Repeater等添加全选批量删除等功能(转)
- flex的DataGrid的标题中添加图标以及限制单元格的输值
- 用原生js实现复选框选择以及全选非全选功能 (待看)
- lightswitch datagrid 动态添加复选框的功能。
- 【winform组件修改】给datagrid添加全选功能
- 实现AdvancedDataGrid全选功能
- 周末在家闲得慌,整理了一下flex AdvancedDataGrid实现checkBox全选功能
- 给dataGridView的标题处添加复选框,并实现全选功能
- 三步,往Datagrid中添加,全选复选框
- asp:DataGrid之添加asp:CheckBox做全选功能时涉及到绑值问题解决
- 为DataGridView 添加复选框,实现全选功能
- ASP.NET给DataGrid,Repeater等添加全选批量删除等功能
- 实现AdvancedDataGrid全选功能
- jquery实现全选、反选以及删除、添加等功能
- [置顶] 带图标工具栏的创建以及提示功能的添加
- Jquery 实现动态添加table tr 和删除tr 以及checkbox的全选 和 获取添加TR删除TR后的数据
- 关于css中树形的开闭以及复选框checkbox如何全选取消的实现