以下主要是我了解到的<mx:DataGrid 标签中一些属性的使用,希望对正在研究flex的朋友们有点用
下面是相关说明(java及配置部分省略)
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
minWidth="955" minHeight="600" backgroundColor="white"
creationComplete="onComplete()" horizontalAlign="left" layout="vertical"
verticalAlign="top" fontSize="12" xmlns:nsl="*">
<mx:RemoteObject id="userAction" destination="userAction">
</mx:RemoteObject>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayList;
import flash.external.ExternalInterface;
[Bindable]
public var userArr:Array=new Array();
[Bindable]
public var userColls:ArrayCollection=new ArrayCollection();
private function resultHandler(event:ResultEvent):void {
userColls = event.result as ArrayCollection;
userArr = userColls.toArray();
Alert.show(userArr[1].toString(),"Title");
}
private function onComplete():void{
userAction.getAllUser();
userAction.addEventListener(ResultEvent.RESULT,resultHandler);
}
private function rowNum(oItem:Object,iCol:int):String
{
// Alert.show(iCol+"----"+oItem);
var iIndex:int = userColls.getItemIndex(oItem) + 1;
for(var i:int=0;i<userColls.length;i++){
var user:Object=userColls[iIndex-1];
user.num=iIndex+"";
}
return String(iIndex);
}
]]>
</mx:Script>
<mx:DataGrid id="dataProvider" dataProvider="{userColls}">
<mx:columns>
<mx:DataGridColumn labelFunction="rowNum" headerText="序号"/>//labelFunction对应你想调用的函数,比如说这里是自动为每行生成行号,rowNum为函数名
<mx:DataGridColumn dataField="userName" headerText="姓名"/> //dataField对应集合中对象属性
<mx:DataGridColumn dataField="sex" headerText="性别"/> //headerText对应值随便写
<mx:DataGridColumn dataField="telephone" headerText="电话"/>
<mx:DataGridColumn dataField="address" headerText="地址"/>
</mx:columns>
</mx:DataGrid>
第一种使用dataProvider属性, userColls为mx.collections.ArrayCollection类型
<mx:DataGrid id="dg" dataProvider="{userColls}">
<mx:columns>
<mx:DataGridColumn labelFunction="rowNum" headerText="序号"/> //labelFunction对应你想调用的函数,比如说这里是自动为每行生成行号,rowNum为函数名
<mx:DataGridColumn dataField="userName" headerText="姓名"/>
<mx:DataGridColumn dataField="sex" headerText="性别"/>
<mx:DataGridColumn dataField="telephone" headerText="电话"/>
<mx:DataGridColumn dataField="address" headerText="地址"/>
</mx:columns>
</mx:DataGrid>
或者在mxml方法中使用dg.dataProvider=userColls来赋值(dg为id)
==============================
<mx:DataGrid id="source" >
<mx:dataProvider>
<mx:ArrayCollection id="test" source="{userArr}">
</mx:ArrayCollection>
</mx:dataProvider>
<mx:columns>
<mx:DataGridColumn labelFunction="rowNum" headerText="序号"/>
<mx:DataGridColumn dataField="userName" headerText="姓名"/>
<mx:DataGridColumn dataField="sex" headerText="性别"/>
<mx:DataGridColumn dataField="telephone" headerText="电话"/>
<mx:DataGridColumn dataField="address" headerText="地址"/>
</mx:columns>
</mx:DataGrid>
第二种使用<mx:ArrayCollection 的source属性,source对应的值必须是和Array相关的类型,如果用这种方式,可以直接把获取到的userColls直接转为Array类型,即userColls.toArray()
=============================
<mx:DataGrid id="list" >
<mx:dataProvider>
<mx:ArrayCollection list="{userColls}" >
</mx:ArrayCollection>
</mx:dataProvider>
<mx:columns>
<mx:DataGridColumn labelFunction="rowNum" headerText="序号"/>
<mx:DataGridColumn dataField="userName" headerText="姓名"/>
<mx:DataGridColumn dataField="sex" headerText="性别"/>
<mx:DataGridColumn dataField="telephone" headerText="电话"/>
<mx:DataGridColumn dataField="address" headerText="地址"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
第三种方式使用<mx:ArrayCollection 的list属性,list属性对应的值必须是实现或者和IList相关的类型
以上三种最终显示结果一样
使用dataProvider属性可以为任意数据类型,api 中对各种数据相应的转换处理
API节选
public function set dataProvider(value:Object):void
{
if (collection)
{
collection.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
}
if (value is Array)
{
collection = new ArrayCollection(value as Array);
}
else if (value is ICollectionView)
{
collection = ICollectionView(value);
}
else if (value is IList)
{
collection = new ListCollectionView(IList(value));
}
else if (value is XMLList)
{
collection = new XMLListCollection(value as XMLList);
}
else if (value is XML)
{
var xl:XMLList = new XMLList();
xl += value;
collection = new XMLListCollection(xl);
}
else
{
// convert it to an array containing this one item
var tmp:Array = [];
if (value != null)
tmp.push(value);
collection = new ArrayCollection(tmp);
}
// get an iterator for the displaying rows. The CollectionView's
// main iterator is left unchanged so folks can use old DataSelector
// methods if they want to
iterator = collection.createCursor();
collectionIterator = collection.createCursor(); //IViewCursor(collection);
// trace("ListBase added change listener");
collection.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler, false, 0, true);
clearSelectionData();
var event:CollectionEvent = new CollectionEvent(CollectionEvent.COLLECTION_CHANGE);
event.kind = CollectionEventKind.RESET;
collectionChangeHandler(event);
dispatchEvent(event);
itemsNeedMeasurement = true;
invalidateProperties();
invalidateSize();
invalidateDisplayList();
}
分享到:
相关推荐
本篇将详细讲解Flex4中的DataGrid组件及其在客户端和服务器端的应用示例,同时也会涉及到Java中的JSON处理,因为这是数据交换的一种常见方式。 一、Flex4 DataGrid组件 1. DataGrid组件简介:DataGrid是Flex中一个...
在Flex4.6中,DataGrid支持两种编辑模式:cell editing(单元格编辑)和row editing(行编辑)。这个项目主要涉及后者,允许用户一次编辑整行数据。 二、ComboBox控件嵌入 ComboBox控件是一个下拉列表选择框,用户...
3. **XML序列化**:在Flex中,我们可以利用XML或XMLList来表示数据,因为它们可以轻松地转换成字符串,方便写入文件。将DataGrid的数据转换成XML,可以采用循环遍历的方式,将每行数据转换成一个XML节点,然后将所有...
在Flex4开发中,`s:DataGrid`是Adobe Flex组件库中的一个关键元素,用于显示数据集中的信息,通常以表格形式展示。这个组件在处理大量结构化数据时非常有用,用户可以通过滚动和排序来浏览数据。在给定的标题“FLEX4...
在Flex开发中,"flex下拉dataGrid"是一种常见的用户界面组件组合,它结合了下拉菜单(Dropdown)和数据网格(DataGrid)的功能,用于提供丰富的数据选择体验。这样的设计通常用于当用户需要从一个较大的数据集合中...
Flex DataGrid是一个强大的数据展示组件,它在Adobe Flex框架中被广泛使用,用于显示和操作大量结构化的数据。这个组件提供了灵活的布局选项,可定制的列格式化,以及丰富的用户交互功能,如排序、筛选和编辑。...
- 数据转换:Java需要将接收到的Flex DataGrid的数据结构(可能是JSON或XML)解析成Java对象,例如List, Object>>。 - Excel生成:使用Apache POI库,这是一个强大的API,允许我们在Java中创建、修改和操作...
在Flex开发中,`Datagrid`组件是一种常用的展示数据列表的控件,而分页和数据高亮显示是提升用户体验的重要功能。本篇主要探讨如何在Flex的`Datagrid`中实现分页定位和高亮显示。 首先,分页定位涉及的主要任务是...
为了增强用户体验,Flex提供了多种控件,包括`List`、`DataGrid`和`Menu`等,这些控件支持丰富的用户交互方式,其中就包括了拖拽(drag and drop)功能。本文将详细介绍如何在Flex中实现这些控件的拖拽功能,并探讨...
在本文中,我们将深入探讨基于Adobe Flex的DataGrid组件的应用实例。Flex是一种强大的富互联网应用程序(RIA)开发框架,主要用于构建交互式、响应式的Web应用。DataGrid是Flex中的一个核心组件,它允许开发者以表格...
在Flex编程中,`Flex DataGrid` 是一个用于展示数据集的组件,它允许用户以表格形式查看和操作数据。本示例展示了如何从XML文件加载数据并将其显示在Flex DataGrid中。以下是对该话题的详细解释: 1. **XML数据源**...
Flex 连接数据库的方法主要涉及三种技术:HttpService、WebService 和 RemoteObject。这些技术都是 Flex 与后端服务器交互的手段,因为Flex本身并不具备直接访问数据库的能力,必须通过服务端代理来实现。 1. **...
在Flex3中,`AutoComplete` 功能通常通过使用`Combobox`或`List`组件来实现。开发者可以自定义数据源,比如从服务器端获取数据,或者使用本地数据集。用户在输入时,组件会过滤数据源中的项,显示出匹配的建议。这个...
在 Flex 开发中,ItemRenderer 是一种非常强大的工具,它允许开发者自定义列表(List)、数据网格(DataGrid)等控件中每一项的外观和行为。通过 ItemRenderer,我们可以实现更加灵活和动态的界面设计。 #### 二、...
Flex + BlazeDS + Java 后台分页的实现是一个关键的技术环节,特别是在开发大型Web应用程序时,为了提高用户体验和系统性能,数据通常需要通过分页的方式进行加载。本方案主要探讨了如何在Flex前端和BlazeDS中间件与...
3. **绑定数据到UI**:将解析后的数据绑定到Flex组件,如List、DataGrid等,以便展示在用户界面上。 4. **处理用户交互**:监听用户操作,如点击事件,根据需要更新JSON数据,并可能用`JSON.stringify()`将更改转换...
3. **数据Grid和TreeGrid**:在Flex中,`DataGrid`和`TreeGrid`是两种常用的数据展示组件。`DataGrid`用于显示表格数据,适合于行和列结构的数据;`TreeGrid`则是结合了树形结构和表格数据,用于展示层次化数据。...
在Flex4中,数据展示是应用程序开发中的重要环节,而DataGrid和Tree组件则是Adobe Flex提供的两种常用的数据展示工具。这两个组件允许开发者以表格或树形结构显示数据,提供了丰富的功能和灵活性,使得用户可以更好...
在IT行业中,Java、Flex和MySQL是三种非常重要的技术,它们常常被组合使用来构建功能丰富的Web应用程序。这里我们深入探讨一下"java-flex-mysql"这个主题,它涉及到的是一套基于Java后端、Flex前端和MySQL数据库的...
对于MP3播放列表,我们可以使用List或DataGrid组件来显示歌曲列表。每个列表项可以绑定到一个包含歌曲信息的对象,如文件路径、标题和艺术家。列表选择改变时,更新Sound对象加载的MP3文件。 在Flex与AIR结合时,...