您的位置:首页 > 其它

flex DataGrid 标题上放 CheckBox 实现全选

2012-05-15 15:41 423 查看
利用headerRenderer加入checkbox然后这个checkbox调用外部方法实现全选.

附送代码片段,如有不懂可以追问.

<mx:DataGridColumn headerText=" " width="20">

<mx:headerRenderer>

<mx:Component>

<mx:VBox horizontalAlign="center">

<mx:CheckBox id="chball" selected="{outerDocument.ISsel}" change="outerDocument.selectAll(this)" creationComplete="outerDocument.setObjChb(this)"/>

</mx:VBox>

</mx:Component>

</mx:headerRenderer>

<mx:itemRenderer>

<mx:Component>

<mx:VBox width="100%" horizontalAlign="center">

<mx:CheckBox id="cbox" selected="{int(data.chk)}" selectedField="{int(data.chk)}" click="outerDocument.checkClick(this)"/>

</mx:VBox>

</mx:Component>

</mx:itemRenderer>

</mx:DataGridColumn>

//调用的外部方法

public function selectAll(obj:Object):void

{

ISsel=!ISsel;

if (dataArray.length > 0)

{

if (obj.chball.selected == true)

{

for (var i:int=0; i < dataArray.length; i++)

{

dataArray[i].chk=1;

}

for(var i:int = 0; i < dataArray.length;i++){

if(dataArray[i].chk == 1){

//绑定被选中的数据

arr.addItem(dataArray[i]);

}

}

aa.text = "已选择"+dataArray.length+"名";

}else{

for (var j:int=0; j < dataArray.length; j++)

{

dataArray[j].chk=0;

}

aa.text = "已选择"+0+"名";

arr.removeAll();

}

dataArray.refresh();

}

}

public function setObjChb(obj:Object):void

{

this.objChb=obj;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: