Похоже, что вы хотите использовать несколько SortField
. Первая сортировка по первым Поле в по возрастанию заказ. Если они такие же, то сортировать по второму Поле в по убыванию заказать. Если вы используете compareFunction
, это становится приоритетом. В вашем случае не используйте compareFunction
, поскольку вы используете по убыванию как true
для SortField
x. Ниже приведен пример:
<?xml version="1.0"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script><![CDATA[
import mx.collections.ArrayCollection;
import spark.collections.Sort;
import spark.collections.SortField;
private var arrayCollection:ArrayCollection = new ArrayCollection([
{x:3, Name:"Claudia Toledo"},
{x:5, Name:"Adam Lee"},
{x:7, Name:"Adam Lee"},
{x:2, Name:"Bryan Hobb"},
{x:7, Name:"Matt Brill"},
{x:4, Name:"Bikram Dangol"},
{x:4, Name:"Adam Lee"},
{x:9, Name:"Bikram Dangol"},
{x:8, Name:"Justin Hinz"},
{x:2, Name:"Bikram Dangol"}
]);
private function onSortButtonClick():void
{
var dataSortField1:SortField = new SortField("Name", false, false);
var dataSortField2:SortField = new SortField("x", true, true);
arrayCollection.sort = new Sort();
arrayCollection.sort.fields = [dataSortField1,dataSortField2];
arrayCollection.refresh();
}
]]>
</fx:Script>
<s:VGroup verticalCenter="0" horizontalCenter="0">
<s:Button label="Sort Ascending Name and Descending x" click="{onSortButtonClick()}"/>
<s:Panel title="Multiple Field Sort" width="100%" backgroundColor="green">
<s:DataGrid dataProvider="{arrayCollection}" sortableColumns="false" width="100%"/>
</s:Panel>
</s:VGroup>
</s:Application>
Что вы имеете в виду под "не [работа]"? Происходит ли ошибка времени выполнения/компиляции или вы получаете неожиданный результат? Предоставленная вами информация позволяет нам угадать, что может решить вашу проблему. –
Я имею в виду, что сортировка не выполняется на свойстве x. –