Zum Hauptinhalt springen

Mehrfachauswahl

Ab Version 3.2 bietet die Bibliothek die Erweiterung multiselect, die es Ihnen ermöglicht, mehrere Aufgaben gleichzeitig auszuwählen.

multiselection

Aktivierung der Mehrfachauswahl

Um die Mehrfachauswahl für Aufgaben zu aktivieren, aktivieren Sie sie über die gantt.plugins Methode:

<!DOCTYPE html>
<html>
<head>
<script src="codebase/dhtmlxgantt.js"></script>
<link href="codebase/dhtmlxgantt.css" rel="stylesheet">
</head>
<body>
gantt.plugins({ /*!*/
multiselect: true /*!*/
}); /*!*/
//your code will be here
</body>
</html>

Multiselection and Indent/Outdent tasks

Sobald die Erweiterung aktiviert ist, wird die Mehrfachauswahl automatisch aktiviert.

Um die Erweiterung zu deaktivieren, verwenden Sie die multiselect Option: Deaktivierung der Mehrfachauswahl

gantt.config.multiselect = false; 

Einmalige Aktualisierung mehrerer Aufgaben

Um mehrere Aufgaben/Verknüpfungen gleichzeitig zu aktualisieren, verwenden Sie die batchUpdate Methode:

gantt.batchUpdate(function () {
var tasks = gantt.getTaskByTime();
for(var i = 0; i < tasks.length; i++){
var task = tasks[i];
task.start_date = gantt.date.add(task.start_date, 1, "day");
task.end_date = gantt.calculateEndDate(task.start_date, task.duration);
gantt.updateTask(task.id);
}
});

Die Methode ermöglicht das gleichzeitige Aktualisieren mehrerer Aufgaben/Verknüpfungen auf einmal mit nur einem Neuzeichnen statt mehrerer Updates mit mehreren Neuzeichnungen.

Multiselection and Indent/Outdent tasks

Iterator

Um alle ausgewählten Aufgaben im Gantt-Diagramm zu iterieren, verwenden Sie die eachSelectedTask Methode:

gantt.batchUpdate(function () {
gantt.eachSelectedTask(function(task_id){
if(gantt.isTaskExists(task_id))
gantt.deleteTask(task_id);
});
});

Multiselection and Indent/Outdent tasks

Simultane Ein-/Ausrückung

Die Mehrfachauswahl ermöglicht es Ihnen, gleichzeitig verschiedene Operationen auf mehrere Aufgaben anzuwenden. Beispielsweise können Sie eine Einrückung/Ausrückung hinzufügen und damit Aufgaben in Unteraufgaben verwandeln bzw. umgekehrt.

Multiselection and Indent/Outdent tasks

Überprüfen, ob eine Aufgabe ausgewählt ist

Um zu prüfen, ob eine Aufgabe derzeit ausgewählt ist, verwenden Sie die isSelectedTask Methode:

gantt.templates.task_class = 
gantt.templates.grid_row_class =
gantt.templates.task_row_class = function (start, end, task) {
if (gantt.isSelectedTask(task.id))
return "gantt_selected";
};

Multiselection and Indent/Outdent tasks

Um zwischen ausgewählten und nicht ausgewählten Zuständen umzuschalten, verwenden Sie die toggleTaskSelection Methode:

gantt.toggleTaskSelection("t_1"); //"t_1" is the task's id
gantt.render();

Alle ausgewählten Aufgaben erhalten

Um alle aktuell ausgewählten Aufgaben abzurufen, verwenden Sie die getSelectedTasks Methode:

gantt.getSelectedTasks();

Um die zuletzt ausgewählte Aufgabe abzurufen, verwenden Sie die getLastSelectedTask Methode:

gantt.getLastSelectedTask();

Einschränkung der Mehrfachauswahl auf eine Ebene

Um das Auswählen von Aufgaben aus unterschiedlichen Ebenen zu verweigern, verwenden Sie die Option multiselect_one_level:

gantt.config.multiselect_one_level = true; 
gantt.init('gantt_here');

Mehrfachauswahl und Drag-and-Drop

Wenn die multiselect.js Erweiterung aktiviert ist, können Sie mehrere Aufgaben auswählen, indem Sie entweder die Ctrl- oder die Umschalttaste gedrückt halten und die ausgewählten Aufgaben horizontal gleichzeitig ziehen.

Um diese Funktionalität zu deaktivieren, setzen Sie die drag_multiple Methode auf false:

gantt.config.drag_multiple = true; 

Multiselection and Indent/Outdent tasks

Editor mit einem Klick öffnen

Im Einzel-Auswahlmodus öffnet Gantt den Inline-Editor, nachdem Sie auf eine Aufgabe geklickt haben.

Im Mehrfachauswahl-Modus wird nach dem ersten Klick auf eine unmarkierte Aufgabe diese ausgewählt und der Inline-Editor wird erst nach dem zweiten Klick geöffnet. Wenn Sie möchten, dass Gantt den Inline-Editor nach dem ersten Klick öffnet, aktivieren Sie die inline_editors_multiselect_open Konfiguration.

gantt.plugins({
multiselect: true
});

...

gantt.config.inline_editors_multiselect_open = true;

API-Ereignisse

Wenn die Mehrfachauswahl aktiviert ist, löst das Auswählen einer Aufgabe oder eines Bereichs von Aufgaben sowohl die allgemeinen [onTaskSelected] / [onTaskUnselected] Ereignisse aus, als auch Ereignisse, die speziell für die Multiselect-Erweiterung gelten.

Mehrfachauswahl folgt dem folgenden Ereignisfluss:

  • [onBeforeMultiSelect] - löst vor dem Auswählen einer Aufgabe oder eines Bereichs von Aufgaben aus, blockierbar
  • [onBeforeTaskMultiSelect] - löst aus, bevor sich der Auswahlszustand der Aufgabe ändert (die Aufgabe wird ausgewählt oder abgewählt), blockierbar
  • [onTaskMultiSelect] - löst aus, nachdem der Auswahlszustand der Aufgabe geändert wurde (die Aufgabe wurde ausgewählt/abgewählt)
  • [onTaskUnselected] - wird für jede Aufgabe des Multiselection-Bereichs aufgerufen
  • [onTaskSelected] - wird für jede Aufgabe des Multiselection-Bereichs aufgerufen
  • [onMultiSelect] - löst nach Abschluss der Auswahl einer Aufgabe oder eines Bereichs von Aufgaben aus
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.