(仅限 Flex 数据可视化组件)
mx.collections
public class Grouping
继承Grouping Inheritance Object

Grouping 类定义用于对数据进行分组的 AdvancedDataGrid 控件的数据提供程序中的字段。当 AdvancedDataGrid 控件的输入数据具有平面结构时,可使用此类创建组。

要使用分组数据填充 AdvancedDataGrid 控件,可以在平面数据中创建 GroupingCollection 类的一个实例,然后将该 GroupingCollection 实例传递给 AdvancedDataGrid 控件的数据提供程序。要指定平面数据的分组字段,可将一个 Grouping 实例传递给 GroupingCollection.grouping 属性。Grouping 实例包含 GroupingField 实例 Array,每个分组字段一个。

以下示例使用 Grouping 类定义两个分组字段:Region 和 Territory。

<mx:AdvancedDataGrid id="myADG"    
    <mx:dataProvider> 
      <mx:GroupingCollection id="gc" source="{dpFlat}"> 
        <mx:grouping> 
          <mx:Grouping> 
            <mx:GroupingField name="Region"/> 
            <mx:GroupingField name="Territory"/> 
          </mx:Grouping> 
        </mx:grouping> 
      </mx:GroupingCollection> 
    </mx:dataProvider>  
     
    <mx:columns> 
      <mx:AdvancedDataGridColumn dataField="Region"/> 
      <mx:AdvancedDataGridColumn dataField="Territory"/> 
      <mx:AdvancedDataGridColumn dataField="Territory_Rep"/> 
      <mx:AdvancedDataGridColumn dataField="Actual"/> 
      <mx:AdvancedDataGridColumn dataField="Estimate"/> 
    </mx:columns> 
  </mx:AdvancedDataGrid>

MXML 语法expanded隐藏 MXML 语法
The <mx.Grouping> tag defines the following tag attributes:

  <mx:Grouping
  Properties 
    compareFunction="No default"
    fields="null"
    groupingObjectFunction="No default"
    label="GroupLabel"
  />
  

默认 MXML 属性fields

另请参见

mx.controls.AdvancedDataGrid
mx.collections.GroupingCollection
mx.collections.GroupingField


公共属性
 属性定义方
  compareFunction : Function
用于在排序时比较项目的方法。
Grouping
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  fields : Array
指定用于对数据进行分组的字段的 GroupingField 对象 Array。
Grouping
  groupingObjectFunction : Function
在每个组节点上运行以确定分组对象的回调函数。
Grouping
  label : String = "GroupLabel"
添加到平面数据以创建层次结构的字段的名称。
Grouping
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
  
构造函数。
Grouping
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
属性详细信息
compareFunction属性
compareFunction:Function  [读写]

用于在排序时比较项目的方法。如果指定了此属性,Flex 会忽略在此类中使用的 SortField 对象中指定的所有 compareFunction 属性。

该比较函数必须具有以下签名:

function [name](a:Object, b:Object, fields:Array=null):int

此函数必须返回以下值:

要返回内部比较函数,请将此值设置为 null

fields Array 会指定要比较的对象字段。通常,算法将一直比较属性,直到用尽字段列表或能返回非零值。例如:

function myCompare(a:Object, b:Object, fields:Array=null):int
        {
            var result:int = 0;
            var i:int = 0;
            var propList:Array = fields ? fields : internalPropList;
            var len:int = propList.length;
            var propName:String;
            while (result == 0 && (i < len))
            {
                propName = propList[i];
                result = compareValues(a[propName], b[propName]);
                i++;
            }
            return result;
        }
             function compareValues(a:Object, b:Object):int
        {
            if (a == null && b == null)
                return 0;
                 if (a == null)
              return 1;
                 if (b == null)
               return -1;
                 if (a < b)
                return -1;
                 if (a > b)
                return 1;
                 return 0;
        }

默认值为具有以下特征的内部比较函数:可以通过区分大小写或不区分大小写的字符串比较按升序或降序执行字符串、数字或日期比较。仅在需要自定义比较算法时指定您自己的函数。这种情况通常仅当在显示中使用计算的字段时出现。

或者,您可以使用 SortField 类的 compare 属性为每个排序字段指定单独的比较函数。这样,您可以对某些字段使用默认比较,而对其它字段使用自定义比较。



实现
    public function get compareFunction():Function
    public function set compareFunction(value:Function):void
fields属性 
fields:Array  [读写]

指定用于对数据进行分组的字段的 GroupingField 对象 Array。在进行排序时,Array 中 GroupingField 对象的顺序确定字段的优先级顺序。

默认值为 null.



实现
    public function get fields():Array
    public function set fields(value:Array):void

另请参见

groupingObjectFunction属性 
public var groupingObjectFunction:Function

在每个组节点上运行以确定分组对象的回调函数。默认情况下,将为组节点创建新 Object。

您可以提供 groupingObjectFunction,它可以为组节点提供合适的对象。

方法签名为:

myGroupObjectFunction(label:String):Object

其中 label 包含将为该组节点显示的值。该函数返回将用于组节点的 Object。

例如,groupingObjectFunction 返回包含“name”属性且该属性值为“Bob”的 Object 可写作 -
private function groupObjFunction(label:String):Object
      {
          var obj:Object = {};
          obj.name = "Bob";
               return obj;
      }

label属性 
public var label:String = "GroupLabel"

添加到平面数据以创建层次结构的字段的名称。每个组中顶部节点(表示组字段的节点)的值由此属性提供。使用此属性指定一个不同的名称。

默认值为 GroupLabel.

构造函数详细信息
Grouping()构造函数
public function Grouping()

构造函数。