dataprocessor
Description
Eine Sammlung von dataprocessor-Methoden
Example
Details
Sie können eine neue DataProcessor-Instanz mit der Methode createDataProcessor erstellen. Es gibt auch eine ältere Möglichkeit, eine Instanz über den Konstruktor dataProcessor zu erzeugen.
Das dataprocessor-Objekt beinhaltet die folgenden Methoden und Events:
Methoden
- attachEvent (name, handler, settings): string - fügt einen Handler zu einem DataProcessor API Event hinzu
- name - (string) - der Event-Name, case-insensitive
- handler - (Function) - die Funktion, die das Event behandelt
- settings? - (object) - optional, Einstellungsobjekt für den Event-Handler
const dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
});
dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
console.log("Updated task:", id);
});
detachEvent (id): void - entfernt einen zuvor angehängten Event-Handler anhand seiner ID
- id - (string) - die ID des Event-Handlers
const dp = gantt.createDataProcessor({
url: "/api",
mode: "REST",
});
const handlerId = dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
console.log("Updated task:", id);
});
// entfernt den Event-Listener
dp.detachEvent(handlerId);
getState (id): string - gibt den Status eines bestimmten Elements zurück (ob es aktualisiert wurde oder nicht)
- id - (string | number) - die ID des Elements
const status = dp.getState(id);
ignore (code): void - führt einen Codeblock aus, ohne DataProcessor-Aktionen auszulösen
- code - (Function) - die Funktion zur Datenänderung
dp.ignore(() => {
// Änderungen hier werden nicht gespeichert
gantt.addTask({
id: 10,
text: "Task #5",
start_date: "03-02-2025",
duration: 5
});
});
Dies ist nützlich, um Daten hinzuzufügen oder zu entfernen, wenn Sie vermeiden möchten, dass diese Änderungen zum Server gesendet werden.
Die Methode dp.ignore() verhält sich ähnlich wie gantt.silent().setTransactionMode (mode, total): void - legt fest, wie Daten an den Server gesendet werden
- mode - (string) - die Versandmethode, Optionen sind "GET", "POST", "REST", "JSON" oder "REST-JSON"
- total - (boolean) - bestimmt, ob alle Daten auf einmal oder jeder Datensatz einzeln gesendet wird
- mode - (string) - Datenversandmodus, z.B. "GET", "POST", "REST", "JSON" oder "REST-JSON"
- headers - (object) - Schlüssel-Wert-Paare von Headern, die in die Anfrage aufgenommen werden
- payload - (object) - zusätzliche Schl üssel-Wert-Paare, die zusammen mit den Headern gesendet werden
dp.setTransactionMode("POST", true);
Wenn Sie benutzerdefinierte HTTP-Header oder zusätzliche Daten mit den Anfragen senden möchten, können Sie als ersten Parameter ein Objekt mit folgenden Eigenschaften übergeben:
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 oder nicht
- rowId - (string | number) - die ID des Elements
- mode? - (boolean) - optional,
true(Standard) zum Markieren als aktualisiert,falsezum Markieren als nicht aktualisiert - state? - (string) - optional, der Name des Update-Status, Standard ist
"updated"
dp.setUpdated(1);
dp.setUpdated(2, true, "deleted");
Events
onAfterUpdate (id, action, tid, response): void - wird ausgelöst, nachdem die Serverantwort empfangen und verarbeitet wurde
- id - (string | number) - die ID des aktualisierten Elements
- action - (string) - der Status der Antwort (Art der Operation)
- tid - (string) - die neue ID (nur für Insert-Operationen)
- response - (mixed) - die geparste Antwort, entweder als XML-Knoten oder JSON-Objekt
dp.attachEvent("onAfterUpdate", (id, action, tid, response) => {
if (action === "error") {
alert(`Serverfehler: ${response.message}`);
}
});
updatedinserteddeletedinvaliderror
Dies sind die möglichen Antwort-Status:
onBeforeDataSending (id, state, data): void - wird unmittelbar vor dem Senden der Daten an den Server ausgelöst
- id - (string | number) - die ID des Elements
- state - (string) - der aktuelle Status des Elements (Operationstyp)
- data - (object) - die serialisierten Daten, die gesendet werden
dp.attachEvent("onBeforeDataSending", (id, state, data) => {
// Eigene Logik vor dem Senden der Daten
return true;
});
updatedinserteddeletedinvaliderror
Dieses Event wird für jede Datenaktualisierungsanfrage ausgelöst (nach onBeforeUpdate).
Wenn der Handler false zurückgibt, werden die Daten nicht an den Server gesendet.
Mögliche Antwort-Status:
onBeforeUpdate (id, state, data): void - wird ausgelöst, bevor ein Datensatz (oder mehrere) aktualisiert wird/werden
- id - (string | number) - die ID des Elements
- state - (string) - der Status des Elements (Operationstyp)
- data - (object) - die Daten, die an den Server gesendet werden
dp.attachEvent("onBeforeUpdate", (id, state, data) => {
// Eigene Logik vor der Aktualisierung
return true;
});
updatedinserteddeletedinvaliderror
Dieses Event wird für jeden zu aktualisierenden Datensatz ausgelöst und vor onBeforeDataSending.
Wenn hier false zurückgegeben wird, wird das Senden der Daten abgebrochen.
Mögliche Antwort-Status:
onRowMark (id, state, mode, invalid): void - wird ausgelöst, bevor ein aktualisiertes Element markiert wird
- id - (string | number) - die ID des Elements, auf das sich der Fehler bezieht
- state - (string) - der Status des Elements (Operationstyp)
- mode - (boolean) -
true, um eine Markierung hinzuzufügen,false, um sie zu entfernen - invalid - (object) - Fehlerdetails, falls vorhanden
dp.attachEvent("onRowMark", (id, state, mode, invalid) => {
// Eigene Logik vor dem Markieren eines Elements
return true;
});
Dieses Event kann blockiert werden. Wenn false zurückgegeben wird, wird das Element nicht markiert.