2010-12-27 7 views
0

Ich habe einen Kalender eingerichtet und beim Anzeigen der Monatsansicht möchte ich die Ereignisse anzeigen, die mit ihrer ID erstellt wurden und nicht die Zeit, zu der sie gestartet werden sollen.Anzeigen von Ereignissen in FullCalendar sortiert nach Ereignis-ID anstelle von Startzeitstempel

Ist das möglich? Und wenn ja, wie würde ich den Code so ändern, dass die Ereignisse auf diese Weise angezeigt werden?

+1

wir brauchen etwas Code ... Tabellenstruktur zum Beispiel; -) ... Beispieldaten. – thedom

Antwort

0

Fügen Sie ORDER BY id ASC zu Ihrer Abfrage hinzu.

+0

Danke, ich werde es versuchen. – Galalad

+0

Dies funktioniert nicht, da fullcalender plugin nach der _id standardmäßig sortiert, egal in welcher Reihenfolge Ihre "Abfrage-Ausgabe" angeordnet ist – Miguel

0

Lange Zeit im Fall (wie ich):

Änderung in fullcalendar.js

function segCmp(a, b) { 
    return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start); 
} 

zu

function segCmp(a, b) { 
    var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start); 
    if (tryCmp == 0) 
     return (a.event.id - b.event.id); 
    return tryCmp; 
} 

es funktionierte für mich

1

Große Lösung! Ich habe es benutzt und für meine Bedürfnisse angepasst. Ich verwende JSON-Feeds.

Wichtig: Die erste Bedingung besteht darin, sicherzustellen, dass alle Ereignisse nach Startdatum sortiert sind.

Dann, wenn Sie nach Titel sortiert werden sollen:

function segCmp(a, b) { 
    var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start); 
    if (tryCmp == 0) { 
      return (a.event.title.toLowerCase() >= b.event.title.toLowerCase()) ? 1: 0; 
    } 
    return tryCmp; 
} 

Ich habe es auch eine andere Art und Weise. Ich habe jedem Ereignis des JSON-Feeds 'colOrder' ein benutzerdefiniertes Attribut hinzugefügt (es könnte alles sein) und gab ihm ganzzahlige Werte (1,2,3 ...). 1 ist für das erste Ereignis, das ich sehen möchte, 2 für das zweite ...

Dann habe ich die Funktion angepasst, um das colOrder-Attribut zu verwenden, um die Ereignisse zu sortieren.

function segCmp(a, b) { 
    var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start); 
    if (tryCmp == 0) { 
    if (!isNaN(a.event.colOrder) && !isNaN(b.event.colOrder)) 
      return (a.event.colOrder - b.event.colOrder); 
    } 
    return tryCmp; 
}