treeDatastore

eine Sammlung von treeDatastore-Methoden

object treeDatastore;
Details

Hinweis, Aufgaben (Tasks) und Verknüpfungen (Links) sollten über die Standard-API von Gantt aktualisiert werden. Das direkte Ändern von Aufgaben oder Verknüpfungen innerhalb des Datastores kann zu unerwartetem Verhalten führen. Datastores sind hauptsächlich für Ressourcen oder andere benutzerdefinierte Objekte vorgesehen.

Sie können einen neuen Datastore mit der Methode createDatastore erstellen.

TreeDatastore erbt von Datastore und umfasst alle dessen Methoden. Die erweiterte API des treeDatastore-Objekts bietet folgende Methoden und Events:

Methoden

  • move (sid, tindex, parent): boolean | void - verschiebt ein Element an eine neue Position oder zu einem neuen Elternteil
    • sid - (string | number) - die ID des zu verschiebenden Elements
    • tindex - (number) - der Zielindex innerhalb des Zweigs, an dem das Element eingefügt wird
    • parent? - (string | number) - die ID des neuen Elternteils. Falls angegeben, ist tindex relativ zu diesem Elternzweig
    Gibt false zurück, wenn die Verschiebung durch onBeforeItemMove abgebrochen wird, sonst undefined.
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.move(6, -1, 2);// verschiebt 'John' von 'QA' zu 'Development'


    Das Gegenstück zu treeDatastore.move() ist gantt.moveTask().
    Diese Methode löst die Events onBeforeItemMove, onAfterItemMove sowie alle Events im Zusammenhang mit der refresh-Methode aus.
  • getBranchIndex (id): number - ermittelt den Index eines Elements innerhalb seines Zweigs
    • id - (string | number) - die ID des Elements
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.getBranchIndex(8);
    // -> 1


    Das Gegenstück zu treeDatastore.getBranchIndex() ist gantt.getTaskIndex()
  • hasChild (id): number | void - überprüft, ob das angegebene Element Kind-Elemente hat
    • id - (string | number) - die ID des Elements
    Gibt die Anzahl der Kind-Elemente zurück, falls vorhanden, oder undefined, wenn keine vorhanden sind.
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.hasChild(1);
    // -> true
     
    store.hasChild(9);
    // -> false


    Das Gegenstück zu treeDatastore.hasChild() ist gantt.hasChild().
  • getChildren (id): Array<number | string | object> - holt die direkten Kind-Elemente eines gegebenen Elternzweigs
    • id - (string | number) - die ID des Elternzweigs
    Gibt ein Array mit den IDs der Kind-Elemente zurück.
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.getChildren(3);
    // -> [9, 10]
     
    store.getChildren(9);
    // -> [0]


    Das Gegenstück zu treeDatastore.getChildren() ist gantt.getChildren().
  • isChildOf (childId, parentId): boolean - prüft, ob ein Element ein Kind eines anderen Elements ist
    • childId - (string | number) - die ID des potenziellen Kind-Elements
    • parentId - (string | number) - die ID des potenziellen Eltern-Elements
    Gibt true zurück, wenn das Element ein Kind des angegebenen Elternteils ist, sonst false.
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.isChildOf(9, 3);
    // -> true
     
    store.getChildren(9, 2);
    // -> false


    Das Gegenstück zu treeDatastore.isChildOf() ist gantt.isChildOf().
  • getSiblings (id): Array<number | string | object> - holt die Geschwister des angegebenen Elements, einschließlich des Elements selbst
    • id - (string | number) - die ID des Elements
    Gibt ein Array mit den IDs der Geschwister-Elemente zurück.
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.getSiblings(1);
    // -> [1,2,3,4]
     
    store.getSiblings(6);
    // -> [6]


    Das Gegenstück zu treeDatastore.getSiblings() ist gantt.getSiblings().
  • getNextSibling (id): number | string | null - gibt die ID des nächsten Geschwisters auf derselben Ebene zurück
    • id - (string | number) - die ID des aktuellen Elements
    Gibt die ID des nächsten Geschwisters zurück oder null, wenn kein weiteres Geschwister existiert.
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.getNextSibling(9);
    // -> 10
     
    store.getNextSibling(10);
    // -> null


    Das Gegenstück zu treeDatastore.getNextSibling() ist gantt.getNextSibling().
  • getPrevSibling (id): number | string | null - gibt die ID des vorherigen Geschwisters auf derselben Ebene zurück
    • id - (string | number) - die ID des aktuellen Elements
    Gibt die ID des vorherigen Geschwisters zurück oder null, wenn kein weiteres Geschwister existiert.
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.getPrevSibling(9);
    // -> null
     
    store.getPrevSibling(10);
    // -> 9


    Das Gegenstück zu treeDatastore.getPrevSibling() ist gantt.getPrevSibling().
  • getParent (id): number| string - gibt die ID des Elternelements zurück oder 0, falls keines existiert
    • id - (string | number) - die ID des Elements
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.getParent(9);
    // -> 3
     
    store.getParent(1);
    // -> 0


    Das Gegenstück zu treeDatastore.getParent() ist gantt.getParent().
  • calculateItemLevel (item): number - bestimmt die Verschachtelungsebene eines Elements
    • item - (object) - das Element-Objekt
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.calculateItemLevel(store.getItem(9));
    // -> 1
     
    store.calculateItemLevel(store.getItem(1));
    // -> 0


    Das Gegenstück zu treeDatastore.calculateItemLevel() ist gantt.calculateTaskLevel().
  • setParent (item, newParentId): void - weist einem Element einen neuen Elternteil zu, indem die Eigenschaft aktualisiert wird, die in der `parentProperty`-Konfiguration definiert ist (Standard ist "item.parent").
    • item - (object) - das Element-Objekt
    • newParentId - (string | number | null) - die ID des neuen Elternteils

    Um ein Element korrekt zu einem anderen Elternteil zu verschieben, verwenden Sie treeDatastore.move(). Die Methode setParent() aktualisiert nur die Eigenschaft des Elements und beeinflusst nicht die interne Baumstruktur.

    gantt.createDatastore({
        name: gantt.config.resource_store,
        type: "treeDatastore",
        parentProperty: "parent", //
        initItem: function (item) {
            item.parent = item.parent || gantt.config.root_id;
            item[gantt.config.resource_property] = item.parent;
            item.open = true;
            return item;
        }
    });
     
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.setParent(store.getItem(9), 4);
    // -> 3


    Das Gegenstück zu treeDatastore.setParent() ist gantt.setParent().
  • eachItem (callback, parentId): void - durchläuft alle Kind-Elemente eines gegebenen Elements
    • callback - (Function) - die Funktion, die für jedes Element ausgeführt wird
    • parentId? - (string | number) - die Eltern-ID, ab der gestartet wird
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.eachItem(function(item){
        console.log(item.text);
    });


    Das Gegenstück zu treeDatastore.eachItem() ist gantt.eachTask().
  • eachParent (callback, startItem): void - iteriert über alle Elternelemente eines gegebenen Elements
    • callback - (Function) - die Funktion, die für jeden Elternteil ausgeführt wird
    • startItem - (string | number) - die ID des Elements, dessen Eltern iteriert werden
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.eachParent(function(item){
        console.log(item.text);
    }, 10);
    // -> "Sales"


    Das Gegenstück zu treeDatastore.eachParent() ist gantt.eachParent().
  • open (id): void - erweitert den Zweig mit der angegebenen ID
    • id - (string | number) - die ID des Zweigs
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.open(1);


    Das Gegenstück zu treeDatastore.open() ist gantt.open(). Dies löst das Event onItemOpen aus.
  • close (id): void - klappt den Zweig mit der angegebenen ID zusammen
    • id - (string | number) - die ID des Zweigs
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    store.close(1);


    Das Gegenstück zu treeDatastore.close() ist gantt.close(). Dies löst das Event onItemClose aus.
  • sort (field, desc, parent, silent): void - sortiert Elemente im Ressourcen-Grid
    • field - (string | Function) - der Spaltenname, nach dem sortiert werden soll, oder eine benutzerdefinierte Sortierfunktion
    • desc? - (boolean) - Sortierreihenfolge: true für absteigend, false für aufsteigend (Standard ist false)
    • parent? - (string | number) - die ID des Elternteils, um die Sortierung auf einen bestimmten Zweig zu beschränken
    • silent? - (boolean) - ob das Rendering nach der Sortierung übersprungen werden soll
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.parse([
        {id: 1, text: "QA", parent:null},
        {id: 2, text: "Development", parent:null},
        {id: 3, text: "Sales", parent:null},
        {id: 4, text: "Other", parent:null},
        {id: 5, text: "Unassigned", parent:4},
        {id: 6, text: "John", parent:1},
        {id: 7, text: "Mike", parent:2},
        {id: 8, text: "Anna", parent:2},
        {id: 9, text: "Bill", parent:3},
        {id: 10, text: "Floe", parent:3}
    ]);
     
    // Sortierrichtung umschalten und Ressourcen nach der Spalte sortieren
    var resourceSortDirection = false;
    function sortResources(){
        resourceSortDirection = !resourceSortDirection;
        gantt.getDatastore("resource").sort("text", resourceSortDirection)
        gantt.render();
    }

    Related sample:  Gantt. Sortieren von Ressourcen nach Spalte

    Alternativ können Sie eine benutzerdefinierte Sortierfunktion verwenden:
    var resourceSortDirection = false;
    function sortResources(){
        resourceSortDirection = !resourceSortDirection;
        gantt.getDatastore("resource").sort(function (resource1, resource2){
            return resource1.id - resource2.id;
        }, resourceSortDirection)
        gantt.render();
    }

    Related sample:  Gantt. Sortieren von Ressourcen mit benutzerdefinierter Funktion

    Das Gegenstück zu treeDatastore.sort() ist gantt.sort().

Events

  • onBeforeItemMove (id, parent, tindex) - wird ausgelöst, bevor ein Element an eine neue Position verschoben wird
    • id - (string | number) - die ID des zu verschiebenden Elements
    • parent - (string | number) - die neue Eltern-ID
    • tindex - (number) - der Zielindex innerhalb des Elternzweigs
    Gibt false zurück, um die Verschiebung zu verhindern, andernfalls true.
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.attachEvent("onBeforeItemMove", function(id, parent, tindex){
        // Ihr Code hier
        return true;
    });


    Das Gegenstück zum onBeforeItemMove-Event von treeDatastore ist das onBeforeTaskMove-Event von Gantt.
  • onAfterItemMove (id, parent, tindex) - wird ausgelöst, nachdem ein Element verschoben wurde
    • id - (string | number) - die ID des verschobenen Elements
    • parent - (string | number) - die neue Eltern-ID
    • tindex - (number) - der neue Index innerhalb des Elternzweigs
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.attachEvent("onAfterItemMove", function(id, parent, tindex){
        // Ihr Code hier
    });


    Das Gegenstück zum onAfterItemMove-Event von treeDatastore ist das onAfterTaskMove-Event von Gantt.
  • onItemOpen (id) - wird ausgelöst, wenn ein Zweig erweitert wird
    • id - (string | number) - die ID des Zweigs
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.attachEvent("onItemOpen", function(id){
        // Ihr Code hier
    });


    Das Gegenstück zum onItemOpen-Event von treeDatastore ist das onTaskOpened-Event von Gantt.
  • onItemClose (id) - wird ausgelöst, wenn ein Zweig eingeklappt wird
    • id - (string | number) - die ID des Zweigs
    var store = gantt.getDatastore(gantt.config.resource_store);
    store.attachEvent("onItemClose", function(id){
        // Ihr Code hier
    });


    Das Gegenstück zum onItemClose-Event von treeDatastore ist das onTaskClosed-Event von Gantt.
See also
Zurück nach oben