Zum Hauptinhalt springen

dataprocessor

Description

Eine Sammlung von dataprocessor-Methoden

Details

Eine neue Instanz von DataProcessor kann mithilfe der Methode createDataProcessor erstellt werden. Alternativ bietet der dataProcessor Konstruktor einen legacy Weg, eine DataProcessor-Instanz zu erstellen. Das dataprocessor-Objekt besitzt die folgenden Methoden und Ereignisse:

Methoden

Methods

  • attachEvent (name, handler, settings): string - hängt den Handler an ein API-Ereignis von DataProcessor an

    • name - (string) - der Name des Ereignisses, Groß-/Kleinschreibung wird ignoriert
    • handler - (Function) - die Handler-Funktion
    • settings? - (object) - Optional, ein Objekt mit Einstellungen für den Ereignis-Handler

    const dp = gantt.createDataProcessor({
    url: "/api",
    mode: "REST",
    });

    dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
    console.log("Updated task:", id);
    });
  • detachEvent (id): void - trennt einen zuvor von der Methode attachEvent() angehängten Handler von einem Ereignis

    • id - (string) - die ID des Ereignisses
    const dp = gantt.createDataProcessor({
    url: "/api",
    mode: "REST",
    });

    const handlerId = dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
    console.log("Updated task:", id);
    });

    // detach a listener
    dp.detachEvent(handlerId);
  • getState (id): string - gibt den Zustand eines Elements zurück (aktualisiert oder nicht)

    • id - (string | number) - die ID eines Elements
    const status = dp.getState(id);
  • ignore (code): void - führt einen Block aus, ohne DataProcessor auszulösen

    • code - (Function) - Code zur Änderung von Daten
    dp.ignore(() => {
    // wird nicht gespeichert
    gantt.addTask({
    id: 10,
    text: "Task #5",
    start_date: "03-02-2025",
    duration: 5
    });
    });

    Hier können Sie Operationen zum Hinzufügen und Löschen von Daten platzieren, wenn Sie diese Änderungen nicht auf dem Server speichern möchten.

    Die dp.ignore()-Methode funktioniert ähnlich wie gantt.silent().
  • setTransactionMode (mode, total): void - konfiguriert den Datensende-Modus

    • mode - (string) - der Datensende-Modus, "GET"|"POST"|"REST"|"JSON"|"REST-JSON"
    • total - (boolean) - definiert, ob alle Daten auf einmal gesendet werden oder jeder Datensatz durch eine separate Anfrage
    dp.setTransactionMode("POST", true);

    Um benutzerdefinierte HTTP-Anforderungsheader oder zusätzliche Daten an den Server zu senden, geben Sie den ersten Parameter als Objekt mit den folgenden Eigenschaften an:

    • mode - (string) - Datensende-Modus, "GET", "POST", "REST", "JSON", "REST-JSON"
    • headers - (object) - eine Menge von Headern, definiert als Paare "key":"value", die mit einer Anfrage gesendet werden sollen
    • payload - (object) - zusätzliche Daten, festgelegt als Paare "key":"value", die zusammen mit den Headers an den Server gesendet werden sollen
    dp.setTransactionMode({
    mode: "POST",
    headers: {
    "Content-Type": "application/x-www-form-urlencoded",
    "Accept-Language": "fr-FR"
    },
    payload: {
    "user_id": "12"
    }
    }, true);
  • setUpdated (rowId, [mode, state]): void - markiert ein Element als aktualisiert

    • rowId - (string | number) - die ID eines Elements, für das der Aktualisierungsstatus festgelegt wird
    • mode? - (boolean) - Optional, true (Standard) für "aktualisiert", false für "nicht aktualisiert"
    • state? - (string) - Optional, der Name des Aktualisierungsmodus, standardmäßig "updated"
    dp.setUpdated(1);
    dp.setUpdated(2, true, "deleted");
  • getSyncState (): boolean - gibt den Zustand von DataProcessor zurück (true, wenn alle Daten gespeichert sind)

    const state = dp.getSyncState();

    Wenn einige Datensätze noch nicht gespeichert wurden oder eine "error"-Antwort erhalten haben, gibt die Methode false zurück.

  • sendData ([id]): void - sendet alle Daten, die noch nicht auf der Serverseite gespeichert sind

    • id - (string | number) - optional, die ID eines Elements
    dp.sendData();

    Falls eine ID angegeben wird, wird nur ein Element an die Serverseite gesendet.

    Beim Aufruf ohne Parameter sendet die Methode alle Elemente, die noch nicht gespeichert wurden.

Events

  • onAfterUpdate (id, action, tid, response): void - löst sich aus, nachdem die serverseitige Antwort empfangen und verarbeitet wurde

    • id - (string | number) - die ID des aktualisierten Elements
    • action - (string) - der Status der Antwort (Operationstyp)
    • tid - (string) - die neue ID (gilt nur für Insert-Operationen)
    • response - (mixed) - der geparste XML-Knoten oder das JSON-Objekt der Antwort
    dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
    if (action === "error") {
    alert(`Server error: ${response.message}`);
    }
    });

    Possible response statuses:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onBeforeDataSending (id, state, data): void - löst sich aus, bevor Daten an einen Server gesendet werden

    • id - (string | number) - die ID des Elements
    • state - (string) - der Zustand des Elements (Operationstyp)
    • data - (object) - die serialisierten Daten, die an den Server gesendet werden
    dp.attachEvent("onBeforeDataSending", (id, state, data) => {
    // Benutzerdefinierte Logik vor dem Senden der Daten
    return true;
    });

    Das Ereignis wird für jede Datenaktualisierungsanforderung ausgelöst (nach onBeforeUpdate).

    Durch Zurückgeben von false aus dem Ereignis-Handler wird verhindert, dass Daten an den Server gesendet werden.

    Mögliche Antwort-Statuses:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onBeforeUpdate (id, state, data): void - löst sich vor dem Aktualisieren eines Datensatzes (oder mehrerer Datensätze) aus

    • id - (string | number) - die ID des Elements
    • state - (string) - der Zustand des Elements (Operationstyp)
    • data - (object) - die an den Server gesendeten Daten
    dp.attachEvent("onBeforeUpdate", (id, state, data) => {
    // Benutzerdefinierte Logik vor dem Aktualisieren
    return true;
    });

    Das Ereignis wird für jedes zu aktualisierende Datensatz ausgelöst und vor onBeforeDataSending.

    Durch Zurückgeben von false aus dem Ereignis-Handler wird verhindert, dass Daten an den Server gesendet werden.

    Possible response statuses:

    • updated
    • inserted
    • deleted
    • invalid
    • error
  • onRowMark (id, state, mode, invalid): void - löst sich vor jedem Versuch aus, das aktualisierte Element zu markieren

    • id - (string | number) - die ID des Elements, für das der Fehler auftritt
    • state - (string) - der Zustand des Elements (Operationstyp)
    • mode - (boolean) - true zum Hinzufügen einer Aktualisierungs-Markierung, false zum Entfernen
    • invalid - (object) - Details zu Fehlern, falls vorhanden
    dp.attachEvent("onRowMark", (id, state, mode, invalid) => {
    // Benutzerdefinierte Logik vor dem Markieren eines Elements
    return true;
    });

    Das Ereignis ist blockierbar. Wenn false zurückgegeben wird, wird das Element nicht markiert.

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.