Flex: вопрос о sortCompareFunction функции DataGridColumn - PullRequest
2 голосов
/ 10 августа 2010

Можно ли в любом случае использовать одну и ту же функцию sortCompareFunction для нескольких столбцов вместо добавления функции для каждого столбца, поскольку у меня есть таблица данных с 50 столбцами, в которой dataField из 40 столбцов не является строкой или числом, это массив, поэтомусортировка столбца по умолчанию не будет работать.И согласно справке Adobe, два параметра sortCompareFunction являются целыми элементами поставщика данных, а не только данными для элемента, поэтому это означает, что мне нужно определить 40 функций сортировки, по одной для каждого столбца.Есть ли другое решение?

Заранее спасибо.

1 Ответ

5 голосов
/ 10 августа 2010

Вы можете указать функцию сортировки следующим образом:

<mx:DataGridColumn dataField="someFieldName"
    sortCompareFunction="{function(ob1:Object, obj2:Object):int{return mySortFunc(obj1, obj2, 'someFieldName');}}"/>

где mySortFunc реализован так:

private function mySortFunc(obj1:Object, obj2:Object, fieldName:String):int{
    if (obj1.hasOwnProperty(fieldName) && obj2.hasOwnProperty(fieldName)){
        //comparison logic ex.
        return obj1[fieldName]>obj2[fieldName]?1:(obj1[fieldName]<obj2[fieldName]?-1:0);
    }
}

Таким образом, вы можете иметь одну функцию для всех ваших потребностей сортировки:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...