2013-06-07 11 views
6

In meiner Anwendung verwende ich die List.js zum Sortieren Zweck. Alle "String" -Werte funktionieren einwandfrei. Aber ich habe das "Änderungsdatum" in der Spalte.List.js - Nach Datum Sortierproblem

Wenn ich auf "geändert von Datum" - zu sortieren, dies ist nur die Berücksichtigung der Datumswerte, was ist der Text, zB: 1/4/11 .. und Sortierung entsprechend. Wegen dieser Vorgehensweise bekomme ich falsche Sortierreihenfolgen.

Wie kann ich stattdessen nach dem realen Wert der Zahl sortieren, was die Daten sind?

Hier ist mein Code:

new List('mfi-col2', { 
     valueNames: ['companyLegalName', 'phazeName', 'contactName', 'number', 'enrollId', 'accountType'] 
         }); 

Statt "number" ist es möglich, $(".number").data-number zu schicken? Also lass es den Zeitstempel benutzen, den ich vom Server bekomme?

Oder kann jemand eine Alternative für dieses Plugin vorschlagen?

+1

Sind Sie sicher, dass Sie diese Bibliothek verwenden möchten? Es hat 25 offene Probleme, ist in der Beta und hatte seinen letzten Commit vor 9 Monaten (mit Ausnahme dieser zwei Pull-Anfragen). – Stijn

+0

Just konfrontiert dasselbe Problem. Irgendeine Lösung gefunden? Die Person, die diese Bibliothek erstellt hat, ist wieder aktiv. Er hat vor ein paar Tagen die Site-Oberfläche geändert. Aber nicht sicher, wie man ihn kontaktiert. – MJoraid

Antwort

6

Ich weiß, das ist eine alte Frage, aber diese Antwort könnte Neuankömmlingen helfen.

Mitarbeiterin Ihr Datumsfeld mit Zeitstempel und dann vergleichen/Art Zeitstempel. Es liegt an Ihnen, aber ein Vorschlag wäre, es als zweites verstecktes Feld in derselben Ebene hinzuzufügen, wo Sie jedes Ihrer Daten anzeigen, dann, wenn Sie sortieren, wird das ganze div/tr bewirkt.

Hier ist ein Beispiel dafür, was ich verwendet:

Meine Liste ist als Tabelle zu arbeiten, und hier die <td> ist der Behälter, c_start das aktuelle Datum ist angezeigt wird, zeige ich es als i wollen (TT/MM/JJJJ, TT-MM-JJ) weil es nur ein Display ist. Wie für die Sortierung verwende ich c_start_ts und habe es versteckt. in c_start_ts Ich gebe den Zeitstempel Wert, es ist eine perfekte Sorte. Selbst wenn Sie später Filter anwenden möchten, ist es einfacher, Zeitstempel zu verarbeiten, da es in einen echten int konvertiert werden kann.

<td class="xlarge-head "> 
    <span class="c_start">PUT FORMATTED DATE HERE</span> 
    <span class="c_start_ts hide">PUT TIME STAMP HERE</span> 
</td> 

Beispiel

<td class="xlarge-head "> 
    <span class="c_start">01/01/2015</span> 
    <span class="c_start_ts hide">1420070400</span> 
</td> 

Und dann gehe ich c_start_ts den list.js die td in der Tabelle zu sortieren, werden sortiert bekommen.

Erst vor kurzem begonnen, sich an list.js zu gewöhnen, hat es Potenzial, aber rate später wird in eine andere lib verschieben.Hoffe, dass ich geholfen :)

+0

FYI, hatte ich es auf diese Weise zu tun, für die es mit divs zu arbeiten:

1444262400 Oct. 8, 2015
Dann ging ich ‚datevar‘ als einer der valueNames im JS-Code. – Eric

+0

Froh, dass meine Antwort geholfen hat, in Ihrer Methode scheint es, dass Sie sowohl das angezeigte (formatierte) Datum als auch den Zeitstempel auf derselben Ebene innerhalb desselben Elternteils platziert haben. – MJoraid

+0

Ja, das stimmt. – Eric

7

Sie ein daten Attribut verwenden könnte, auch:

js

valueNames: ['date', { name: 'timestamp', attr: 'data-timestamp' } 

html

<td class="date timestamp" data-timestamp="1427713871">30/03/2015</td> 

Jetzt sind Sie in der Lage Sortierung über Zeitstempel ohne ein zweites oder verstecktes Feld.

+0

Gute Lösung. Mir war nicht bewusst, dass list.js Datenattribute akzeptieren kann. – MJoraid