Frontmatter
| id | 9151 |
| title | feat(grid): Support runtime column dataField changes |
| state | Closed |
| labels | documentationenhancementcore |
| assignees | tobiu |
| createdAt | Feb 14, 2026, 1:51 AM |
| updatedAt | Feb 14, 2026, 2:01 AM |
| githubUrl | https://github.com/neomjs/neo/issues/9151 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 14, 2026, 1:57 AM |
feat(grid): Support runtime column dataField changes

tobiu
Feb 14, 2026, 1:55 AM
Input from Gemini 3 Pro:
✦ I have enhanced the JSDoc for
dataField_to explicitly state:
- It maps to a
Neo.data.Modelfield.- It must be unique within the grid.
- It supports runtime changes.
tobiu assigned to @tobiu on Feb 14, 2026, 1:57 AM
tobiu closed this issue on Feb 14, 2026, 1:57 AM

tobiu
Feb 14, 2026, 2:01 AM
Enable
Neo.grid.column.Baseto handle dynamic changes to itsdataFieldconfig at runtime.Goals
dataFieldreactive (dataField_).afterSetDataFieldto automatically update:Grid.Bodycolumn positions map (handling the re-keying logic).HeaderButton(to preserve sorting/filtering bindings).Implementation Details
The
afterSetDataFieldmethod must perform a "remove -> mutate -> add" sequence on thebody.columnPositionsCollection. This is critical because the Collection usesdataFieldas itskeyProperty. Modifying the field in-place without removing it first would leave the internal Map index pointing to the old key, breaking column lookups inRow.mjs.This enhancement removes the need for manual synchronization logic in application code (e.g.
DevIndex).