Frontmatter
| id | 9511 |
| title | [Epic] Grid Value Banding |
| state | Closed |
| labels | enhancementepicaigrid |
| assignees | tobiu |
| createdAt | Mar 18, 2026, 3:15 PM |
| updatedAt | Mar 18, 2026, 3:18 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9511 |
| author | tobiu |
| commentsCount | 2 |
| parentIssue | null |
| subIssues | 9512 Dynamic Value Banding Updates 9513 Optimize Grid Value Banding (startIndex Support) 9514 [Epic Sub] TreeStore Value Banding Support 9515 [Epic Sub] Value Banding styling conflicts with row selection |
| subIssuesCompleted | 4 |
| subIssuesTotal | 4 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Mar 18, 2026, 3:18 PM |
[Epic] Grid Value Banding
tobiu assigned to @tobiu on Mar 18, 2026, 3:17 PM

tobiu
Mar 18, 2026, 3:18 PM
Implemented via f0381948e
tobiu closed this issue on Mar 18, 2026, 3:18 PM

tobiu
Mar 18, 2026, 3:18 PM
tobiu cross-referenced by #9512 on Mar 18, 2026, 3:43 PM
tobiu added sub-issue #9512 on Mar 18, 2026, 3:45 PM
tobiu cross-referenced by #9513 on Mar 18, 2026, 4:03 PM
tobiu added sub-issue #9513 on Mar 18, 2026, 4:04 PM
tobiu cross-referenced by #9514 on Mar 18, 2026, 4:07 PM
tobiu added sub-issue #9514 on Mar 18, 2026, 4:08 PM
tobiu cross-referenced by #9515 on Mar 18, 2026, 7:21 PM
tobiu added sub-issue #9515 on Mar 18, 2026, 7:21 PM
Implement a "value banding" effect for grid columns. This gives cells in a specific column with the same contiguous value the same background color. It requires updating the collection, store, grid container, and grid columns to propagate and compute this state.
Key architecture:
collection.Basemaintains avalueBandsMapMap instance (keyed by recordId) to prevent V8 hidden class de-optimizations on theRecordinstances or raw data objects.grid.Rowqueriesstore.valueBandsMapduringapplyRendererOutputto injectneo-value-band-1orneo-value-band-2CSS classes.grid.Containersupportsbody: { stripedRows: false }to disable alternating row colors which clash with value banding.examples/grid/valueBanding.test/playwright/unit/collection/ValueBanding.spec.mjsandtest/playwright/unit/data/StoreValueBandingCount.spec.mjsto ensure the recalculation algorithm only evaluates linearly on fields and efficiently updates state.Sub-tasks:
valueBandingFieldsandcalcValueBandstocollection.Basegrid/Containerandgrid/Rowto render the correct CSS classes (neo-value-band-1,neo-value-band-2)stripedRowsconfig togrid.Bodyexamples/grid/valueBanding