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

GroupingField 类提供用于对由 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.GroupingField> inherits all the tag attributes of its superclass, and defines the following tag attributes:

  <mx:GroupingField
  Properties 
    caseInsensitive="false|true"
    compareFunction="No default"
    descending="false|true"
    groupingFunction="No default"
    groupingObjectFunction="No default"
    name="null"
    numeric="false|true"
    summaries="No default"
  />
  

默认 MXML 属性summaries

另请参见

mx.controls.AdvancedDataGrid
mx.collections.GroupingCollection
mx.collections.Grouping


公共属性
 属性定义方
  caseInsensitive : Boolean
如果此字段的排序不区分大小写,则设置为 true。
GroupingField
  compareFunction : Function
用于在对关联集合的项目进行排序时比较两个项目的函数。
GroupingField
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  descending : Boolean
如果此字段的排序应为降序排序,则设置为 true。
GroupingField
  groupingFunction : Function
确定此组的标签的函数。
GroupingField
  groupingObjectFunction : Function
在每个组节点上运行以确定分组对象的回调函数。
GroupingField
  name : String
要排序的字段的名称。
GroupingField
  numeric : Boolean
指定当要进行排序的字段包含数值 (Number/int/uint) 或数值的 String 表示形式时,比较运算符是否使用数值比较。
GroupingField
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  summaries : Array
用于定义组级别摘要的 SummaryRow 实例的数组。
GroupingField
公共方法
 方法定义方
  
GroupingField(name:String = null, caseInsensitive:Boolean = false, descending:Boolean = false, numeric:Boolean = false)
构造函数。
GroupingField
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
属性详细信息
caseInsensitive属性
caseInsensitive:Boolean  [读写]

如果此字段的排序不区分大小写,则设置为 true

默认值为 false.



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

用于在对关联集合的项目进行排序时比较两个项目的函数。如果指定了 Grouping 对象中的 compareFunction 属性,则 Flex 会忽略 GroupingField 对象的所有 compareFunction 属性。

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

function myCompare(a:Object, b:Object):int

此函数必须返回以下值:

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



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

如果此字段的排序应为降序排序,则设置为 true

默认值为 false.



实现
    public function get descending():Boolean
    public function set descending(value:Boolean):void
groupingFunction属性 
public var groupingFunction:Function

确定此组的标签的函数。默认情况下,组显示数据中字段的文本,该文本与 name 属性指定的字段匹配。但是,有时您希望基于数据中的多个字段对项目进行分组,或基于不是简单 String 字段的内容进行分组。在这种情况下,可使用 groupingFunction 属性指定回调函数。

回调函数可能会将数字格式的月转换为字符串格式的月,或基于某些条件而不是字段的实际值将多个项目分为一个组。

对于 GroupField,方法签名具有以下格式:

groupingFunction(item:Object, field:GroupField):String

其中 item 包含数据项目对象,field 包含 GroupField 对象。

例如,返回第一个字符作为组名的 groupingFunction 可以写作 -
private function groupFunc(item:Object, field:GroupingField):String
      {
          return item[field.name].toString().substr(0, 1);
      }

groupingObjectFunction属性 
public var groupingObjectFunction:Function

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

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

方法签名为:

myGroupObjectFunction(label:String):Object

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

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

name属性 
name:String  [读写]

要排序的字段的名称。

默认值为 null.



实现
    public function get name():String
    public function set name(value:String):void
numeric属性 
numeric:Boolean  [读写]

指定当要进行排序的字段包含数值 (Number/int/uint) 或数值的 String 表示形式时,比较运算符是否使用数值比较。如果此属性为 false,将使用 String 比较对具有数字 String 表示形式的字段排序,因此 100 应在 99 之前,因为字符串值“1”比字符串值“9”小。

默认值为 false.



实现
    public function get numeric():Boolean
    public function set numeric(value:Boolean):void
summaries属性 
public var summaries:Array

用于定义组级别摘要的 SummaryRow 实例的数组。指定一个或多个 SummaryRow 实例以定义数据摘要,如以下示例所示:

<mx:AdvancedDataGrid id="myADG" 
         width="100%" height="100%" 
         initialize="gc.refresh();">        
         <mx:dataProvider>
             <mx:GroupingCollection id="gc" source="{dpFlat}">
                 <mx:Grouping>
                     <mx:GroupingField name="Region">
                       <mx:summaries>
                           <mx:SummaryRow summaryPlacement="group">
                             <mx:fields>
                                 <mx:SummaryField dataField="Actual" 
                                     label="Min Actual" operation="MIN"/>
                                 <mx:SummaryField dataField="Actual" 
                                     label="Max Actual" operation="MAX"/>
                             </mx:fields>
                           </mx:SummaryRow>
                         </mx:summaries>
                     </mx:GroupingField>
                 </mx:Grouping>
             </mx:GroupingCollection>
         </mx:dataProvider>        
         
         <mx:columns>
             <mx:AdvancedDataGridColumn dataField="Region"/>
             <mx:AdvancedDataGridColumn dataField="Territory_Rep"
                 headerText="Territory Rep"/>
             <mx:AdvancedDataGridColumn dataField="Actual"/>
             <mx:AdvancedDataGridColumn dataField="Estimate"/>
             <mx:AdvancedDataGridColumn dataField="Min Actual"/>
             <mx:AdvancedDataGridColumn dataField="Max Actual"/>
         </mx:columns>
      </mx:AdvancedDataGrid>

另请参见

构造函数详细信息
GroupingField()构造函数
public function GroupingField(name:String = null, caseInsensitive:Boolean = false, descending:Boolean = false, numeric:Boolean = false)

构造函数。

参数
name:String (default = null) — 此字段用来进行比较的属性的名称。如果该对象为简单类型,则传递 null
 
caseInsensitive:Boolean (default = false) — 在对字符串进行排序时,指示比较运算符是否忽略值的大小写。
 
descending:Boolean (default = false) — 指示比较运算符是否按降序排列项目。
 
numeric:Boolean (default = false) — 指示比较运算符是否按编号而不按字母顺序比较排序项目。