| 包 | mx.collections |
| 类 | public class Grouping |
| 继承 | Grouping Object |
要使用分组数据填充 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 语法
隐藏 MXML 语法<mx.Grouping> tag defines the following tag attributes:
<mx:Grouping
Properties
compareFunction="No default"
fields="null"
groupingObjectFunction="No default"
label="GroupLabel"
/>
默认 MXML 属性fields
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
| compareFunction : Function 用于在排序时比较项目的方法。 | Grouping | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| fields : Array 指定用于对数据进行分组的字段的 GroupingField 对象 Array。 | Grouping | ||
| groupingObjectFunction : Function 在每个组节点上运行以确定分组对象的回调函数。 | Grouping | ||
| label : String = "GroupLabel" 添加到平面数据以创建层次结构的字段的名称。 | Grouping | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| 方法 | 定义方 | ||
|---|---|---|---|
Grouping() 构造函数。 | Grouping | ||
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
![]() |
返回指定对象的原始值。 | Object | |
| compareFunction | 属性 |
compareFunction:Function [读写]
用于在排序时比较项目的方法。如果指定了此属性,Flex 会忽略在此类中使用的 SortField 对象中指定的所有 compareFunction 属性。
该比较函数必须具有以下签名:
function [name](a:Object, b:Object, fields:Array=null):int
此函数必须返回以下值:
a 应显示在 b 之前。
a 等于 b .
a 应显示在 b 之后。
要返回内部比较函数,请将此值设置为 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()构造函数。