Flex有2种常用的datagrid:datagrid和advanceddatagrid,本文指功能更加强大的advanceddatagrid。所谓advanceddatagrid的动态应用是指,其列数不确定,随着数据源的改变,其列自适应填充(列顺序、列抬头设置、宽度设置等)。
为什么要讨论datagrid的动态应用,是因为实际业务当中往往有很多报表其列数是不确定的,这通常是指横向报表。如有张报表是这样的:
年份 月份 产品类别 销售额
2010 6 笔记本 10000(万元)
2010 6 台式机 20000(万元)
……
现在要把这张报表横过来,展示如下:
年份 月份 产品类别1 产品类别2 产品类别3…
2010 6 10000(万元)20000(万元) …
此时,其列是随着产品类别数量变动而变动的,即其列是需要动态改变的,虽Flex提供了现成的olapdatagrid可用,由于其使用不方便、展示慢等原因,简单的动态列报表还是用advanceddatagrid来实现,那么如何实现?
1、 约定
1) flex使用blazeds与java进行通讯;
2)
2、 在java定义一个flex的datagrid列属性设置类
JavaColDef,该类有name、text、width等属性,分别表示名称、抬头和宽度;当然为了映射,最好flex端定义一个与JavaColDef结构一样的FlexColDef,并映射到JavaColDef。
3、 在java端定义一个获取列属性设置的函数
Public JavaColDef[] getDataGridSetting()
该函数返回列属性数组,在数组中的填充顺序即默认为该列在grid中的显示顺序。
4、 在flex端进行datagrid的数据填充处理
假设flex执行了查询操作得到了数据集{dataset},当我们得到该数据集的时候,我们立即调用getDataGridSetting方法去获取列属性定义。
获取到列属性定义之后,执行表格重建操作。
1) 先移除所有列;
2) 根据属性列集合,依次给datagrid添加列,并设置其属性;
3) 绑定数据集{dataset}
5、 总结
Datagrid动态列实现,只要进行2个操作即可。
1) 开发人员自行实现getDataGridSetting()函数;
2) 数据查询事件处理,查询成功后调用统一函数,void rebuildGrid(array:ArrayCollection)即可。
分享到:
相关推荐
FLEX4实践—动态生成DataGrid及应用客户化itemRenderer.doc
几个Flex datagrid 应用的小例子,适合新手学习
使用Flex开发DataGrid分页控件应用支持客户端及服务端
NULL 博文链接:https://xaajie.iteye.com/blog/434447
Flex中导出当前DataGrid中的数据。生成一个Excel文件。资源为一个简单的应用。
本实例是在datagrid里插入多列Checkbox的应用,不存在拖动下拉条混乱问题,里面代码很简单,但希望可以帮到你。
flex4 的DataGrid里面加一列CheckBox并实现数据交互的试验 - 暖阳下的猫的日志 - 网易博客 Flex 4 ColumnChart 图表使用实例ColumnChart_RIA前线-Flex富应用、Flex中文教程、Flex实例源码 Flex实现ColumnChart柱图为...
以一个完整的例子介绍如何利用 Flex3 技术开发一个标准的 OLAP 应用,其中包括各类图形分析控件,以及 Flex3 新引入的 OLAP DataGrid,最后针对 OLAP 应用中一些常用的需求对这些控件进行了自定义扩展。
2,为了确保程序初始化时有默认选中项,要在主应用程序中实例化一个Array对象,其代码为:public var selectItems:Array=new Array(); 3,最后在datagrid中引用下面代码即可 import ...
本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。...16. 使用样式定制Flex应用 17. 使用皮肤定制Flex应用 18. 自定义ActionScript组件
HTML 应用程序将页用作屏幕,但在 Flex 中,您使用的是一种相关、但不同的概念,它称为状态。正如您将看到的那样,与 HTML 不同,状态不必出现在单独的文件中。 您将创建三个状态。第一个是您已经构建的界面,当启动...
6.5 新建一个Flex应用程序,测试连接 35 6.6 实际应用 37 7 Cairngrom框架 38 8 实例:Simple Note Management 40 8.1基本组件使用[Tree,datagrid,TitleWindow,ViewStack] 40 8.2读写XML 40 8.3读写ShareObject 40 8.4...
使用Flex,Java,Json更新Mysql数据库 已经介绍了如何使用Json格式的数据从后台用remoteObject的方法读取后现在Flex的DataGrid中。但是如果数据的量很大,就要使用scroll的方式来浏览了,这样造就了很多不变。参考了...
Flex 应用程序不会直接连接到远程数据库。而是使用以您的首选网络语言(PHP、ColdFusion、Java 或任何其他服务器端网络技术)编写的数据服务连接到远程数据。 本教程说明了如何创建一种数据服务,它使用 Flash ...
Js表格,万条数据瞬间加载 在Ajax动态加载数据的实际应用中,大家都习惯了一种思维方式:一条数据创建一行。 于是如果数量大的时候,一次性要加载完数据的话,浏览器就会卡上半天 受Flex的DataGrid控件的启发,在...
在 Flex 中,当用户与 Flex 应用程序中的一个组件交互时,组件会广播事件;如 click、rollOver 或rollOut 事件。为了对事件作出响应,您指定在发生事件时调用一个事件处理函数。 在本教程中,您将编写事件处理函数,...
编译和部署使用RSL的Flex应用程序 25.6节. 在Flex Builder调试中创建和监视表达式 25.7节. 在Flex Builder中安装Ant窗口 25.8节. 为自动通用任务创建一个Ant构建文件 25.9节. 使用mxmlc和Ant编译Flex应用程序 25.10...
本文侧重于使用FlexDataGrid创建简单的UI,从而显示跨所有连接客户机同步的结果集。一个用户更新了DataGrid后,所有其他访问该数据的用户可以立即收到这些更新。这意味着您不必再担心竞态条件和数据覆盖问题。对于...
based控件的拖放事件 13 运行在AIR中的Flex应用程序的拖放 16 拖放实例 17 例子1:用Canvas作为drop target 17 例子2:指定drag proxy 18 例子3:为drop target处理dragOver和dragExit事件 20 ...