Undo a Change
- Press Ctrl+Z (or Cmd+Z on macOS) to undo the most recent change
- The grid reverts to its previous state and scrolls automatically to show the affected row
- Repeat to undo additional changes, up to the last 50 actions
Redo a Change
- Press Ctrl+Y (or Ctrl+Shift+Z on macOS) to reapply the most recently undone change
- The grid restores the change and positions the view on the affected row
What Can Be Undone
The undo stack tracks the following types of operations:| Operation | Undo Behavior |
|---|---|
| Cell edits | Restores previous cell value and row height |
| Paste operations | Reverts all pasted cells as a single action |
| Row addition | Removes the added row and scrolls to previous position |
| Row deletion | Restores the deleted row (with limitations for unsaved items) |
| Dependent enum cascades | Reverts all cascading child field changes together |
| Task removal | Restores removed task or cleared task fields |
| Linked column changes | Restores dependent column values for itemLink, multiItemLink, taskLink |
Undo Cascading Dependent Enum Changes
When you edit a parent enum field that triggers cascading updates to child fields via configuredrelations, the entire cascade is tracked as a single undo action:
- Change a parent enum value — child fields update automatically
- Press Ctrl+Z — both the parent change and all child field updates are reverted together
- Press Ctrl+Y — the parent change and all cascading updates are reapplied
Undo Multi-Cell Paste Operations
When you paste values into multiple cells, the entire paste operation is bundled as a single undo action. Pressing Ctrl+Z reverts all pasted cells at once rather than requiring individual cell-by-cell undo.Undo Linked Column and Merged Cell Changes
Undo operations onitemLink, multiItemLink, taskLink, and multiEnum columns automatically restore dependent column values. For merged cells (common in itemLink columns within hierarchical levels), the undo operation applies across all rows in the merged cell range.
Multi-enum fields use specialized undo logic that converts between internal IDs and visible values, ensuring the display remains consistent after undo/redo.
Undo Task Operations
Task operations support full undo:- Task addition: Undoing a task addition removes the added task row and restores the grid to the previous position
- Task removal: Undoing a task removal restores the task. For single-task items where task fields were cleared, undo restores all cleared task attributes
Limitations
| Limitation | Details |
|---|---|
| Stack size | Maximum 50 undo actions. Older actions are automatically discarded. |
| Unsaved item deletion | Deleted new (unsaved) items cannot be restored via undo. |
| Save operations | Saving the document is not an undoable action. |
| Redo after new edit | Making any new change clears the entire redo stack. |
| Page reload | Undo history does not persist across page reloads. |
Verify Undo/Redo
After making changes:- Edit a cell value, then press Ctrl+Z — the original value should reappear
- Press Ctrl+Y — the edited value should be restored
- Add a row, then undo — the row should be removed and the grid scrolls to the previous position
- Edit a parent enum with cascading dependents, then undo — all cascading child fields should also revert
See Also
- Perform Bulk Editing — multi-cell operations that create undo entries
- Configure Dependent Enums — cascading enum relationships tracked by undo
- Configure Remove/Delete Actions — task removal behavior
Sources
Sources
Source Code
RedoCommand.tsRelationActionController.tsUndoCommand.tsGridUndoStack.tsRemoveTaskCommand.ts