Flex 动态datagrid的应用

   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)即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值