#actionscript-3 #apache-flex #datagrid #flex3
#actionscript-3 #apache-flex #datagrid #flex3
Вопрос:
У меня есть столбец DataGridColumn в flex с двумя именами: TYPE и NAME
Теперь, когда я сортирую datagridcolumn, TYPE, он сортирует тип с помощью sortcomparefunction и выдает результат, который содержит сгруппированный и отсортированный порядок элементов. например. если я сортирую по типу, я получаю элементы в формате pdf, doc, ppt в сгруппированном порядке, но они внутренне не отсортированы, например: дляв части pdf у меня есть такие элементы, как: ИМЯ ТИПА pdf A1.pdf pdf X2.pdf pdf B1.pdf
здесь сортируются типы файлов, но для определенного типа файлов элементы не сортируются, обратите внимание, что после X2 появляется B1, который должен быть отсортирован
Есть ли способ отсортировать второй столбец datagridcolumn после сортировки первого в соответствии с расширениями типов файлов?
Я использую функцию sortcomparefunction для сортировки элементов по типу, которая отлично работает. подпись:
частная функция сортирует столбец типа (itemA:Object, itemB:Object): int
Ответ №1:
Может быть, что-то вроде:
protected function sortTheTypeColumn(x:Object, y:Object):int
{
var xType:String = String(x["TYPE"]).toLocaleLowerCase();
var yType:String = String(y["TYPE"]).toLocaleLowerCase();
var result:int = sortInternalCompare(xType, yType);
if (result == 0)
{
var aName:String = String(x["NAME"]).toLocaleLowerCase();
var bName:String = String(y["NAME"]).toLocaleLowerCase();
result = sortInternalCompare(aName, bName);
}
return resu<
}
protected function sortInternalCompare(x:String, y:String):int
{
if (x == null amp;amp; y == null)
return 0;
if (x == null)
return 1;
if (y == null)
return -1;
var result:int = x.localeCompare(y);
if (result < -1)
result = -1;
if (result > 1)
result = 1;
return resu<
}
Комментарии:
1. @Jason.. Большое вам спасибо за ваше руководство.