`
Zsb007
  • 浏览: 59313 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

flex 自定义控件 用 checkbox

阅读更多
<!-- end title -->
<?xml version="1.0" encoding="utf-8"?>
<!-- http://www.slsay.com/archives/23 -->
<mx:application xmlns:mx="http://www.adobe.com/2006/mxml"
      creationcomplete="init()">
    <mx:script>
        <!–[CDATA[
           import mx.events.CollectionEvent;
           import mx.events.DataGridEventReason;
           import mx.collections.ArrayCollection;
           import mx.events.DataGridEvent;
           import mx.events.ListEvent;
           [Bindable]
           private var myAC:ArrayCollection = new ArrayCollection([
               {id:89, Contact: ‘Bob Jones’, FollowUp: true },
               {id:5, Contact: ‘Jane Smith’, FollowUp: true },
               {id:7, Contact: ‘Doug Johnson’, FollowUp: false },
               {id:15, Contact: ‘John Jackson’, FollowUp: true },
               {id:21, Contact: ‘Christina Coenraets’, FollowUp: true },
               {id:4, Contact: ‘Joanne Wall’, FollowUp: false },
               {id:461, Contact: ‘Maurice Smith’, FollowUp: false },
               {id:35, Contact: ‘Lorraine Barnes’, FollowUp: true },
               {id:61, Contact: ‘The Dude’, FollowUp: true },
               {id:56, Contact: ‘Abe Rockaway’, FollowUp: true }
           ]);
           private function init():void{
           myAC.addEventListener(
                   CollectionEvent.COLLECTION_CHANGE, onChange);
           }
           private function onChange(event:CollectionEvent):void {
               for (var i:int=0; i < event.items.length;i++) {
                   var obj:Object=event.items[i].source;
                    for (var p:String in obj) {
                        if(p!="mx_internal_uid") {
                            cellInfo.text += "\n";
                            if(event.items[i].property==p){
                            cellInfo.text +="*"}
                            cellInfo.text += p+": " + obj[p];
                       }
                   }
               }
           }
       ]]>
    </mx:script>
    <mx:Datagrid id="myGrid">
        dataProvider="{myAC}" editable="true" >
        <mx:columns>
            <mx:datagridcolumn datafield="Contact" width="150"/>
            <mx:datagridcolumn datafield="id" width="150"
                  editable="false"/>
            <mx:datagridcolumn datafield="FollowUp">
                width="150"
                headerText="Follow Up?"
                itemRenderer="DGCheckBoxEditor" rendererIsEditor="true"
                editorDataField="cbSelected"/>
        </mx:columns>
    </mx:Datagrid>
    <mx:Textarea id="cellInfo" width="300" height="150"/>
</mx:application>

//itemEditor

<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml"
   implements="mx.controls.listClasses.IDropInListItemRenderer,
                    mx.managers.IFocusManagerComponent">

<!-- http://www.slsay.com/archives/23 -->
<mx:Script>
 <![CDATA[
           import mx.controls.listClasses.ListData;
           import mx.controls.dataGridClasses.DataGridListData;
           import mx.controls.listClasses.BaseListData;
           import mx.controls.dataGridClasses.DataGridItemRenderer
           import mx.events.FlexEvent;

           private var _listData:DataGridListData;
           // Define a property for returning the new value to the cell.
           public var cbSelected:Boolean;      

           // Implement the drawFocus() method for the VBox.
           override public function drawFocus(draw:Boolean):void {
               doneCB.setFocus();
           }
           [Bindable]
           override public function set data(value:Object):void {
               super.data = value;
               doneCB.selected=data[_listData.dataField];
           }
           override public function get data():Object {
               return super.data;
           }
           public function get listData():BaseListData {
               return _listData;
           }
           public function set listData(value:BaseListData):void {
               _listData = DataGridListData(value);
           }  
 ]]>
</mx:Script>
    <mx:CheckBox id="doneCB" label="Done">
           change="cbSelected=doneCB.selected"/>
</mx:Box>
分享到:
评论

相关推荐

    Flex4的Tree控件加CheckBox

    在这个场景中,我们关注的是如何在Flex4的Tree控件中添加CheckBox,以便用户可以多选树形结构中的节点。 Tree控件在Flex中用于展示层次结构的数据,它允许用户展开和折叠节点,查看和导航数据结构。在很多情况下,...

    flex中Datagride嵌套checkbox

    DataGrid是ActionScript 3和Flex框架中的一个控件,它允许我们以表格的形式展示数据集。每个单元格都可以根据需要定制,例如显示文本、图像或者更复杂的组件如复选框。 嵌套复选框的过程主要包括以下步骤: 1. **...

    Flex动态生成checkbox组

    压缩包中的`CheckBoxItem.as`可能是一个自定义的Checkbox类,它扩展了Flex内置的Checkbox类,并可能添加了额外的功能或属性。而`CheckBox.txt`可能是关于如何使用这些Checkbox的文档或者示例代码。 总的来说,Flex...

    Flex Tree 中Checkbox

    Flex Tree 是一种在Adobe ...总结来说,“Flex Tree 中Checkbox”涉及到Flex组件的自定义、事件处理、数据模型与视图的交互,以及用户体验的优化。通过这些知识点的运用,可以创建一个功能完备且易于使用的多选树组件。

    flex中tree和checkbox结合使用的插件

    在Flex开发中,Tree组件和Checkbox控件的结合使用是一个常见的需求,特别是在构建具有层级结构并需要用户进行多选操作的界面时。本插件专为此目的设计,它允许用户在树形结构中通过复选框来选择或取消选择节点,从而...

    Flex 自定义Datagrid的ItemRender

    使用Flex的data属性将数据字段与ItemRenderer中的控件关联起来。例如,如果数据源中有一个名为`creationDate`的字段,可以这样绑定: ```actionscript dateField.dataField = "creationDate"; ``` 4. **处理...

    flex tree 中渲染checkBox

    `flex tree 中渲染checkBox`这个话题涉及到在Flex Tree组件的每个节点上添加复选框控件,使得用户能够通过单击复选框来选择或取消选择树的特定部分。这在数据分层展示和多选操作的场景中特别常见,例如文件管理器或...

    flex中ComboBox嵌套checkbox的例子以及源代码

    通常,`itemRenderer`是一个负责渲染单个数据项的组件,我们可以用一个包含Checkbox的自定义组件作为`itemRenderer`。 - 在`itemRenderer`组件中,我们需要监听`CheckBox`的`change`事件,以便当用户改变Checkbox...

    flex 中tree渲染checkbox

    通过继承mx.controls.treeClasses.TreeItemRenderer类并重写其createChildren()方法,我们可以添加一个CheckBox控件到渲染器中。 ```actionscript public class TreeChkItemRenderer extends TreeItemRenderer { ...

    flex checkboxtree复选树形下拉框

    在`ReportListPage.mxml`中,开发者可能使用了`Tree`控件的自定义类,或者在`Tree`控件的基础上添加了复选框组件。他们可能会覆盖`createChildren()`方法来插入自定义的复选框,同时监听`itemClick`事件来处理复选...

    Flex DataGrid CheckBox 一个简单的全选

    在Flex开发中,DataGrid组件是一个非常常用的控件,它用于展示数据集合,并提供交互式操作,如排序、选择等。本示例聚焦于DataGrid中的CheckBox集成,特别是实现一个全选的功能。以下是对这个主题的详细解释: 一、...

    Flex中DataGrid内嵌CheckBox的全选反选和防止选择状态错乱实现方法

    为了实现全选和反选功能,我们需要在界面上添加两个CheckBox控件,分别代表全选和全反。当用户点击全选CheckBox时,遍历dataProvider中的所有数据项,将它们的“isSelected”字段设为true;反之,当点击全反CheckBox...

    flex Tree checkbox 修改过后的

    标题提到的“flex Tree checkbox 修改过后”,意味着原生的Flex Tree控件已经进行了自定义修改,以适应带有复选框功能的需求。 在Flex中实现Tree与Checkbox结合的关键点包括: 1. **创建自定义TreeItemRenderer**...

    Flex 写的一个combox多选控件

    2. **自定义下拉列表**:通过覆盖dropDown属性,我们可以创建一个自定义的List组件,其中的itemRenderer使用我们之前编写的HgCheckBox.as。这样,每个列表项都会显示一个复选框。 3. **处理多选逻辑**:当用户在...

    flex带复选框的tree,flex checkboxtree

    在Flex中,Tree组件是用于显示层次结构数据的控件,而"flex带复选框的tree"(Flex CheckboxTree)则是对Tree组件的一种扩展,增加了复选框功能,用户可以对树形结构的节点进行选择或全选操作,常用于权限管理、配置...

    flex3 带CheckBox的List

    List组件是Flex中常用的一种显示数据列表的控件,而CheckBox则提供了一种用户交互的方式,让用户可以选择列表中的项。 首先,我们需要理解`List`组件的基本结构。List组件通常与数据提供器(如ArrayCollection)...

    flex部分控件代码

    根据给定的信息,本文将对Flex框架中的部分控件及其代码进行详细解析。Flex是一种用于构建桌面和移动设备上的丰富互联网...对于学习Flex框架的人来说,这是一段很好的实战代码,有助于理解Flex控件的特性和使用场景。

    flex AdvancedDataGrid实现checkBox全选功能

    首先,我们需要在AdvancedDataGrid的列定义中添加CheckBox控件。这可以通过创建一个自定义的CellRenderer来完成。CellRenderer允许我们在单元格中插入任意Flex组件,例如CheckBox。以下是一个简单的CellRenderer类...

    flex控件讲解

    本文将详细介绍几个常用的Flex控件,包括它们的基本功能、用途以及如何使用这些控件来增强应用的表现力。 #### 二、控件详解 ##### 1. AdvancedDataGrid - **简介**: - `AdvancedDataGrid` 是一种扩展了标准 `...

Global site tag (gtag.js) - Google Analytics