Flex 3 AdvancedDataGrid的使用(七)

本文详细介绍了如何使用分层数据进行列分组,并通过示例展示了将实际值和估算值列归组到收入组列中的过程。通过自定义的数据结构和配置,实现了数据的有效组织与展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自 http://hi.baidu.com/lz0830/blog/item/d7467713a9dac4896438db61.html

对分层数据进行列分组

和扁平数据一样,您使用分层数据进行列分组,以下例子修改自“为导航树创建单独的列“章节中的示例以将Actual和Estimates列归组到Revenues组列中:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
 <mx:Script>
  <![CDATA[
  import mx.collections.ArrayCollection;
  include "SimpleHierarchicalData.as";
  ]]>
 </mx:Script>
 <mx:AdvancedDataGrid width="100%" height="100%">
  <mx:dataProvider>
   <mx:HierarchicalData source="{dpHierarchy}"/>
  </mx:dataProvider>
  <mx:groupedColumns>
  <mx:AdvancedDataGridColumn dataField="Region"/>
   <mx:AdvancedDataGridColumn dataField="Territory_Rep"
    headerText="Territory Rep"/>
   <mx:AdvancedDataGridColumnGroup headerText="Revenues">
    <mx:AdvancedDataGridColumn dataField="Actual"/>
    <mx:AdvancedDataGridColumn dataField="Estimate"/>
   </mx:AdvancedDataGridColumnGroup>
  </mx:groupedColumns>
 </mx:AdvancedDataGrid>
</mx:Application>

运行示例


上面的列分组示例中并没有为AdvancedDataGridColumnGroup类指定数据字段,但是,AdvancedDataGridColumnGroup类就是被设计用于和分层数据一起工作的。因此,如果您给AdvancedDataGridColumnGroup类指定一个数据字段的话,它将自动给该数据字段的子字段创建一个列分组。

在下面示例中,HierarchicalDataForGroupedColumns.as文件定义了一个分层数据,设置Revenues字段包含俩个子字段,Actual 和Estimate:

[Bindable]
private var dpHierarchy:ArrayCollection = new ArrayCollection([
 {Region:"Southwest", Territory:"Arizona",
  Territory_Rep:"Barbara Jennings",
  Revenues:{Actual:38865, Estimate:40000}},
 {Region:"Southwest", Territory:"Arizona",
  Territory_Rep:"Dana Binn",
  Revenues:{Actual:29885, Estimate:30000}},
 {Region:"Southwest", Territory:"Central California",
  Territory_Rep:"Joe Smith",
  Revenues:{Actual:29134, Estimate:30000}},
 {Region:"Southwest", Territory:"Nevada",
  Territory_Rep:"Bethany Pittman",
  Revenues:{Actual:52888, Estimate:45000}},
 {Region:"Southwest", Territory:"Northern California",
  Territory_Rep:"Lauren Ipsum",
  Revenues:{Actual:38805, Estimate:40000}},
 {Region:"Southwest", Territory:"Northern California",
  Territory_Rep:"T.R. Smith",
  Revenues:{Actual:55498, Estimate:40000}},
 {Region:"Southwest", Territory:"Southern California",
  Territory_Rep:"Alice Treu",
  Revenues:{Actual:44985, Estimate:45000}},
 {Region:"Southwest", Territory:"Southern California",
  Territory_Rep:"Jane Grove",
  Revenues:{Actual:44913, Estimate:45000}}
]);

下面示例使用该数据并且指定Revenues字段为AdvancedDataGridColumnGroup.dataField属性的值,其输出如下:

以下是实现代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
 <mx:Script>
  <![CDATA[
   import mx.collections.ArrayCollection;
   include "HierarchicalDataForGroupedColumns.as";
  ]]>
 </mx:Script>
 <mx:AdvancedDataGrid id="myADG"
  width="100%" height="100%"
  defaultLeafIcon="{null}">
  <mx:dataProvider>
   <mx:HierarchicalData source="{dpHierarchy}"/>
  </mx:dataProvider>
  <mx:groupedColumns>
   <mx:AdvancedDataGridColumn dataField="Region"/>
   <mx:AdvancedDataGridColumn dataField="Territory"/>
   <mx:AdvancedDataGridColumn dataField="Territory_Rep"
    headerText="Territory Rep"/>
   <mx:AdvancedDataGridColumnGroup dataField="Revenues">
    <mx:AdvancedDataGridColumn dataField="Actual"/>
    <mx:AdvancedDataGridColumn dataField="Estimate"/>
   </mx:AdvancedDataGridColumnGroup>
  </mx:groupedColumns>
 </mx:AdvancedDataGrid>
</mx:Application>

运行示例



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值