<s:Sort>
tag has the following attributes:
<s:Sort Properties compareFunction="Internal compare function" fields="null" unique="false | true" />
In case items have inconsistent data types or items have complex data types, use of default built-in compare functions is not desired. Inconsistent sort result may occur in such cases. To avoid such problem, provide custom compare function and/or make item types consistent.
]]>Обычно сортировка определяется для коллекций составных элементов, т.е. для коллекций, в которых сортировка выполняется для одного или более свойств объектов коллекции. В следующем примере показано использование этого свойства:
var col:ICollectionView = new ArrayCollection(); // In the real world, the collection would have more than one item. col.addItem({first:"Anders", last:"Dickerson"}); // Create the Sort instance. var sort:ISort = new Sort(); // Set the sort field; sort on the last name first, first name second. var sortfieldLastName:ISortField = new SortField("last",true); var sortfieldFirstName:ISortField = new SortField("first",true); // Set the locale style to "en-US" to cause the strings // to be ordered according to the rules for English as used in the USA. sortfieldLastName.setStyle("locale","en-US"); sortfieldFirstName.setStyle("locale","en-US"); sort.fields = [sortfieldLastName, sortfieldFirstName]; // Assign the Sort object to the view. col.sort = sort; // Apply the sort to the collection. col.refresh();
Возможны ситуации, в которых коллекция содержит простые элементы, подобные
import mx.collections.ArrayCollection; import spark.collections.Sort; import spark.collections.SortField; var col:ICollectionView = new ArrayCollection(); col.addItem("California"); col.addItem("Arizona"); var sort:Sort = new Sort(); // There is only one sort field, so use a null // first parameter. var sortfield:SortField = new SortField("null",true); // Set the locale style to "en-US" to set the language for the sort. sortfield.setStyle("locale","en-US"); sort.fields = [sortfield]; col.sort = sort; col.refresh();
В реализациях Flex интерфейса
Сравнение по умолчанию, выполняемое с помощью класса
<fx:Declarations> <s:SortField id="sf" /> </fx:Declarations>
<fx:Declarations> <s:SortField id="sf_SimplifiedChinese" locale="zh-Hans-CN" /> </fx:Declarations>
Создает новую сортировку без установленных полей и пользовательского устройства сравнения.
<s:SpinnerList> <s:dataProvider> <s:NumericDataProvider minimum="0" maximum="23" stepSize="1"/> </s:dataProvider> </s:SpinnerList>
Преимущество этого класса состоит в том, что значения элементов вычисляются по требованию без необходимости сохранять их заранее.
Например, если
<s:SortField>
tag has the following attributes:
<s:SortField Properties compareFunction="Internal compare function" descending="false" name="null" numeric="null" />]]>
Возможны ситуации, в которых коллекция содержит простые элементы, подобныеvar col:ICollectionView = new ArrayCollection(); col.addItem({first:"Anders", last:"Dickerson"}); var sort:Sort = new Sort(); var sortfield:SortField = new SortField("first", true); sortfield.setStyle("locale", "en-US"); sort.fields = [sortfield]; col.sort = sort;
var col:ICollectionView = new ArrayCollection(); col.addItem("California"); col.addItem("Arizona"); var sort:Sort = new Sort(); var sortfield:SortField = new SortField(null, true); sortfield.setStyle("locale", "en-US"); sort.fields = [sortfield]; col.sort = sort;
Сравнение по умолчанию, выполняемое с помощью класса
<fx:Declarations> <s:SortField id="sf" /> </fx:Declarations>
<fx:Declarations> <s:SortField id="sf_SimplifiedChinese" locale="zh-Hans-CN" /> </fx:Declarations>
Функция сравнения должна иметь следующую подпись:
Эта функция должна возвращать следующие значения:
Значение по умолчанию представляет собой внутреннюю функцию сравнения, которая может выполнять сравнение строк, чисел или дат в восходящем или нисходящем порядке. Для сравнения строк используется специальный метод сравнения локали (язык, регион и сценарий) в классе