flex DataGrid checkbox 全选 单选 反选 XMLListCollection ArrayCollection 转换

每个功能需求不一样,网上有很多例子


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.controls.CheckBox;
import mx.events.FlexEvent;

//XMLListCollection.source 转成xmllist xmlListCollection.source=xmlList;
//XMLListCollection.toArray() 转成ArrayCollection provider=new ArrayCollection(xmlListCollection.toArray()); grid.dataProvider=provider;


[Bindable]
private var dataSource:ArrayCollection=new ArrayCollection([
{id: 0, name: "test1", age: 12, checked:false},
{id: 1, name: "test1", age: 12, checked:false},
{id: 2, name: "test2", age: 40, checked:false},
{id: 3, name: "test3", age: 20, checked:false},
{id: 4, name: "test1", age: 12, checked:false},
{id: 5, name: "test4", age: 18, checked:false},
{id: 6, name: "test5", age: 60, checked:false}]);

//得到选中项的值
public function test():void
{
var allRows:int = dataSource.length;
for (var i:int = 0; i < allRows; i++){
if(dataSource[i].checked==true){
Alert.show(i.toString());
Alert.show(dataSource.getItemAt(i).name);
}else{
Alert.show("至少选中一个");
}
}
//数据源没有值,不给出提示
Alert.show("数据源没有值");
}

public function selectAllCheckboxes(obj:Object):void{
var allRows:int = dataSource.length;
for (var i:int = 0; i < allRows; i++){
if(adGrid.selectedIndex==i){
dataSource[i].checked = true;
}else{
dataSource[i].checked = false;
}
}
dataSource.refresh();
}


public function selects():void{
var allRow:int = dataSource.length;
for (var i:int = 0; i < allRow; i++){
if (selectAll.selected == true){
trace ("Checked is true");
dataSource[i].checked = true;
}else{
trace ("Checked is false");
dataSource[i].checked = false;
}
}
dataSource.refresh();
}

]]>
</mx:Script>

<mx:VBox>

<mx:HBox >
<mx:DataGrid id="adGrid"
width="300"
height="253"
fontSize="14"
dataProvider="{dataSource}"
x="262.5"
y="203">

<mx:columns>
<mx:DataGridColumn headerText="序号"
dataField="id"/>
<mx:DataGridColumn headerText="名称"
dataField="name"/>

<mx:DataGridColumn headerText="是否选择" dataField="checked"
textAlign="center">
<mx:itemRenderer>
<mx:Component>
<mx:HBox verticalAlign="middle" horizontalAlign="center">
<mx:CheckBox id="checkbox" selected="{data.checked}" click="outerDocument.selectAllCheckboxes(this)"/>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:HBox>

<mx:HBox>
<mx:Button label="哪些被选中了?" click="test()"/>
<mx:CheckBox id = "selectAll" label="Select/Deselect All" click="selects();" left="10" top="175"/>
</mx:HBox>

</mx:VBox>
</mx:Application>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值