包 | mx.collections |
类 | public class Grouping |
继承 | Grouping Object |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
要使用分组数据填充 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
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
compareFunction : Function
用于在排序时比较项目的方法。 | Grouping | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
fields : Array
指定用于对数据进行分组的字段的 GroupingField 对象 Array。 | Grouping | ||
groupingObjectFunction : Function
在每个组节点上运行以确定分组对象的回调函数。 | Grouping | ||
label : String = "GroupLabel"
添加到平面数据以创建层次结构的字段的名称。 | Grouping |
方法 | 由以下参数定义 | ||
---|---|---|---|
Grouping()
构造函数。 | Grouping | ||
表示对象是否已经定义了指定的属性。 | Object | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object |
compareFunction | 属性 |
compareFunction:Function
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
用于在排序时比较项目的方法。如果指定了此属性,Flex 会忽略在此类中使用的 SortField 对象中指定的所有 compareFunction
属性。
该比较函数必须具有以下签名:
function [name](a:Object, b:Object, fields:Array=null):int
此函数必须返回以下值:
- -1,如果在已排序序列中
a
应显示在b
之前。 - 0,如果
a
等于b
。 - 1,如果在已排序序列中
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 | 属性 |
groupingObjectFunction | 属性 |
public var groupingObjectFunction:Function
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
在每个组节点上运行以确定分组对象的回调函数。默认情况下,将为组节点创建新 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"
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
添加到平面数据以创建层次结构的字段的名称。每个组中顶部节点(表示组字段的节点)的值由此属性提供。使用此属性指定一个不同的名称。
默认值为 GroupLabel。
Grouping | () | 构造函数 |
public function Grouping()
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
构造函数。
Tue Jun 12 2018, 11:04 AM Z