2010-02-01 6 views
0

J'essaie de trier ArrayCollection avec les dates suivantes, et obtenir des résultats inattendus.Flex Advance datagrid date colonne problème de tri

14-Apr-1980 
01-Feb-1975 
30-Dec-1977 
27-Oct-1968 

J'utilise le code suivant pour trier,

private function sortDate(obj1:Object, obj2:Object):int 
{ 
    var d1:Number = (new Date(Date.parse(obj1.date))).getTime(); 
    var d2:Number = (new Date(Date.parse(obj2.date))).getTime(); 
    if(d1 < d2) 
    { 
     return -1; 
    } 
    else if(d1 == d2) 
    { 
     return 0; 
    } 
    return 1; 
} 

Et il est appelé comme,

<mx:AdvancedDataGridColumn dataField="dob" 
headerText="Date of birth:" 
sortCompareFunction="sortDate" 
dataTipFunction="dateFormat" /> 
</mx:columns> 

Les résultats sont à venir comme,

27-Oct-1968 
01-Feb-1975 
14-Apr-1980 
30-Dec-1977 

Que suis-je disparu ?

(Note: mon format de date dans AdvancedDataGrid est DD-MMM-YYYY)

Répondre

0

Modifier le séparateur de date de trait d'union (-) à une barre oblique (/) ou un space. Et assurez-vous que la propriété sortableColumns de AdvancedDataGrid est true

De la page livedocs pour Date.parse() méthode.

Le mois et l'année termes jour peuvent être séparés par une barre oblique (/) ou par des espaces, mais jamais par un tiret (-).

+0

Merci, mais malheureusement, cela ne fonctionne pas aussi bien. Pour ref voici quelques gros morceau, fonction Format, private function formatDate (item: Object): String { dateFormatter.format retour (item.dob) } Le code de fonction de tri est toujours le même que celui que j'ai mentionné dans mon dernier message. – Rishi

+0

afficher le fournisseur de données - avez-vous changé les traits d'union en barres obliques? – Amarghosh

Questions connexes