Flex AdavcedDatagrid Сортировка чувствительна к регистру - PullRequest
0 голосов
/ 27 июля 2010

У меня есть несколько таблиц данных со сменой столбцов.Для текстовых полей функция сортировки данных должна быть чувствительна к регистру сравнения.

например.следующий отсортированный список выглядел бы так:

apples
strawberries
Autos

Автомобили должны быть с яблоками, но поскольку заглавная буква A учитывается по-разному, все заглавные буквы следуют после.при установке флага CASEINSENSITIVE, но я не могу понять, где это сделать.Не могли бы вы помочь?Лучшим решением было бы то, где я могу переопределить поведение по умолчанию, чтобы не учитывать регистр для всех моих данных и всех моих функций сравнения.

Ответы [ 3 ]

1 голос
/ 19 января 2011

Установите sortCompareFunction в столбце вашей таблицы данных:

<mx:DataGridColumn dataField="name" headerText="Name" sortCompareFunction = sortCaseInsensitive  />

private function sortCaseInsensitive(obj1:Object, obj2:Object):int
    {
        return ObjectUtil.stringCompare(obj1.name, obj2.name, true);
    }
0 голосов
/ 27 июля 2010

Используйте функцию sortCompareFunction

0 голосов
/ 27 июля 2010

Сортировка применяется к базовому провайдеру данных.Поэтому вам нужно изменить, как работает эта сортировка, установив поля сортировки .Вам нужно захватить событие сортировки из заголовка, предотвратить его поведение по умолчанию и отсортировать коллекцию массивов на лету.

protected function onHeaderRelease( event : AdvancedDataGridEvent ) : void {
    event.preventDefault();
    var sort : Sort = new Sort();
    sort.fields = [new SortField(event.dataField, true)];
    dataProvider.sort = sort;
    dataProvider.refresh();
}

Обратите внимание, что это остановит рендеринг стрелок в заголовке.Вам также нужно будет добавить код для изменения сортировки при повторном нажатии на заголовок.

Уберите сообщение, ADG действительно мусор.

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