Есть ли способ, которым я мог бы сортировать элементы в сетке данных по алфавиту в flex - PullRequest
0 голосов
/ 14 ноября 2010

Я хочу отсортировать элементы в таблице данных в алфавитном порядке по имени. Порядок должен быть следующим:

1) Имя должно сначала проверять наличие имени в верхнем регистре, если это не так, тогда оно должно искать строчные буквы длята же буква в алфавитном порядке.

Например: если у меня есть массив элементов, скажем, {Apple, мальчик, муравей, летучая мышь), то после сортировки список будет

Apple, муравей, летучая мышь

Ответы [ 2 ]

1 голос
/ 14 ноября 2010

Используйте класс коллекции (ArrayCollection или XMLListCollection), затем сортируйте его.Больше документов:

http://livedocs.adobe.com/flex/3/html/about_dataproviders_4.html#441147

http://blog.flexexamples.com/2007/08/05/sorting-an-arraycollection-using-the-sortfield-and-sort-classes/

0 голосов
/ 08 декабря 2010
<mx:DataGrid id="planGrid" width="100%" height="100%" sortableColumns="true" resizableColumns="true" dragMoveEnabled="false" dragEnabled="false" draggableColumns="false" dataProvider="{contrList.dataProvider}"click="{displayPropertiesForPlan(event);}">
    <mx:columns>
        <mx:DataGridColumn sortCompareFunction="compareTypes" headerText="{msg('planner.editplan.name')}" wordWrap="true" itemRenderer="net.velti.mgage.mkt.views.campaignplans.planlist.NameItemRenderer" />
        <mx:DataGridColumn width="200" headerText="{msg('planner.plans.grid.head.Status')}" itemRenderer="net.velti.mgage.mkt.views.campaignplans.planlist.StatusItemRenderer"/>
        <mx:DataGridColumn id="dateColumn" width="250" headerText="{msg('planner.plans.grid.head.created')}" labelFunction="dateFunc" />
        <mx:DataGridColumn sortCompareFunction="sortBudget" id="budgetColumn" width="120" headerText="{msg('planner.plans.grid.head.BudgetWithSign')}" labelFunction="budgetFunc" />
    </mx:columns>
</mx:DataGrid>

Моя функция сравнения сортировки:

private function compareTypes(typeOne:Object, typeTwo:Object):int
{
    var nameA:String = typeOne.name;
    var nameB:String = typeTwo.name;
    return ObjectUtil.stringCompare(nameA,nameB);
}

Не сортируется в алфавитном порядке.

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