包 | mx.collections |
类 | public class SortField |
继承 | SortField EventDispatcher Object |
实现 | ISortField |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
从 Flex 4.5 开始,Adobe 建议您使用 spark.collections.SortField 类来替代此类。 |
提供对集合视图中的字段或属性建立排序所需的排序信息。SortField 类打算与 Sort 类一起使用。通常,这种排序是针对包含复杂项目的集合定义的,复杂项目是指那些要在其中对这些对象的属性执行排序的项目。如下例所示:
var col:ICollectionView = new ArrayCollection();
col.addItem({first:"Anders", last:"Dickerson"});
var sort:Sort = new Sort();
sort.fields = [new SortField("first", true)];
col.sort = sort;
也有集合中包含简单项目(如 String
、Date
和 Boolean
等)的情形。在这种情况下,应直接对简单类型应用排序。在这种情况下构造排序时,只需要一个排序字段,且不应指定 name
。例如:
var col:ICollectionView = new ArrayCollection();
col.addItem("California");
col.addItem("Arizona");
var sort:Sort = new Sort();
sort.fields = [new SortField(null, true)];
col.sort = sort;
默认情况下,SortField 类提供的比较不提供正确的特定于语言的字符串排序。对于这种类型的排序,请参阅 spark.collections.Sort
和 spark.collections.SortField
类。
The <mx:SortField>
tag has the following attributes:
<mx:SortField Properties caseInsensitive="false" compareFunction="Internal compare function" descending="false" name="null" numeric="null" />
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
arraySortOnOptions : int [只读]
此帮助器属性由 findItem() 和 sort() 方法内部使用。 | SortField | ||
caseInsensitive : Boolean
指定此字段的排序是否应不区分大小写。 | SortField | ||
compareFunction : Function
用于在对关联集合的项目进行排序时比较两个项目的函数。 | SortField | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
descending : Boolean
指定此字段是否应按降序排序。 | SortField | ||
name : String
要排序的字段的名称。 | SortField | ||
numeric : Object
指定当要进行排序的字段包含数值 (number/int/uint) 或数值的字符串表示形式时,比较运算符是否使用数值比较。 | SortField | ||
usingCustomCompareFunction : Boolean [只读]
如果此 ISortField 使用自定义比较运算符函数,则为 true。 | SortField |
方法 | 由以下参数定义 | ||
---|---|---|---|
SortField(name:String = null, caseInsensitive:Boolean = false, descending:Boolean = false, numeric:Object = null)
构造函数。 | SortField | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
将事件调度到事件流中。 | EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
设置默认比较函数以执行比较时,Sort 类将根据以下三项内容之一来调用帮助器函数:是否已设置自定义比较函数、指定字段的数据类型或 numeric 属性的值。 | SortField | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
反转此排序字段的条件。 | SortField | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
arraySortOnOptions | 属性 |
caseInsensitive | 属性 |
compareFunction | 属性 |
compareFunction:Function
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
用于在对关联集合的项目进行排序时比较两个项目的函数。如果指定了 ISort 对象中的 compareFunction
属性,则 Flex 会忽略 ISort 的 SortField 对象的所有 compareFunction
属性。
该比较函数必须具有以下签名:
function myCompare(a:Object, b:Object):int
此函数必须返回以下值:
- -1,如果在已排序序列中
a
应显示在b
之前 - 0,如果
a
等于b
- 1,如果在已排序序列中
a
应显示在b
之后
默认值为具有以下特征的内部比较函数:可以通过区分大小写或不区分大小写的字符串比较按升序或降序执行字符串、数字或日期比较。仅在需要自定义比较算法时指定您自己的函数。这种情况通常仅当在显示中使用计算的字段时出现。
注意,如有需要,请按照特定语言进行排序,然后考虑使用spark.collections.SortField
类。
实现
public function get compareFunction():Function
public function set compareFunction(value:Function):void
相关 API 元素
descending | 属性 |
name | 属性 |
numeric | 属性 |
numeric:Object
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定当要进行排序的字段包含数值 (number/int/uint
) 或数值的字符串表示形式时,比较运算符是否使用数值比较。
未提供自定义比较函数的情况下,SortField
类会使用该属性。
如果该属性为 true
,则会使用内置数值比较函数。比较前每个数据项调度给 Number()
函数。
如果该属性为 false
,则会使用内置字符串比较函数。比较前每个数据项调度给 String()
函数。
如果此属性为 null
,则内部检查第一个数据项以查看它是否为数字或字符串,并基于内部检查结果继续进行排序。
默认值为 null。
此属性可用作数据绑定的源。修改此属性后,将调度 numericChanged
事件。
实现
public function get numeric():Object
public function set numeric(value:Object):void
usingCustomCompareFunction | 属性 |
SortField | () | 构造函数 |
public function SortField(name:String = null, caseInsensitive:Boolean = false, descending:Boolean = false, numeric:Object = null)
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
构造函数。
参数name:String (default = null ) — 此字段用来进行比较的属性的名称。如果该对象为简单类型,则传递 null 。
| |
caseInsensitive:Boolean (default = false ) — 在对字符串进行排序时,指示比较运算符是否忽略值的大小写。
| |
descending:Boolean (default = false ) — 指示比较运算符是否按降序排列项目。
| |
numeric:Object (default = null ) — 指示比较运算符是否按编号而不按字母顺序比较排序项目。
|
initializeDefaultCompareFunction | () | 方法 |
public function initializeDefaultCompareFunction(obj:Object):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
设置默认比较函数以执行比较时,Sort
类将根据以下三项内容之一来调用帮助器函数:是否已设置自定义比较函数、指定字段的数据类型或 numeric 属性的值。如果 numeric
属性为 true,将在排序时执行数字比较。
参数
obj:Object — 包含数据的对象。如果已通过 name 属性设置了字段名称,则将使用该名称访问此对象的数据值。否则,将使用对象本身作为数据值。
|
reverse | () | 方法 |
public function reverse():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
反转此排序字段的条件。例如,如果该字段原来按降序排序,则现在按升序排序。
注意:修改 ISortFields
时不会自动更新 ICollectionView
;而调用 refresh()
方法可更新此视图。
Tue Jun 12 2018, 11:04 AM Z