flex复选框和下拉列表的几种用法整理
来源: 阅读:650 次 日期:2014-09-05 14:26:45
温馨提示: 小编为您整理了“flex复选框和下拉列表的几种用法整理”,方便广大网友查阅!

这几天接触了flex的很多控件,让我印象最深刻的就是控件的数据绑定几乎所有控件都可以这样做,基本上来说原理和html一样,我自己闲暇时间就整理了有关复选框可下拉的几种用法,下面就给大家分享一下。

1.复选框

这里我主要研究的该控件的全选,全不选,反选以及选中的操作,原理也就是也能用selected这个属性,true表示选中,只需遍历就能实现,此处我使用的是动态的复选框,页面代码如下

代码如下:

<mx:VBox top="50">

<mx:VBox>

<mx:Canvas width="100%" height="100%" >

<mx:Repeater id="rep" dataProvider="{array}">

<mx:CheckBox id="checkbox" label="{rep.currentItem.name}" x="{rep.currentItem.x}" data="{rep.currentItem.id}"/>

</mx:Repeater>

</mx:Canvas>

</mx:VBox>

<mx:VBox>

</mx:VBox>

</mx:VBox>

<s:Button x="90" y="81" label="全选" click="checkAll()"/>

<s:Button x="168" y="81" label="全不选" click="checkNotAll()"/>

<s:Button x="246" y="81" label="反选" click="reverse()"/>

刚看到可能比较陌生下面我把Array的定义贴出来

代码如下:

public var array:Array=new Array({"name":"语文","id":"chinese","x":"80"},{"name":"数 学","id":"math","x":"160"},{"name":"英语","id":"english","x":"240"});

这种处理一般是用于动态的数据,静态的就直接写了,下面是我的ActionScript

代码如下:

//全选

private function checkAll():void{

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

checkbox[i].selected=true;

all=all+checkbox[i].data+",";

}

Alert.show("选择了:"+all.substr(0,all.lastIndexOf(",")));

all="";

}

//全不选

private function checkNotAll():void{

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

checkbox[i].selected=false;

}

}

//反选

private function reverse():void{

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

if(checkbox[i].selected){

checkbox[i].selected=false;

}else{

checkbox[i].selected=true;

}

}

}

很简单吧,下面是下拉的使用,我的做法是先初始化下拉把数据绑定上去,之后根据需要修改下拉显示的内容,只需合理运用好下拉的selectedItem就可以修改下拉选中的值了

代码如下:

<mx:ComboBox id="subject" x="78" y="149" labelField="name" dataProvider="{array}"/>

下面是页面加载的初始化方法

<PRE class=java name="code">public function init(event:Event):void{

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

if("数学"==array[i].name){

subject.selectedIndex=i;

checkbox[i].selected=true;

}

}

}</PRE><BR>

这里我顺便把数学的复选框弄成了默认选中<BR>

看起来代码有点乱,下面我把整个页面代码都贴出来<BR>

<PRE class=html name="code"><?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

xmlns:s="library://ns.adobe.com/flex/spark"

xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" initialize="init(event)">

<fx:Declarations>

<!-- Place non-visual elements (e.g., services, value objects) here -->

</fx:Declarations>

<fx:Script>

<![CDATA[

import mx.controls.Alert;

public var all:String="";

public var array:Array=new Array({"name":"语文","id":"chinese","x":"80"},{"name":"数 学","id":"math","x":"160"},{"name":"英语","id":"english","x":"240"});

public function init(event:Event):void{

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

if("数学"==array[i].name){

subject.selectedIndex=i;

checkbox[i].selected=true;

}

}

}

//全选

private function checkAll():void{

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

checkbox[i].selected=true;

all=all+checkbox[i].data+",";

}

Alert.show("选择了:"+all.substr(0,all.lastIndexOf(",")));

all="";

}

//全不选

private function checkNotAll():void{

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

checkbox[i].selected=false;

}

}

//反选

private function reverse():void{

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

if(checkbox[i].selected){

checkbox[i].selected=false;

}else{

checkbox[i].selected=true;

}

}

}

]]>

</fx:Script>

<mx:VBox top="50">

<mx:VBox>

<mx:Canvas width="100%" height="100%" >

<mx:Repeater id="rep" dataProvider="{array}">

<mx:CheckBox id="checkbox" label="{rep.currentItem.name}" x="{rep.currentItem.x}" data="{rep.currentItem.id}"/>

</mx:Repeater>

</mx:Canvas>

</mx:VBox>

<mx:VBox>

</mx:VBox>

</mx:VBox>

<s:Button x="90" y="81" label="全选" click="checkAll()"/>

<s:Button x="168" y="81" label="全不选" click="checkNotAll()"/>

<s:Button x="246" y="81" label="反选" click="reverse()"/>

<mx:ComboBox id="subject" x="78" y="149" labelField="name" dataProvider="{array}"/>

</s:Application>

</PRE><BR>

<BR>

<PRE></PRE>

<P></P>

<PRE></PRE>

<IMG alt="" src="http://img.blog.csdn.net/20130706214231250?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbndpbGwz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">

更多信息请查看IT技术专栏

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map