Sortieren von Spalten

dhtmlxGantt bietet die Möglichkeit, Daten innerhalb der Gitterspalten direkt auf der Client-Seite zu sortieren.
Es gibt zwei Möglichkeiten, das Sortieren im Gitter zu aktivieren:

  1. Einmaliges Klicken auf den Spaltenkopf, der das Attribut sort aktiviert hat;
  2. Verwendung des API-Aufrufs der Methode sort, der durch ein Ereignis oder eine Aktion ausgelöst werden kann, wie z.B. das Drücken eines Buttons oder beim Laden der Seite.

Beachten Sie, dass Gantt Aufgaben nur auf Basis der tatsächlichen Datenwerte sortiert und keine Werte sortiert, die durch das template-Attribut einer Spalte erzeugt werden.

Sortieren durch Klicken auf den Spaltenkopf

Wenn ein Spaltenkopf angeklickt wird, zeigt das Gantt-Diagramm einen visuellen Indikator an, der hervorhebt, welche Spalte aktuell sortiert ist und in welcher Sortierreihenfolge (aufsteigend oder absteigend). Jeder weitere Klick auf denselben Spaltenkopf wechselt die Sortierrichtung.

Um das Sortieren im Gantt-Diagramm zu aktivieren, setzen Sie die Eigenschaft sort auf true:

gantt.config.sort = true; 
gantt.init("gantt_here");

Related sample:  Built-in sorting

Sortieren per Programmierung

Um das Gitter basierend auf einem bestimmten Ereignis oder einer Aktion zu sortieren (z.B. beim Klicken eines Buttons oder beim Laden der Seite), verwenden Sie die Methode sort.

Sortieren per Button-Klick

<input type='button' value='Nach Aufgabenname sortieren' onclick='gantt.sort("text", true);'>
 
<script type="text/javascript" charset="utf-8">
    gantt.init("gantt_here"); 
    gantt.parse(tasks);
</script>

Related sample:  Using sorting methods

Eigene Sortierfunktionen

Eigene Sortierfunktionen können angewendet werden, indem Sie den Namen Ihrer Funktion als ersten (und einzigen) Parameter an die Methode sort übergeben.

Diese Funktion wird für jedes Paar benachbarter Werte aufgerufen und sollte 1, -1 oder 0 zurückgeben:

  • 1 – Das erste Objekt im Paar soll vor dem zweiten erscheinen;
  • -1 – Das zweite Objekt soll vor dem ersten erscheinen;
  • 0 – Die Reihenfolge dieser Objekte bleibt gleich.

Verwendung einer eigenen Funktion zum Sortieren eines Gantt-Diagramms

<input type='button' value='Nach Anzahl der Inhaber sortieren' 
       onclick='sortByHolders(direction)'>
 
<script type="text/javascript" charset="utf-8">
    var direction = false;
 
    function sortByHolders(direction1){
        direction = !direction;
        gantt.sort(sortHolders);
    };
    function sortHolders(a,b){
         a = a.users.length;
         b = b.users.length;
 
         if (direction){
            return a>b?1:(a<b?-1:0);
         } else {
            return a>b?-1:(a<b?1:0);
         }
    };
</script>

Related sample:  Custom sorting function

Sortieren pro Spalte im Gitter

Es ist möglich, für jede Spalte individuelle Sortierregeln festzulegen. Hier sind drei gängige Methoden, das Sortieren pro Spalte zu steuern:

1) Sortieren für eine Spalte deaktivieren, indem sort auf false gesetzt wird

gantt.config.columns[1].sort = false;

2) Eine Spalte mit einer eigenen Funktion sortieren, indem sort auf diese Funktion gesetzt wird

gantt.config.columns[1].sort = function(a,b){
    return custom_function(a,b);
};

Diese eigene Funktion erhält zwei Aufgabenobjekte (a und b) und gibt 1, -1 oder 0 zurück:

  • 1 – Das erste Objekt soll vor dem zweiten erscheinen;
  • -1 – Das zweite Objekt soll vor dem ersten erscheinen;
  • 0 – Die Reihenfolge bleibt unverändert.

3) Eine Spalte basierend auf den Werten eines anderen Aufgabenfeldes sortieren, indem sort auf den Namen dieses Feldes gesetzt wird

gantt.config.columns[1].sort = 'other_field';
Zurück nach oben