`

flex之小功能:列的隐藏

    博客分类:
  • Flex
阅读更多
在网上看到一个效果不错:
Flex中如何利用PopUpButton控件创建一个弹出TitleWindow的例子
http://blog.minidx.com/2008/04/14/713.html

想到为了方便客户,做了一个小功能:列的隐藏
其实很简单,不过我是新手...有不对或优化的地方欢迎高手指点..

效果:






主要实现代码:

<?xml version="1.0" encoding="utf-8"?>  
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*" 
     creationComplete="creationComplete()">  
     <mx:Script>  
 
        <![CDATA[
 
       import mx.collections.ArrayCollection;  
       import mx.controls.CheckBox;
  
       //定义一个CheckBox中用到的列数组arr
       [Bindable]
       private var arr:ArrayCollection = new ArrayCollection();
  
//载入页面时就初始化arr,此处是根据列的ID一列一列加上去的,还没有想到动态绑定方法,望高手指点....
        private function creationComplete():void 
           {  
     arr.addItemAt(username,0);
     arr.addItemAt(password,1);
     arr.addItemAt(age,2);
     arr.addItemAt(telephone,3);
     arr.addItemAt(email,4);
           }  

//隐藏显示列处理:默认的为选择,取消选择之后就实现隐藏
         private function checkBox_change(evt:Event):void {
                var ch:CheckBox = evt.currentTarget as CheckBox;
                var idx:int = int(ch.data);
                var obj:Object = arr.getItemAt(idx);
                if(obj.visible == true){
                obj.visible = false;
                }
                else{
                obj.visible = true;
                }
            }
//隐藏显示列处理:全选处理,可有可无的功能,不过列多的时候方便操作
        private function selectAll(evt:Event):void {
                var idx:int;
                var item:Object;
                for (idx=0; idx<arr.length; idx++) {
                    item = arr.getItemAt(idx);
                    item.visible =
                          CheckBox(evt.currentTarget).selected;
                }
                 arr.refresh();
            }
        ]]>  
     </mx:Script>  
    //此处用得的分页方法是修改自hereson的分页方法: http://hereson.iteye.com/blog/188512
    <local:PageDataGrid id="dg" x="9.15" y="25.75">  
 
       <local:arrColumns><!--为这个标签设置DataGridColumn,指示在DataGrid上显示的列-->  
 
           <mx:DataGridColumn headerText="用户名" id="username" dataField="username"/>  
          
           <mx:DataGridColumn headerText="密码" id="password" dataField="password"/>
          
           <mx:DataGridColumn headerText="年龄" dataField="age" id="age"/>
          
           <mx:DataGridColumn headerText="联系方式" dataField="telephone" id="telephone"/> 
          
           <mx:DataGridColumn headerText="电子信箱" dataField="email" id="email"/> 
 
       </local:arrColumns>  
 
    </local:PageDataGrid>  
    //这儿包含了PopUpButton、TitleWindow、ToolBar、Repeater、CheckBox多个组件(其实是可以优化的),希望不要看晕.....
    <mx:PopUpButton id="popUpButton"
            label="请选择要隐藏的列"
            openAlways="true"
            x="9" y="0" width="141" height="27" fontSize="12">
        <mx:popUp>
            <mx:TitleWindow id="titleWin"
                    height="200"
                    showCloseButton="true"
                    verticalScrollPolicy="off"
                    horizontalScrollPolicy="off"
                    close="popUpButton.close();">
                <mx:ToolBar width="220">
                    <mx:Repeater id="myRep"
                            dataProvider="{arr}">
                        <mx:CheckBox data="{myRep.currentIndex}"
                                label="{myRep.currentItem.headerText}" //这儿显示的Lable是引用的列的headerText属性实现的
                                selected="{myRep.currentItem.visible}" //这儿默认选择是引用的列的visible属性实现的
                                change="checkBox_change(event);" //当有变化的时候调用checkBox_change(event)方法
                                width="80" />
                    </mx:Repeater>
                </mx:ToolBar>
                <mx:ControlBar>
                        <mx:CheckBox label="选择全部"
                                labelPlacement="right"
                                selected="true"
                                change="selectAll(event);" /> //当有变化的时候调用selectAll(event)方法
                </mx:ControlBar>
            </mx:TitleWindow>
        </mx:popUp>
    </mx:PopUpButton>
 
</mx:Application> 
  • 大小: 40 KB
  • 大小: 48.8 KB
1
0
分享到:
评论

相关推荐

    FLEX导出EXCEL支持合并隐藏单元格

    该标题与描述明确指出了一个关键的功能点:在Flex框架下开发的应用程序能够导出数据到Excel,并且这一过程支持对单元格进行合并以及隐藏特定单元格的能力。这对于数据分析、报告生成等领域尤其重要,因为用户往往...

    Flex分页技术

    在Flex中,我们可以使用DataGrid组件来实现这些功能,提高用户体验并优化性能。 1. **Flex DataGrid 分页技术**: Flex DataGrid 提供了分页功能,以处理大量数据。分页允许用户按页面浏览数据,而不是一次性加载...

    flex 树结构的列表

    这种实现方式可能是利用了`DataGrid`的列可扩展性,将每一行作为一个节点,通过隐藏/显示特定列来模拟节点的展开和折叠。 四、实现步骤 1. 创建数据模型:首先,你需要定义一个数据模型类,该类包含节点的标识、...

    用flex实现苹果样式的弹出菜单

    在本文中,我们将深入探讨如何使用Flex技术来创建一个类似于苹果风格的弹出菜单。Flex是一种基于ActionScript和MXML的开源框架,主要用于构建富互联网应用程序(RIA)。它提供了丰富的用户界面组件和强大的数据绑定...

    flex 合并单元格

    本文将围绕“Flex 合并单元格”这一主题进行深入探讨,结合给定的标签“源码”和“工具”,我们将讨论如何在Flex中实现表格(Grid)的单元格合并功能。 在Flex中,我们通常使用MX组件库中的DataGrid或Spark组件库中...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    ade 接口,但这个接口是暴露给 Servlet 使用的,最好能再为 Flex 定义另一个接口 FlexService,并隐藏 Java 语言的特定对象(如 清单 1 所示): 清单 1. FlexService interface public interface FlexService ...

    将Flex DataGrid数据导出到Excel中

    记得只提取可见的和有数据的单元格,因为DataGrid可能包含空格或隐藏列。 2. **创建数据结构**: 将解析出的数据组织成一个二维数组,这个数组将代表Excel表格的行和列。每一行代表DataGrid的一行数据,每一列则是...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    尽管现有的 EmployeeMgmt 应用程序已经有了 Façade 接口,但这个接口是暴露给 Servlet 使用的,最好能再为 Flex 定义另一个接口 FlexService,并隐藏 Java 语言的特定对象(如 清单 1 所示): 清单 1. Flex...

    Flex_and_ArcGISFlexDemo

    “Flex_and_ArcGISFlexDemo.xlsx”文件很可能是教程材料或案例研究,详细列出了如何配置和使用这些功能。内容可能包括代码示例、步骤说明、配置指南以及可能遇到的问题和解决方法。通过学习和实践这份文档,开发者将...

    Flex 常用大收藏

    这个"Flex 常用大收藏"压缩包包含了关于Flex开发中的几个重要主题,包括DataGrid、上传下载、WipeLeft隐藏动画以及分页功能的实现。 首先,我们来探讨DataGrid组件。DataGrid是Flex中用于显示大量结构化数据的组件...

    Flex-DataGrid源码及资料

    在学习和使用这些功能时,了解Flex的事件模型、组件架构以及数据绑定机制是非常重要的。同时,熟悉MXML和ActionScript的混合编程方式也有助于更高效地开发和维护DataGrid组件。这个压缩包中的源码可以作为实践和学习...

    FLEX GRID V7

    Flex Grid V7是一款专为C++开发者设计的控件库,它提供了强大的表格布局和数据管理功能,使得在C++应用程序中实现复杂的数据展示和编辑变得更加便捷。在本文中,我们将深入探讨Flex Grid V7的核心特性、使用场景、...

    Flex itemEditor详解

    在Flex框架中,为了提升用户体验,开发者经常需要在列表控制如`DataGrid`中实现数据的直接编辑功能。Flex提供了强大的工具来实现这一需求,其中最关键的技术之一就是`itemEditor`。`itemEditor`允许用户直接在列表...

    动态添加删除列和高级报表查询统计

    4. **Flex中的实现**:在Flex中,可以使用DataGrid或AdvancedDataGrid组件来实现动态列的添加和删除。DataGrid适用于基本的表格展示,而AdvancedDataGrid则提供了更丰富的特性,如多级表头、分组和排序。通过MXML或...

    详解flex多列布局遇到的问题和解决方案

    在现代Web布局中,Flexbox(Flexible Box,弹性盒模型)是一种强大的工具,它使得创建响应式和动态布局变得更为简单。...在实际项目中,开发者可以根据具体情况选择适合的解决方案,以实现美观且功能完善的多列布局。

    详解解决flex布局的justify-content: space-between对齐方式的一个BUG的两种方法

    这对于创建整齐的多列布局非常有用。例如,如果一行有三个子元素,它们会形成理想的一字排开效果。但是,如果某一行只有两个子元素,按照`space-between`规则,中间会出现一个较大的空白区域,这可能并不符合设计...

    Flex4.5导入Excel/csv到DataGrid及DataGrid右键

    在Flex开发中,数据展示是常见且重要的任务之一,而DataGrid组件因其强大的数据呈现和交互能力,常常被用于复杂的数据显示。本知识点将详细介绍如何在Flex 4.5环境中将Excel和CSV文件导入到DataGrid中,以及如何...

    Grid(6)[自定义DataGrid-强制显示分列线(在不显示列头时)]

    总结,这个主题将指导开发者如何在Flex或Flash的MXML环境中,自定义DataGrid组件以强制显示分列线,即使在隐藏列头的情况下。通过深入学习和理解提供的源代码,开发者可以扩展这一技术,将其应用于更复杂和个性化的...

    微信小程序自定义底部导航带跳转功能

    微信小程序自定义底部导航带跳转功能的知识点主要包括以下几个方面: 1. 微信小程序底部导航概述: 微信小程序支持底部导航栏的自定义,开发者可以根据自己的需求设计导航栏的样式和功能。底部导航是用户在小程序...

Global site tag (gtag.js) - Google Analytics