-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Summary 💡
Follow up to #206
Currently, when Row Grouping or Tree Data is used, the row reordering feature is disabled. This was intentionally made so in order to ship the feature quicker. Also, at the time, there were a few unanswered questions regarding how the reordering will work when you try to move a child row out of the parent as well as moving a parent to become a child of another parent.
This issue is to track the demand for a feature like that and ultimately start working on the implementation.
Last but not least, it has to be decided if a feature add-on like this should be part of the Pro or the Premium plan
Advanced Drag and Drop Behaviors
"Row Reordering" doesn't properly include all the behaviors expected from dragging and dropping rows. It is one of the possible outcomes of dragging a row to drop it into a different position.
When a row is dragged to a different position, users expect:
Plain data
- Change a row's displayed order.
The internal order of the rows is updated, with the possibility to make the order persistent through the callbackonRowOrderChange
- [data grid] Reorder multiple row at the same time by dragging #4380
Support multiple rows reordering via row selection
Tree data
-
[data grid] Change a row's hierarchy in Tree Data by dragging a leaf to a different parent node #7774
ThetreeDataPath
value needs to be updated; followinggetTreeDataPath
, we need asetTreeDataPath
that receives the row and the new path array, based on where the row was dropped.
Because getTreeDataPath is optional, and by default, we use thepath
field, we may additionally need an optional callbackonTreeDataPathUpdate
. -
[data grid] Tree data: Change a row's displayed order inside its parent group. #8352
The internal order of the rows in a given group is updated, with the possibility to make the order persistent through the callbackonRowOrderChange
. In this case,oldIndex
andtargetIndex
are based only on the indexes inside the given group.
Both behaviors in Tree Data should work combined or independently
Row Grouping
-
[data grid] Change a row's group in Row Grouping with drag and drop #7775
The field value referenced by the grouped column needs to be updated; The new value is based on the sibling's rows where the row was dropped. We may needonRowGroupChange
to pass this new value and the row that is getting updated. -
[data grid] Row grouping: Change a row's displayed order inside its parent group. #8353
The internal order of the rows in a given group is updated, with the possibility to make the order persistent through the callbackonRowOrderChange
. In this case,oldIndex
andtargetIndex
are based only on the indexes inside the given group. -
[data grid] Grouping using drag and drop #5235
Group rows on the fly by dragging rows into others -
[data grid] Add row reordering support for server side grouped data #18947
Add row reordering to the server-side row grouping
Both behaviors of Row Grouping should work combined or independently