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

Flex data provider

阅读更多
Array属性raw data object,不能保持同步,方式有限,Collection更好

Data provider分两种Linear和Hierarchical
Linear用IList ICollectionView操作,
Hierarchical用data descriptor来操作

Collection作为data provider时

更新可以立即可见,而不需要refresh
可以处理远程的data provider
single provider to multiple components
一些组件会自动的把Array转换成Collection
HttpServices, WebServices返回Array, RemoteObject返回ArrayCollection

Sort:
创建一个Sort对象,设置SortField, 设置Collection对象的Sort属性,refresh()
Filter:
创建一个单对象参数函数,返回Boolean值,设置Collection对象的filterFunction属性


IViewCursort:
设置
public var myCursor:IViewCursor;
myCursor=myAC.createCursor();
遍历
while (! myCursor.afterLast) {
myCursor.moveNext();
}
查找(绝对查找)
myCursor.findFirst("MZ");
myCursor.findFirst({label:"ME"})
myCursor.findFirst({label:"ME", data:"Augusta"});
相对查找seek()

Bookmarks
var myBookmark:CursorBookmark=myIViewCursor.bookmark;
myIViewCursor.seek(myBookmark);collection events:
实现IList, ICollectionView的类dispatch CollectionEvents,它们有itemUpdated来告诉Collections更新已经完成。
Listener为reservationsChanged,event的kind属性:ADD REMOVE, UPDATE, RESET
ICollectionView中用enableAutoUpdate()和disableAutoUpdate()来控制自动更新

[Bindable]可以加在类或属性前,则此类或属性改变时会产生propertyChange事件


Hierarchial Data Provider
两种:
XML: well-formed XML, XML, XMLList, XMLListCollection Object, <mx:XML>, <mx:XMLList>
Object: 具有children field的Object, <mx:Model>
<mx:XML>产生一个XML或XMLNode对象,默认为e4x格式,可设成xml
(好象<mx:XML>和<mx:XMLList>的不同在于,<mx:XML>后紧跟<root>)

An XMLList object is an ordered collection of properties. An XMLList object represents an XML document, an XML fragment, or an arbitrary collection of XML objects.
An XMLList object with one XML element is treated the same as an XML object. When there is one XML element, all methods that are available for the XML object are also available for the XMLList object.



用data descriptor来到处理
ITreeDataDescriptor处理tree
IMenuDataDescriptor处理Menu一类

当使用XML用data provider时,如果需要动态更新,则要转换成XMLListCollection:
<mx:XMLListCollection source="{XMLOBJECT.NODE}"/>
设成Tree的dataProvider时,需要设置labelField属性,showRoot属性可选
<mx:Tree dataProvider="{capitalColl}" labelField="@label" width="300"/>


如果Server端的类型为List,RemoteObejct返回ArrayCollection

public var ds:DataService;
[Bindable]
public var contacts:ArrayCollection = new ArrayCollection
ds = new DataService("ServiceName");
ds.fill(contacts);

不断获取的叫paged data,没有获取到的是pending data,这个机制用来缓解server和带宽压力
分享到:
评论

相关推荐

    flex DataGrid设置dataProvider

    在本文中,我们将深入探讨如何在Flex中设置`DataGrid`的数据提供者(`dataProvider`),以便动态地填充数据。`DataGrid`是Adobe Flex中一个非常重要的组件,它用于显示和操作网格形式的数据。理解如何有效地设置数据...

    用ArrayCollection当做flex中Tree控件的DataProvider

    在Flex开发中,数据展示控件常常需要与数据提供者(DataProvider)进行绑定,以便将数据模型呈现出来。本文将详细探讨如何使用`ArrayCollection`作为Flex中的`Tree`控件的数据提供者,以替代通常使用的XML数据源。 ...

    Flex创建可编辑以及分页的DataGrid

    dg.dataProvider = dataProvider; ``` 为了让DataGrid具有编辑功能,我们需要为每列设置`editable`属性。例如,如果我们有两个字段`name`和`price`,可以这样做: ```xml &lt;mx:DataGridColumn dataField="name...

    flex 线图到饼图的联动

    lineChart.dataProvider = dataProvider; lineChart.addEventListener(MouseEvent.CLICK, onLineItemClick); // 创建饼图并绑定数据源 var pieChart:PieChart = new PieChart(); pieChart.dataProvider = data...

    flex datagrid按数字顺序,字母顺序排序

    var dataProvider:ArrayCollection = dataGrid.dataProvider as ArrayCollection; if (column.dataField == "numericField") { dataProvider.sort = new Sort(); dataProvider.sort.fields = [new SortField...

    FLEX双击左右移动表格中的数据

    var dataProvider:ArrayCollection = dataGrid.dataProvider as ArrayCollection; if (currentIndex &gt; 0) { // 向左移动 var temp:Object = dataProvider[currentIndex]; dataProvider.move(currentIndex, ...

    flex 饼图的demo

    myPieChart.dataProvider = dataProvider; ``` 饼图的属性: 1. `dataProvider`:饼图的数据源,通常为ArrayCollection,其中每个对象包含`label`(分类标签)和`value`(数值)属性。 2. `showDataLabels`:设置...

    Flex课程学习(附带源码)

    &lt;DataGrid dataProvider="{ws.getProducts...}" /&gt; &lt;LineChart dataProvider"{ws.getProducts...}" /&gt; A、 Application/WebService/Button/DataGrid/LineChart MXML组件 B、 id="ws" MXML 组件的id C、 click...

    flex DataGrid翻页

    grid.dataProvider = dataProvider; ``` 2. **配置分页参数**:在PagedCollectionView中,需要设定每页的记录数(pageSize)以及是否允许用户改变页面大小(allowPageSizeChange)。例如: ```actionscript data...

    flex combobox 输入过滤实例

    &lt;s:ComboBox id="comboBox" dataProvider="{dataProvider}" textChange="comboBox_textChangeHandler(event)" /&gt; ``` 上述代码创建了一个Combobox,并在输入改变时应用过滤函数。 5. **优化与扩展** - 你...

    Flex中Tree组件的数据源举例(xml,array,object)

    tree.dataProvider = dataProvider; ``` 接下来,我们讨论Array数据源。Array是最基础的数据结构,可以包含任意类型的数据。对于Tree组件,数组中的每个元素应包含子元素,以表示层级关系。例如: ```actionscript...

    FLEX中下拉框嵌入Checkbox

    但是,我们可以通过自定义数据提供者(dataProvider)和itemRenderer来改变这一行为,使每个选项显示为一个包含Checkbox的复合组件。 1. 创建自定义ItemRenderer: 自定义ItemRenderer是实现下拉框中嵌入Checkbox...

    Flex-DataGrid使用关键字过滤结果

    var dataProvider: ArrayCollection = dataGrid.dataProvider as ArrayCollection; for (var i: int = 0; i &lt; dataProvider.length; i++) { var item: Object = dataProvider.getItemAt(i); // 假设item有多...

    flex DataGrid xml 动态数据列表实例

    dataGrid.dataProvider = dataProvider; ``` 5. **定义列**:`DataGrid`需要知道如何显示数据,所以我们需要为每个列定义`GridColumn`对象。这些列的`dataField`属性应与XML节点相对应: ```actionscript var name...

    Flex 饼形图 piechart 柱形图 columnchart 条形图 barchart 折线图 linechart

    你可以通过设置`dataProvider`属性来指定数据源,使用`series`来定义图表的样式和行为。 2. **柱形图(ColumnChart)** 柱形图是一种用于比较不同类别的数值的图表。在Flex中,ColumnChart组件允许你通过垂直或...

    Flex添加右键菜单

    menuRoot.dataProvider = new ArrayCollection([{label:"label1",data:"data1"},{label:"label2",data:"data2"}]); menuRoot.labelField = "label"; menuRoot.show(label.x, label.y); // 在label组件的位置显示...

    Flex button和buttonBar的操作

    `dataProvider`属性定义了ButtonBar的按钮数据,每个对象的`label`属性对应按钮上的文本。 在实际应用中,我们可能需要对按钮进行更复杂的定制,例如改变按钮的样式、添加图标或响应不同状态下的事件。Flex提供了...

    flex4Tree组件分层显示数据示例

    tree.dataProvider = dataProvider; ``` 接下来,定义Tree组件的外观和行为。你可以自定义itemRenderer,以便每个节点以特定方式显示。在Flex4中,可以创建一个新的MXML组件作为itemRenderer,并通过`...

    flex解析xml文件

    5. 设置下拉列表和文本框:`this.driverName.dataProvider`被设置为与`driverTemplate.dataProvider`相同,确保下拉列表`driverName`和ComboBox关联。`this.url.text`被设置为当前选中的驱动程序的URL,这样用户选择...

    Flex 表格单元格合并

    3. `dataProvider.xml`或`dataProvider ArrayCollection`: 数据源,可能包含了用于显示在DataGrid中的数据。 4. `styles.css`: 可能包含了自定义的样式,用于美化合并后的单元格。 学习这个示例,你可以了解到如何...

Global site tag (gtag.js) - Google Analytics