Flex Dataprovider和Data概念解析

开发 后端
本文向大家介绍一下Flex Dataprovider和Data概念,如果将Flex Flex Dataprovider属性设置为Array,则会将其转换为ArrayCollection。

本文和大家重点讨论一下Flex Dataprovider和Data联系,要查看的数据集,Flex Dataprovider属性允许您将大多数类型的对象用作数据提供程序。

Flex Dataprovider和Data概念

1、Flex Dataprovider

在AdobeActionScript3.0里面的定义如下:
要查看的数据集,此属性允许您将大多数类型的对象用作数据提供程序。如果将Flex Flex Dataprovider属性设置为Array,则会将其转换为ArrayCollection。如果将该属性设置为XML对象,则会将其转换为仅包含一个项目的XMLListCollection。如果将该属性设置为XMLList,则会将其转换为XMLListCollection。如果将该属性设置为实现IList或ICollectionView接口的对象,则可直接应用此对象。受转换操作的影响,在您获取Flex Dataprovider属性时,该属性值将始终为ICollectionView,所以此值不一定是您设置的对象类型。如果要修改数据提供程序中的数据,则了解以下行为非常重要:可能不会检测对原始数据所做的更改,但将检测对从Flex Dataprovider属性获取的ICollectionView对象所做的更改。默认值为null.此属性可用作数据绑定的源。

◆上面那一大堆的东西其实就说明以下几点:
a、凡是具有Flex Dataprovider的组件,都可以将Array、XML等内容作为数据源。
b、将这些作为数据源的内容“自动”绑定并显示在这些控件上面。
所以通常的做法,当Flex获取了外部数据后,可以将其直接赋值为Flex Dataprovider,然后通过一些设定,就可以在这些组件上面显示数据了。
关于这个例子我就不在这里复述了,大家可以自行去找一下,或者直接看这里的内容:http://livedocs.adobe.com/flex/3_cn/mx/controls/ComboBox.html#includeExamplesSummary

2、itemRenderer(项目渲染器)及其Data属性。

itemRenderer的作用就是可以自定义一些组件的项目显示效果,例如我们熟知的Combobox、List、DataGrid等都具有这样的属性,也就是说,我们可以利用itemRenderer来改善ComBoBox里面的下拉的显示效果。当然,List、DataGrid也是这样的。
当ComboBox中自定义了一个渲染器后,同时使用Flex Dataprovider的方式绑定了一个数据源,这个时候,如何与我们自定义的渲染器里面的item发生作用呢?就是使用data方式。
也就是说,Flex Dataprovider可以绑定数据到UI、如果这个组件使用了自定义渲染器,那么就可以使用data.XXX的方式获取到Flex Dataprovider里面的数据。

okay,以上介绍的两个知识点是关于Flex组件的数据处理能力,其中Flex Dataprovider可以把Array、XML等内容作为数据源直接绑定并显示到UI上面,而itemRenderer里面的data是实现组件与其渲染器之间的数据处理。

◆下一篇的内容是关于Flex与后台进行通讯的常见的几种方式:HTTPService、WebService、Remote等方式,而通过这几种方式可以轻松的让一些例如Java、C#、Python、Ruby、PHP等主流编程语言为Flex所服务:)

附加:
关于Flex Dataprovider、itemRenderer、data的具体用法有些抽象,因此我特此列举一个例子来说明一下。
这是一个HorizontalList组件,而且其中它的itemRenderer=ToolBoxRenderer,想让我们看一下HorizontalList的片段代码:
 

  1. <mx:HorizontalListidmx:HorizontalListid="myHorizontalList"itemRenderer="ToolBoxRenderer"> 
  2. <mx:dataProvider> 
  3. <mx:Array> 
  4. <mx:Objecttooltipmx:Objecttooltip="rubber"styleName="rubber"language="{_language}"/> 
  5. </mx:Array> 
  6. </mx:dataProvider> 
  7. </mx:HorizontalList> 

 然后是ToolBoxRenderer的片段代码:

  1. <mx:Canvaswidthmx:Canvaswidth="30"height="30"> 
  2. <mx:Button 
  3. width="30"height="30"  
  4. toolTip="{data.tooltip}" 
  5. styleName="{data.styleName}"/> 
  6. </mx:Canvas> 
  7.  

 ◆再让我们看看itemRenderer是如何与我们今天这个主题联系起来的。

1、在myHorizontalList中定义了一个Flex Dataprovider,通过代码可以看出是一个Array类型的变量,然后将其赋值给Flex Dataprovider。这个时候,其实就应该将数据显示到myHorizontalList上面了,这也就是Flex Dataprovider的用处。
2、在Flex Dataprovider包含的Array中,定义如下的结构:<mx:Objecttooltip="rubber"styleName="rubber"language="{_language}"/>
3、我们不仅设定了Flex Dataprovider,还是同时设定了itemRenderer,即为ToolBoxRenderer。
4、在ToolBoxRenderer里面,定义了一个Button,同时我们使用类似于这样的方式可以取得Flex Dataprovider里面的数据:toolTip="{data.tooltip}"

以上就是一个非常简单,但是又非常典型的一个Flex Dataprovider、itemRenderer、data的用法,希望大家可以理解:)

【编辑推荐】

  1. 解析FlexSDK4的十大变化
  2. Flex ArrayCollection类用法详解
  3. 在Flex中使用样式的五大方法
  4. Flex Array和Flex ArrayCollection的用法和区别
  5. Flex ComboBox和Datagrid组件用法指导

 

责任编辑:佚名 来源: javaeye.com
相关推荐

2010-08-13 14:19:44

Flex绑定机制

2010-08-06 10:03:42

Flex事件

2010-08-04 15:12:54

Flex开发

2010-07-27 10:58:46

Flex

2010-08-12 11:21:30

重写Flex组件

2010-07-30 14:26:21

FlexFlash

2010-07-29 09:18:25

JavaFXFlexSilverlight

2010-07-27 09:30:22

2010-07-28 13:40:44

Flex数据绑定

2010-08-02 09:43:00

Flex应用

2010-08-12 13:59:37

FlexList控件

2010-08-05 11:07:18

重写Flex组件

2010-07-12 09:52:24

UML包图

2010-07-12 13:39:10

UML对象图

2010-08-11 13:28:46

Flex行为

2010-08-04 14:34:35

Flex编程模型

2010-08-04 13:23:29

Flex事件

2010-08-11 16:19:59

FlexJsp

2010-08-06 09:18:14

Flex

2010-08-09 11:14:36

Flex事件处理
点赞
收藏

51CTO技术栈公众号