Skip to content

refactor: Adopt 'internalId' for Stable DOM Keying (Grid & Table) #9072

@tobiu

Description

@tobiu

Context:
Following #9070 (Internal ID implementation) and the List/DataView refactor, the Grid and Table components must also be updated to support stable DOM keying.

Problem:
Grids are the primary UI for CRUD operations. Handling "Phantom Records" (newly added rows before save) is a critical use case where id: null currently causes issues.

Task:
Update Neo.grid.Container and Neo.table.Container (and their respective Views/Rows) to support internalId.

Requirements:

  1. Opt-in Config: Add useInternalId config to Grid/Table Container.
  2. Row Rendering: Update row generation to use store.getInternalId(record) for the <tr> or <div> ID.
  3. Cell Rendering: Ensure cell IDs are derived consistently.
  4. Selection Model: Update Neo.selection.grid.Model and Neo.selection.table.Model to handle internal ID based lookups.

Scope:

  • src/grid/ (View, Row, Container)
  • src/table/
  • Selection Models

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions