Major
Detail
Major
Detail
Tables offer support for dragging and dropping rows.
With the help of ticket #26620, dragging a selected row automatically drags the entire selection. On the client, when processing the dragstart event for the table control, in case of dragging a selected row, the whole selection is calculated starting from the DOM node of the control.
A row is selected if the corresponding DOM node is annotated with the class tblSelected.
Tables are displayed using several HTML tables. One each for the header, the body (which displays all rows) and the footer. Frozen tables are a special case. They are divided into a fixed and a flexible part. There is one HTML table each (5 in total) for the fixed and flexible header, the fixed and flexible body and the footer.
If you now search for nodes with the CSS class tblSelected starting from the DOM node of the control, then all selected rows will be found twice in the case of a frozen table (with fixed and flex area), because they are found in both the fixed and the flexible body part.
This results in all selected rows being contained twice in the dragged set or in the preview image of the drag-and-drop operation.
Conversion
The search for all selected rows of a table is limited to the first found "body" HTML table only.
Test
- Navigate to Technical Demo > Components > Tables and Trees > Grid.
- Configure a drag operation e.g. with true. Then any object can be dragged.
- Show a fixed and flexible part in the table.
- Select a row.
- Drag the selected row. The preview image must not have duplicate entries.