我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Flex 3 advancedDataG

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Flex 3 advancedDataG

[转载:原创保留一切权力http://hi.baidu.com/lz0830/blog/item/b17dcc3433170d325bb5f589.html]

Flex3 已经开始公测,其带来了诸多变化,所以由今天开始,我们将陆续和大家一起来学习其中的新特性,进行我们的Flex 3发现之旅。

今天我们要说的是官方文档中用了整章介绍的AdvancedDataGrid,AdvancedDataGrid是DataGrid的高级版本,Flex 3 SDK并不包含它,其和Charting Enhancements一起构成了Flex Data Visualization package,TNND,也就是说这是收费组件,ADOBE的生财机器。所以官方提供的SDK中并没有这个组件,不过FlexBuilder 3 Beta1内置的SDK包含了Flex Data Visualization package,这个我已经将FlexBuilder 3 Beta1内置的SDK剥离出来了,需要的朋友可以从这里下载。

相对DataGrid组件,AdvancedDataGrid主要有以下几个高级之处:

多列排序:按住Control键在点击某一列的表头来实现多列排序。
自定义行和列样式:通过设置行和列的styleFunction指向一个函数来样式化行列
显示分层数据:在组件的第一列显示一个可缩放的导航数来控制表格行的显示。
创建多列分组:将多列汇聚到同一列表头下。
使用单元渲染器(renderers):跨越多栏使用同一渲染器或者一列使用多个渲染器。
多列排序

缺省的情况下,AdvancedDataGrid是按数据添加到它的DataProvider的顺序显示数据,和DataGrid组件一样,AdvancedDataGrid也允许您在数据显示后对数据进行排序。不同的是DataGrid只能基于单列排序,而AdvancedDataGrid支持基于多列的排序。

以下是多列排序的示例:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
      <![CDATA[
         import mx.collections.ArrayCollection;
                 
         [Bindable]
         private var dpADG:ArrayCollection = new ArrayCollection([
           {Artist:'Pavement', Album:'Slanted and Enchanted', Price:12.99},
           {Artist:'Pavement', Album:'Brighten the Corners', Price:13.99},
           {Artist:'Saner', Album:'A Child Once', Price:14.99},
           {Artist:'Saner', Album:'Helium Wings', Price:12.99},
           {Artist:'The Doors', Album:'The Doors', Price:10.99},
           {Artist:'The Doors', Album:'Morrison Hotel', Price:12.99},
           {Artist:'Grateful Dead', Album:'American Beauty', Price:11.99},
           {Artist:'Grateful Dead', Album:'In the Dark', Price:17.99},
           {Artist:'Grateful Dead', Album:'Shakedown Street', Price:13.99},
           {Artist:'The Doors', Album:'Strange Days', Price:12.99},
           {Artist:'The Doors', Album:'The Best of the Doors', Price:10.99}
         ]);                  
      ]]>
    </mx:Script>

    <mx:AdvancedDataGrid width="100%" height="100%" dataProvider="{dpADG}">
        <mx:columns>
            <mx:AdvancedDataGridColumn dataField="Artist" />
            <mx:AdvancedDataGridColumn dataField="Album" />
            <mx:AdvancedDataGridColumn dataField="Price" />
       </mx:columns>
    </mx:AdvancedDataGrid>
</mx:Application>

运行示例

运行以上示例,如下进行排序:

点击AdvancedDataGrid组件的任意列表头对任意列进行排序,例如点击Artist列的列表头Artist列将升序进行排序,再次点击的话将按降序排序。
按住Control键,点击其他任意的列头,例如点击Price列头,将在保持Artist列降序排列的情况下,将Price列按升序排列。现在你可以从中发现某一艺术家最便宜的专辑。
再次点击Price列头,Price列将按降序排列
按住Control键,点击任意其他列,将其加入排序条件中。



自定义行列样式

通过使用AdvancedDataGrid组件的回调(callback)函数来自定义表格行列的样式,要控制某一行的样式,使用AdvancedDataGrid.styleFunction属性,要自定义某一列的样式,使用AdvancedDataGridColumn.styleFunction属性,AdvancedDataGrid.styleFunction指定的回调函数先执行,接着才执行AdvancedDataGridColumn.styleFunction属性指定的函数。

回调函数必须要有如下声明:

public function myStyleFunction(data:Object,column:SuperDataGridColumn):Object该函数返回一个包含用于表示样式设置的styleName:value对的完整对象,或者null。styleName为样式属性的名称,如Color,而value为样式属性的值,如0x00FF00。

AdvancedDataGrid会在更新显示时调用回调函数,如应用启动时该组件第一次会绘制的时候,或者在您调用invalidateList()来刷新组件所有行的显示时。

本节的示例将使用回调函数来定义AdvancedDataGrid的样式,本节中所有的示例都使用以下StyleData.as文件中的数据:

[Bindable]
private var dpADG:ArrayCollection = new ArrayCollection([
   {Artist:'Pavement', Album:'Slanted and Enchanted', Price:12.99},
   {Artist:'Pavement', Album:'Brighten the Corners', Price:13.99},
   {Artist:'Saner', Album:'A Child Once', Price:14.99},
   {Artist:'Saner', Album:'Helium Wings', Price:12.99},
   {Artist:'The Doors', Album:'The Doors', Price:10.99},
   {Artist:'The Doors', Album:'Morrison Hotel',Price:12.99},
   {Artist:'Grateful Dead', Album:'American Beauty', Price:11.99},
   {Artist:'Grateful Dead', Album:'In the Dark', Price:17.99},
   {Artist:'Grateful Dead', Album:'Shakedown Street', Price:13.99},
   {Artist:'The Doors', Album:'Strange Days', Price:12.99},
   {Artist:'The Doors', Album:'The Best of the Doors', Price:10.99} ]);

定义行样式

以下示例使用AdvancedDataGrid.styleFunction属性指定一个回调函数来定义表格行样式。在该示例中,您可以使用Button控件来选择AdvancedDataGrid.styleFunction中的artist,然后回调函数将会红色高亮显示所有被选择的行。

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
   <![CDATA[
    import mx.collections.ArrayCollection;
    import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
    // Include the data for the AdvancedDataGrid control.
    include "StyleData.as"
    // Artist name to highlight.
    protected var artistName:String;
    // Event handler to set the selected artist's name
    // based on the selected Button control.
    public function setArtistName(event:Event):void
    {
     artistName=Button(event.currentTarget).label;
     // Refresh row display.
     myADG.invalidateList();
    }
    // Callback function that hightlights in red
    // all rows for the selected artist.
    public function myStyleFunc(data:Object,
     col:AdvancedDataGridColumn):Object
    {
     if (data["Artist"] == artistName)
     return {color:0xFF0000};
     // Return null if the Artist name does not match.
     return null;
    }
   ]]>
</mx:Script>
<mx:AdvancedDataGrid id="myADG" width="100%" height="100%" dataProvider="{dpADG}" styleFunction="myStyleFunc"> <mx:columns> <mx:AdvancedDataGridColumn dataField="Artist"/> <mx:AdvancedDataGridColumn dataField="Album"/> <mx:AdvancedDataGridColumn dataField="Price"/> </mx:columns> </mx:AdvancedDataGrid> <mx:HBox> <mx:Button label="Pavement" click="setArtistName(event);"/> <mx:Button label="Saner" click="setArtistName(event);"/> <mx:Button label="The Doors" click="setArtistName(event);"/> </mx:HBox> </mx:Application>

运行示例

定义列样式

以下示例修改上节的示例来定义AdvancedDataGrid的行和列样式。在该示例中,所有价格小于$11.00的单元都将显示为绿色。

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
   <![CDATA[
    import mx.collections.ArrayCollection;
    import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
    // Include the data for the AdvancedDataGrid control.
    include "StyleData.as"
    // Artist name to highlight.
    protected var artistName:String;
    // Event handler to set the selected artist's name
    // based on the selected Button control.
    public function setArtistName(event:Event):void
    {
     artistName=Button(event.currentTarget).label;
     // Refresh row display.
     myADG.invalidateList();
    }
    // Callback function that hightlights in red
    // all rows for the selected artist.
    public function myStyleFunc(data:Object,
     col:AdvancedDataGridColumn):Object
    {
     if (data["Artist"] == artistName)
     return {color:0xFF0000};
     // Return null if the Artist name does not match.
     return null;
    }
    // Callback function that hightlights in green
// all entries in the Price column // with a value less than $11.00. public function myColStyleFunc(data:Object, col:AdvancedDataGridColumn):Object { if(data["Price"] <= 11.00) return {color:0x00FF00}; return null; } ]]> </mx:Script> <mx:AdvancedDataGrid id="myADG" width="100%" height="100%" dataProvider="{dpADG}" styleFunction="myStyleFunc"> <mx:columns> <mx:AdvancedDataGridColumn dataField="Artist"/> <mx:AdvancedDataGridColumn dataField="Album"/> <mx:AdvancedDataGridColumn dataField="Price" styleFunction="myColStyleFunc"/> </mx:columns> </mx:AdvancedDataGrid> <mx:HBox> <mx:Button label="Pavement" click="setArtistName(event);"/> <mx:Button label="Saner" click="setArtistName(event);"/> <mx:Button label="The Doors" click="setArtistName(event);"/> </mx:HBox> </mx:Application>

运行示例

在列中使用数据格式器(formatter)

AdvancedDataGridColumn有一个formatter属性,通过它,您可以向列传递一个Formatter类,或者Formatter子类的实例。格式器类可以将数据转换为自定义的字符串。例如您可以使用CurrencyFormatter类在Price列值的加上美元符($)前缀。

格式器类可以和labelFunction属性或styleFunction属性设定的回调函数一起使用,如果您指定了一个回调函数,Flex在回调函数值返回后调用格式器类。

以下示例在修改自自定义行样式章节示例,在Price列增加了一个货币格式器以在价格前显示$前缀:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
   <![CDATA[
    import mx.collections.ArrayCollection;
    import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
    // Include the data for the AdvancedDataGrid control.
    include "StyleData.as"
    // Artist name to highlight.
    protected var artistName:String;
    // Event handler to set the selected artist's name
    // based on the selected Button control.
    public function setArtistName(event:Event):void { artistName=Button(event.currentTarget).label; // Refresh row display. myADG.invalidateList(); } // Callback function that hightlights in red // all rows for the selected artist. public function myStyleFunc(data:Object, col:AdvancedDataGridColumn):Object { if (data["Artist"] == artistName) return {color:0xFF0000}; // Return null if the Artist name does not match. return null; } ]]> </mx:Script> <mx:AdvancedDataGrid id="myADG" width="100%" height="100%" dataProvider="{dpADG}" styleFunction="myStyleFunc"> <mx:columns> <mx:AdvancedDataGridColumn dataField="Artist"/> <mx:AdvancedDataGridColumn dataField="Album"/> <mx:AdvancedDataGridColumn width="75" dataField="Price"> <mx:formatter> <mx:CurrencyFormatter/> </mx:formatter> </mx:AdvancedDataGridColumn> </mx:columns> </mx:AdvancedDataGrid> <mx:HBox> <mx:Button label="Pavement" click="setArtistName(event);"/> <mx:Button label="Saner" click="setArtistName(event);"/> <mx:Button label="The Doors" click="setArtistName(event);"/> </mx:HBox> </mx:Application>

运行示例

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Flex 3 advancedDataG

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Flex 3 advancedDataG

[转载:原创保留一切权力http://hi.baidu.com/lz0830/blog/item/b17dcc3433170d325bb5f589.html]Flex3 已经开始公测,其带来了诸多变化,所以由今天开始,我们将陆续和大家一起来
2023-01-31

FLEX 3 COOKBOOK

FLEX 3 COOK BOOK ,等了好长时间,,哈哈!先下载了看看。有需要的朋友请到[url]http://www.riabook.cn/en_book/flex-3-cookbook.htm[/url]  下载。
2023-01-31

ADOBE FLEX 3 Builder

ADOBE FLEX 3 Builder 下载 创建引人入胜的跨平台丰富 Internet 应用程序Adobe®Flex® 3 是用于构建和维护在所有主要浏览器、桌面和操作系统一致地部署的极具表现力的 Web 应用程序的高效率的开放源码框架
2023-01-31

FLEX 3里写的ActionScrip

1.       建立AS3的脚本文件,如下图:代码是用FLEX3里建立的AS 3代码,具体的操作请参考以前的文章,保存的文件的名字为类名.as2.       建立fla文件,名字也是类名.fla.如下图:  如果不把你在代码里用的组件拖
2023-01-31

Flex Builder 3代码格式化方

Flex Builder的最新版本已经到了4.5,可是代码格式化工具并没有集成在安装版本中,需要通过其他途径来实现。下面提供一个安装插件的方法实现Flex代码格式化:      1. 点击菜单中的 Help-> Software Updat
2023-01-31

Flex 3 Beta的新特性简介

Flex 3 Beta是Adobe Flex的最新版本,它带来了许多新的功能和改进。以下是一些主要的新特性:1. 编译性能优化:Flex 3 Beta提供了更快的编译和构建时间,以提高开发者的工作效率。2. 组件皮肤定制:Flex 3 Be
2023-09-23

FLEX 3 有关视频加载处理1

FLEX 3 有关视频加载处理1简单介绍下加载视频的步骤:1.       创建一个NetConnection 对象,它的作用是连接到远程服务器,调用命令,播放视频2.       创建一个NetStream对象,它的作用是通过netcon
2023-01-31

Flex布局属性flex-grow、flex-shrink和flex-basis怎么使用

这篇文章主要介绍“Flex布局属性flex-grow、flex-shrink和flex-basis怎么使用”,在日常操作中,相信很多人在Flex布局属性flex-grow、flex-shrink和flex-basis怎么使用问题上存在疑惑,
2023-07-04

带你吃透Flex布局的三个属性:flex-grow、flex-shrink、flex-basis

本篇文章带大家深入了解CSS Flex布局的三个属性:flex-grow、flex-shrink、flex-basis,希望对大家有所帮助!
2023-05-14

怎么在flex布局中计算flex-grow与flex-shrink

本篇文章为大家展示了怎么在flex布局中计算flex-grow与flex-shrink,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。CSS 中的 Flex(弹性布局) 可以很灵活的控制网页的布局,其
2023-06-08

Mybatis-Flex

Mybatis-Flex 官方地址:https://mybatis-flex.com/ 最近新出了个 Mybatis-Flex,据说比 MyBatis-Plus(老牌的 MyBatis 增强框架,开源于 2016 年),以及 Fluent-
2023-08-20

Flex与Flex swf如何实现通讯

Flex与Flex swf如何实现通讯,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Flex通讯系列---Flex与Flex swf这里讲述的是在FlexApp
2023-06-17

Flex中如何使用Flex样式

这篇文章给大家分享的是有关Flex中如何使用Flex样式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Flex中使用Flex样式Flex所支持的Flex样式比Flash要丰富,Flex样式定义的方法也很多。这也是
2023-06-17

flex调用java类的方法 flex怎么用

要在Flex中调用Java类的方法,你需要使用Flex的远程调用功能。以下是使用Flex调用Java类方法的步骤:1. 创建Java类:首先,创建一个Java类,其中包含要调用的方法。确保将Java类编译为可执行的Java二进制文件(.cl
2023-08-24

什么是flex布局?flex布局能做什么

Flex布局是一种用于设计和排列网页元素的CSS布局模型。它通过使用Flex容器和Flex子项来创建灵活的、自适应的布局。Flex布局可以做以下事情:1. 自适应布局:Flex容器可以根据不同的屏幕大小和设备自动调整元素的大小和位置,使网页
2023-09-21

Flex中Flex ArrayCollection的复制方法有哪些

这篇文章主要介绍Flex中Flex ArrayCollection的复制方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Flex中Flex ArrayCollection的复制在Flex的开发过程中,常常会遇
2023-06-17

CSS中flex和inline-flex的区别有哪些

本文将为大家详细介绍“CSS中flex和inline-flex的区别有哪些”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“CSS中flex和inline-flex的区别有哪些”能够给你意想不到的收获,请大家跟着
2023-06-08

Flex中怎么设置Flex滚动条样式

这期内容当中小编将会给大家带来有关Flex中怎么设置Flex滚动条样式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Flex中设置Flex滚动条的样式在Flex中使用容器的时候,经常会遇到出现Flex滚动
2023-06-17

Flex验证组件如何实现Flex验证处理

本篇文章为大家展示了Flex验证组件如何实现Flex验证处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。验证失败时需要做错误的提示及处理,修改错误提示的方法是修改Flex验证组件中相应的错误类型属
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录