Using a CheckBox control as a list item renderer in Flex

简介:
The following example will show you how you can use a CheckBox control as a custom item renderer in a List control in Flex.
I haven’t done a lot of testing yet, so if you have any tips/suggestions/improvements, please, share them in the comments
<? xml version="1.0" encoding="utf-8" ?>
<!--  http://blog.flexexamples.com/2008/01/27/using-a-checkbox-control-as-a-list-item-renderer-in-flex/  -->
< mx:Application  xmlns:mx ="http://www.adobe.com/2006/mxml"
        xmlns:vo
="*"
        layout
="horizontal"
        verticalAlign
="middle"
        backgroundColor
="white"
        creationComplete
="init();" >

    
< mx:Script >
        
<![CDATA[
            import mx.events.CollectionEvent;
            import mx.utils.ObjectUtil;

            private function init():void {
                arrColl.dispatchEvent(new CollectionEvent(CollectionEvent.COLLECTION_CHANGE));
            }

            private function arrColl_collectionChange(evt:CollectionEvent):void {
                try {
                    var tArr:Array = arrColl.source.filter(selectedOnly);
                    textArea.text = ObjectUtil.toString(tArr);
                    lbl.text = tArr.length.toString() + " item(s) selected";
                } catch (err:Error) {
                    // ignore.
                }
            }

            private function selectedOnly(item:ListItemValueObject, idx:uint, arr:Array):Boolean {
                return item.isSelected;
            }
        
]]>
    
</ mx:Script >

    
< mx:Array  id ="arr" >
        
< vo:ListItemValueObject  label ="One"  isSelected ="true"   />
        
< vo:ListItemValueObject  label ="Two"  isSelected ="true"   />
        
< vo:ListItemValueObject  label ="Three"  isSelected ="true"   />
        
< vo:ListItemValueObject  label ="Four"  isSelected ="true"   />
        
< vo:ListItemValueObject  label ="Five"  isSelected ="false"   />
        
< vo:ListItemValueObject  label ="Six"  isSelected ="false"   />
        
< vo:ListItemValueObject  label ="Seven"  isSelected ="false"   />
        
< vo:ListItemValueObject  label ="Eight"  isSelected ="false"   />
        
< vo:ListItemValueObject  label ="Nine"  isSelected ="false"   />
        
< vo:ListItemValueObject  label ="Ten"  isSelected ="false"   />
        
< vo:ListItemValueObject  label ="Eleven"  isSelected ="false"   />
        
< vo:ListItemValueObject  label ="Twelve"  isSelected ="false"   />
    
</ mx:Array >

    
< mx:ArrayCollection  id ="arrColl"
            source
="{arr}"
            collectionChange
="arrColl_collectionChange(event);"   />

    
< mx:Panel  id ="panel"
            title
="Items"
            status
="{arrColl.length} total"
            styleName
="opaquePanel" >
        
< mx:List  id ="list"
                dataProvider
="{arrColl}"
                alternatingItemColors
="[#EEEEEE, white]"
                width
="150"
                rowCount
="8" >
            
< mx:itemRenderer >
                
< mx:Component >
                    
< mx:CheckBox  selectedField ="isSelected"
                            change
="onChange(event);" >
                        
< mx:Script >
                            
<![CDATA[
                                private function onChange(evt:Event):void {
                                    data.isSelected = !data.isSelected;
                                }
                            
]]>
                        
</ mx:Script >
                    
</ mx:CheckBox >
                
</ mx:Component >
            
</ mx:itemRenderer >
        
</ mx:List >
        
< mx:ControlBar  horizontalAlign ="right" >
            
< mx:Label  id ="lbl"   />
        
</ mx:ControlBar >
    
</ mx:Panel >

    
< mx:TextArea  id ="textArea"
            verticalScrollPolicy
="on"
            width
="100%"
            height
="{panel.height}"   />

</ mx:Application >

View ListItemValueObject.as
package {
    public class ListItemValueObject {

        [Bindable]
        public var label:String;

        [Bindable]
        public var isSelected:Boolean;

        public function ListItemValueObject() {
            super();
        }
    }
}



    本文转自 OldHawk  博客园博客,原文链接:http://www.cnblogs.com/taobataoma/archive/2008/01/31/1059338.html ,如需转载请自行联系原作者


相关文章
|
2月前
|
存储 缓存 数据管理
Spartacus cart list item 删除的实现原理
Spartacus cart list item 删除的实现原理
SAP Spartacus list item点击之后的detail页面跳转
SAP Spartacus list item点击之后的detail页面跳转
SAP Spartacus list item点击之后的detail页面跳转
SAP Spartacus org unit list点击item之后的页面跳转实现
SAP Spartacus org unit list点击item之后的页面跳转实现
SAP Spartacus org unit list点击item之后的页面跳转实现
List<T>.Contains(T item)判断是否包含的根据是什么
List.Contains(T item)判断是否包含的根据是什么? 答:是按T类型中Equals方法返回的结果来确定的,如果想自定义判断标准,可以重写Equals方法,例子如下:           ///         /// 判断相等的情况,默认为Modelid        //...
926 0
|
10天前
|
安全 Java
java线程之List集合并发安全问题及解决方案
java线程之List集合并发安全问题及解决方案
12 1
|
10天前
|
存储 消息中间件 算法
Java中的集合框架详解:List、Set、Map的使用场景
Java中的集合框架详解:List、Set、Map的使用场景
|
4天前
|
存储 安全 Java
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
详解Java中集合的List接口实现的ArrayList方法 | Set接口实现的HashSet方法
|
15天前
|
存储 安全 Java
Java List详解
Java List详解
|
16天前
|
Java API
使用 Java 来实现两个 List 的差集操作
使用 Java 来实现两个 List 的差集操作
16 3