Wichtig
Detail
Wichtig
Detail
Tabellen bieten Unterstützung für das Drag-and-Drop von Zeilen an.
Mit Hilfe von Ticket #26620 wird durch das Ziehen einer selektierten Zeile automatisch die ganze Selektion gezogen. Auf dem Client wird bei der Bearbeitung des dragstart Events für das Tabellen-Control, im Falle des Ziehens einer selektierten Zeile, die ganze Selektion ausgehend von dem DOM-Knoten des Controls berechnet.
Eine Zeile ist selektiert, falls der entsprechende DOM-Knoten mit der Klasse tblSelected annotiert ist.
Tabellen werden mit Hilfe mehrerer HTML-Tabellen dargestellt. Jeweils eine für den Header, den Body (der alle Zeilen anzeigt) und den Footer. Ein Sonderfall sind Frozen-Tables. Sie sind in einen festen und einen flexiblen Teil unterteilt. Es gibt jeweils eine HTML-Tabelle (insgesamt 5) für den fixen und flexiblen Header, den fixen und flexiblen Body und den Footer.
Wird nun ausgehend vom DOM-Knoten des Controls nach Knoten mit der CSS-Klasse tblSelected gesucht, dann werden alle selektierten Zeilen im Falle einer Frozen-Table (mit fix und flex Bereich) doppelt gefunden, da sie sowohl im fixen wie auch im flexiblen Body Teil gefunden werden.
Das führt dazu, dass alle selektierten Zeilen doppelt in der gezogenen Menge bzw. in dem Vorschaubild der Drag-and-Drop Operation enthalten sind.
Umsetzung
Die Suche nach allen selektierten Zeilen einer Tabelle beschränkt sich nur auf die erste gefundene "Body" HTML-Tabelle.
Test
- Navigiere zu Technisches Demo > Komponenten > Tabellen und Bäume > Grid.
- Konfiguriere eine Drag-Operation bspw. mit true. Dann kann jedes Objekt gezogen werden.
- Zeige in der Tabelle einen fixen und flexiblen Teil an.
- Selektiere eine Zeile.
- Ziehe die selektierte Zeile. Das Vorschaubild darf keine doppelten Einträge besitzen.