`
Sev7en_jun
  • 浏览: 1225463 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
84184fc0-d0b6-3f7f-a3f0-4202acb3caf5
Apache CXF使用s...
浏览量:111305
社区版块
存档分类
最新评论

[Flex3]Flex DataGrid展现java List对象的三种方式

    博客分类:
  • Flex
 
阅读更多

以下主要是我了解到的<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();
    }

  

 

 

2
0
分享到:
评论

相关推荐

    Flex4之DataGrid四个的示例【客户端和服务器端】

    本篇将详细讲解Flex4中的DataGrid组件及其在客户端和服务器端的应用示例,同时也会涉及到Java中的JSON处理,因为这是数据交换的一种常见方式。 一、Flex4 DataGrid组件 1. DataGrid组件简介:DataGrid是Flex中一个...

    Flex4 DataGrid控件行编辑项目

    在Flex4.6中,DataGrid支持两种编辑模式:cell editing(单元格编辑)和row editing(行编辑)。这个项目主要涉及后者,允许用户一次编辑整行数据。 二、ComboBox控件嵌入 ComboBox控件是一个下拉列表选择框,用户...

    Flex中组件datagrid导出Excel

    3. **XML序列化**:在Flex中,我们可以利用XML或XMLList来表示数据,因为它们可以轻松地转换成字符串,方便写入文件。将DataGrid的数据转换成XML,可以采用循环遍历的方式,将每行数据转换成一个XML节点,然后将所有...

    FLEX4 s:dataGrid单元格弹出可文本

    在Flex4开发中,`s:DataGrid`是Adobe Flex组件库中的一个关键元素,用于显示数据集中的信息,通常以表格形式展示。这个组件在处理大量结构化数据时非常有用,用户可以通过滚动和排序来浏览数据。在给定的标题“FLEX4...

    flex下拉dataGrid

    在Flex开发中,"flex下拉dataGrid"是一种常见的用户界面组件组合,它结合了下拉菜单(Dropdown)和数据网格(DataGrid)的功能,用于提供丰富的数据选择体验。这样的设计通常用于当用户需要从一个较大的数据集合中...

    flex datagrid

    Flex DataGrid是一个强大的数据展示组件,它在Adobe Flex框架中被广泛使用,用于显示和操作大量结构化的数据。这个组件提供了灵活的布局选项,可定制的列格式化,以及丰富的用户交互功能,如排序、筛选和编辑。...

    利用java 后台导出Flex DataGrid为Excel

    - 数据转换:Java需要将接收到的Flex DataGrid的数据结构(可能是JSON或XML)解析成Java对象,例如List, Object&gt;&gt;。 - Excel生成:使用Apache POI库,这是一个强大的API,允许我们在Java中创建、修改和操作...

    flex中的datagrid的分页定位以及高亮显示

    在Flex开发中,`Datagrid`组件是一种常用的展示数据列表的控件,而分页和数据高亮显示是提升用户体验的重要功能。本篇主要探讨如何在Flex的`Datagrid`中实现分页定位和高亮显示。 首先,分页定位涉及的主要任务是...

    Flex List DataGrid Menu 拖动技术

    为了增强用户体验,Flex提供了多种控件,包括`List`、`DataGrid`和`Menu`等,这些控件支持丰富的用户交互方式,其中就包括了拖拽(drag and drop)功能。本文将详细介绍如何在Flex中实现这些控件的拖拽功能,并探讨...

    FLEX datagrid应用实例

    在本文中,我们将深入探讨基于Adobe Flex的DataGrid组件的应用实例。Flex是一种强大的富互联网应用程序(RIA)开发框架,主要用于构建交互式、响应式的Web应用。DataGrid是Flex中的一个核心组件,它允许开发者以表格...

    Flex DataGrid从XML文件中加载数据

    在Flex编程中,`Flex DataGrid` 是一个用于展示数据集的组件,它允许用户以表格形式查看和操作数据。本示例展示了如何从XML文件加载数据并将其显示在Flex DataGrid中。以下是对该话题的详细解释: 1. **XML数据源**...

    Flex连接数据库三种方法

    Flex 连接数据库的方法主要涉及三种技术:HttpService、WebService 和 RemoteObject。这些技术都是 Flex 与后端服务器交互的手段,因为Flex本身并不具备直接访问数据库的能力,必须通过服务端代理来实现。 1. **...

    Flex3 两个例子,一个AutoComplete一datagrid

    在Flex3中,`AutoComplete` 功能通常通过使用`Combobox`或`List`组件来实现。开发者可以自定义数据源,比如从服务器端获取数据,或者使用本地数据集。用户在输入时,组件会过滤数据源中的项,显示出匹配的建议。这个...

    Flex itemRenderer的详细教程

    在 Flex 开发中,ItemRenderer 是一种非常强大的工具,它允许开发者自定义列表(List)、数据网格(DataGrid)等控件中每一项的外观和行为。通过 ItemRenderer,我们可以实现更加灵活和动态的界面设计。 #### 二、...

    Flex +BlazeDS+java后台分页的实现

    Flex + BlazeDS + Java 后台分页的实现是一个关键的技术环节,特别是在开发大型Web应用程序时,为了提高用户体验和系统性能,数据通常需要通过分页的方式进行加载。本方案主要探讨了如何在Flex前端和BlazeDS中间件与...

    flex3 json官方包

    3. **绑定数据到UI**:将解析后的数据绑定到Flex组件,如List、DataGrid等,以便展示在用户界面上。 4. **处理用户交互**:监听用户操作,如点击事件,根据需要更新JSON数据,并可能用`JSON.stringify()`将更改转换...

    flex java 交互的一个小例子

    3. **数据Grid和TreeGrid**:在Flex中,`DataGrid`和`TreeGrid`是两种常用的数据展示组件。`DataGrid`用于显示表格数据,适合于行和列结构的数据;`TreeGrid`则是结合了树形结构和表格数据,用于展示层次化数据。...

    Flex4_DataGrid_Tree_条目渲染器_源码

    在Flex4中,数据展示是应用程序开发中的重要环节,而DataGrid和Tree组件则是Adobe Flex提供的两种常用的数据展示工具。这两个组件允许开发者以表格或树形结构显示数据,提供了丰富的功能和灵活性,使得用户可以更好...

    java-flex-mysql

    在IT行业中,Java、Flex和MySQL是三种非常重要的技术,它们常常被组合使用来构建功能丰富的Web应用程序。这里我们深入探讨一下"java-flex-mysql"这个主题,它涉及到的是一套基于Java后端、Flex前端和MySQL数据库的...

    FLEX播放器 flex 开发AIR及Flex之mp3播放器教程

    对于MP3播放列表,我们可以使用List或DataGrid组件来显示歌曲列表。每个列表项可以绑定到一个包含歌曲信息的对象,如文件路径、标题和艺术家。列表选择改变时,更新Sound对象加载的MP3文件。 在Flex与AIR结合时,...

Global site tag (gtag.js) - Google Analytics