flex - knppaginatorbundle - pagerfanta
ordenar ArrayCollection por fecha y hora-Flex (2)
Tengo un ArrayCollection que me gustaría ordenar por fecha y hora (en caso de que haya dos elementos con la misma fecha). Lo tengo ordenando por fecha bien (YYYY / MM / DD) pero no puedo entender el bit de tiempo, el tiempo está en formato de 24 horas, por lo que el código sería básicamente el mismo que para la fecha.
Este es el código que utilicé para la clasificación de fechas, funciona bien.
import mx.collections.SortField;
import mx.collections.Sort;
private function sort():void
{
var dataSortField:SortField = new SortField();
dataSortField.name = "date";
var arrayDataSort:Sort = new Sort();
arrayDataSort.fields = [dataSortField];
reminderXMLArray.sort = arrayDataSort;
reminderXMLArray.refresh();
}
Puede usar este código para ordenar por fecha y hora:
private function sort():void
{
var dataSortField:SortField = new SortField();
dataSortField.name = "date";
dataSortField.compareFunction = function (a:Object, b:Object) : int {
var na:Number = a.date.getTime();
var nb:Number = b.date.getTime();
if (na < nb)
return -1;
if (na > nb)
return 1;
return 0;
};
var arrayDataSort:Sort = new Sort();
arrayDataSort.fields = [dataSortField];
reminderXMLArray.sort = arrayDataSort;
reminderXMLArray.refresh();
}
Como hay dos campos separados que desea ordenar, puede usar los campos del objeto Sort para agregar dos campos de clasificación:
var sort:Sort = new Sort();
var fields:Array = [ new SortField("date"), new SortField("time") ];
sort.fields = sort;