1、AdvancedDataGrid扩展了普通DataGrid的功能,AdvancedDataGrid控件提供了另外一些特性,并在数据显示、数据聚合和数据格式化方面有着强大的控制力。
这里我主要说一下AdvancedDataGrid中数据的分层、分组显示以及导航树功能。
2、如果要配置AdvancedDataGrid显示分层数据和导航树,需要把AdvancedDataGrid数据源dataProvider属性设置为HierarchicalData类或者GroupingCollection类的实例。
数据分层显示:使用HierarchicalDatal类。
数据分组显示:使用GroupingCollection类,作为配置一个GroupingCollection类的实例的一部分,您需要指定一个或更多的字段来将平面数据组织为同一层次。
注意:您可以从任意数据创建一个HierarchicalData类或GroupingCollection类的实例来作为数据源。但是,AdvancedDataGrid控件按如下修改它为内部的数据表示:
- 一个数组实例在AdvancedDataGrid控件内部使用一个ArrayCollection类实例表示。
- 一个ArrayCollection在AdvancedDataGrid控件内部使用一个ArrayCollection类实例表示。
- 一个包含正确XML文本的字符串在AdvancedDataGrid控件内部使用一个XMLListCollection类实例表示。
- 一个XMLNode实例在AdvancedDataGrid控件内部使用一个XMLListCollection类实例表示。
- 一个XMLList实例在AdvancedDataGrid控件内部使用一个XMLListCollection类实例表示。
- 任何实现ICollectionView接口的对象在AdvancedDataGrid控件内部使用一个ICollectionView实例表示。
- 一个其他任意类型的对象被作为唯一的条目包裹在一个的数组示例中。
例如,如果您使用一个数组来创建HierarchicalData类的一个实例,并将该HierarchicalData实例传递给AdvancedDataGrid.dataProvider属性,然后又从AdvancedDataGrid.dataProvider属性将其读回;您读回的数据将是一个ArrayCollection实例。
3、导航树:
AdvancedDataGrid控件中可以将数据显示为树形结构,也因为该控件的第一列使用一个可缩放数来选择行的显示而被称作tree datagrid,唯一要记住的规则是该树总是显示在有列的最左边。
尽管在AdvancedDataGrid控件您可以所任意组织列而不管数据是如何组织的。并且您可以通过拖动列来对AdvancedDataGrid控件上的列进行重新定位,但是导航树总是出现在列的最左边。
数据表格的第一列通常与该控件的数据源的某一字段关联。该数据字段用于为树节点标签命名。
4、显示分层数据:
分层数据是数据被分层组织的结构化数据。要在AdvancedDataGrid控件中显示分层数据,您需要将控件的数据源设置为Hierarchica。数据源中的lData类的实例数据结构定义了AdvancedDataGrid控件对数据的如何显示。
在下面的示例中展示了AdvancedDataGrid控件的分层数据显示。
该数据的顶层数据包含一个Region字段和多个第二层子对象,每个第二层子对象也包含一个Region字段和多个其他的子对象。
该示例中的AdvancedDataGrid控件定义了四列来显示数据:Region、Territory Rep、 Actual和Estimate。
(1)使用ArrayCollection定义分层数据:使用ArrayCollection是创建分层数据的常用方式。
下面为本示例代码:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"