自己封装的下拉多选:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.List;
import mx.collections.ArrayCollection;
import CheckBoxItemRenderer;
private var _seletedItems:Array;
private var list:List;
public var comboData:ArrayCollection;
private function init():void
{
this.addEventListener(MouseEvent.MOUSE_OVER, addPopUp);
createCombo();
}
public function set seletedItems(value:Array):void
{
_seletedItems = value;
if(list)
{
var items:ArrayCollection = list.dataProvider as ArrayCollection;
for each(var obj:Object in items)
{
if(_seletedItems.indexOf(obj["value"]) != -1)
{
obj["checked"] = true;
}
else
{
obj["checked"] = false;
}
}
showSeleted();
}
}
public function get seletedItems():Array
{
if(list)
{
var items:ArrayCollection = list.dataProvider as ArrayCollection;
var seletedItems:Array = [];
for each(var obj:Object in items)
{
if(obj["checked"] && "" != obj["value"])
{
seletedItems.push(obj["value"]);
}
}
_seletedItems = seletedItems;
}
return _seletedItems;
}
private function createCombo():void
{
if(null != comboData)
{
var dataSource:ArrayCollection = new ArrayCollection();
for each(var item:Object in comboData)
{
dataSource.addItem({label:item.label,value:item.data,checked:false});
}
list = new List();
list.dataProvider = dataSource;
list.itemRenderer = new ClassFactory(CheckBoxItemRenderer);
list.rowCount = 5;
list.width = width;
addPopUp();
showSeleted();
}
}
private function showSeleted():void
{
if(list)
{
var items:ArrayCollection = list.dataProvider as ArrayCollection;
var seletedItems:Array = [];
for each(var obj:Object in items)
{
if(obj["checked"] && "" != obj["value"])
{
seletedItems.push(obj["label"]);
}
}
multiCombo.label = seletedItems.length > 0?seletedItems.toString():"请选择";
multiCombo.toolTip = multiCombo.label;
}
}
private function addPopUp(e:MouseEvent=null):void
{
if(null == multiCombo.popUp && null != list)
{
var can:Canvas = new Canvas();
can.addChild(list);
multiCombo.popUp = can;
}
}
]]>
</mx:Script>
<mx:PopUpButton id="multiCombo" label="请选择" width="{width}" textAlign="left" fontWeight="normal"
openAlways="true" close="showSeleted()"/>
</mx:Canvas>
下面在别的地方引入:
<common:MultiComboBox id="multiCombo2" width="150" comboData="{mnpStatus}"/>
comboData为数据源
取值:
var arraySelected:Array = multiCombo.seletedItems as Array;
分享到:
相关推荐
亲测无bug,flex多选下拉框,带checkbox。可以全选反选。item获取、显示等功能完整
一个Flex带复选框的树的实现
从其他网站找的一个Flex 下拉多选 支持ComboBox DropDownList 带有复选框
flex带复选框的tree,包含源代码,需要用到的朋友请下载
flex 带复选框树 flex多选树 flex三态树
flex带复选框的datagrid
Flex实现带复选框的列表树,实现全选和反选
flex tree 复选框,以及父目录的三种状态。(全部选中,部分选中,没有选中)
flex DataGrid复选框源码 flex DataGrid复选框源码 flex DataGrid复选框源码
FLEX4 带复选框的LIST的工程,导入工程运行它
Flex ComBox 下拉树功能例子 以及相关代码
flex框架之Cairngorm框架,包括Cairngorm框架
带dataGrid的自定义下拉控件,实现表格下拉
NULL 博文链接:https://kidd.iteye.com/blog/1329253
自己编写的一个flex下拉框组件,功能比较强大,可以做到二级级联,三级级联,四级级联等。并且在初始化页面的时候,可以自动显示已选择的
1、 下载安装Flex Builder 3.0; 2、 将Flex Builder 3安装目录下的plugins、features、sdks文件夹拷贝到eclipse目录下; 3、 重启MyEclipse; 4、 进行Flex的配置。在Eclipse中,点击->Window->Preferences->Flex->...
Flex带CheckBox的多选下拉框 Flex带CheckBox的多选下拉框 Flex带CheckBox的多选下拉框 Flex带CheckBox的多选下拉框 Flex带CheckBox的多选下拉框 Flex带CheckBox的多选下拉框
flex自定的加载进度条,替换flex Application的preloader。
flex框架flex框架 JAVA-FLEXflex框架 JAVA-FLEX
flex实现 ComboBox中下拉checkbox 经测试好用,还有可移动面板,和可改大小面板实例