SYIDAX / DATA GRID

Large data sets

Reduce DOM size by rendering rows around the visible area.

Get started
Large data setsSample order data
120 rows
Loading Grid…

Options

Changes below update the Grid and code immediately.

Latest result

This example starts with 10,000 rows and pagination disabled. Check the total above the table.

View code
Current preview

Usage guide

#

Render mainly the visible area to support scrolling through large row counts.

Try it yourself

  1. Inspect data volume

    This example starts with 10,000 rows and pagination disabled. Check the total above the table.

  2. Scroll inside the table

    Scroll within the Grid rather than the whole page. Orders matching the current position appear.

  3. Compare row counts

    Change Sample row count to 120 or 1,000. Reset returns this menu to its 10,000-row example.

Expected results

Browse long lists without creating a screen element for every row at once.

Changing sample row count creates new data. Virtualization reduces rendering cost; it does not replace data downloads or server search.

Useful terms

Virtualization
Creating and reusing screen elements around the visible area.
DOM
The element structure managed by the browser to display the page.

API reference

#

Key properties

Attribute / PropertyType / DefaultDescription
string | numberDefault: undefinedOuter height — number is treated as px, strings pass through (e.g. `"60vh"`).
rowHeight
numberDefault: 32Uniform row height in px. `rowHeightFn` overrides this when supplied.
Other properties3
Attribute / PropertyType / DefaultDescription
rowHeightFn
(index: number, row: GridData) => numberDefault: undefinedOptional per-row height function for variable-height virtualization.
virtualScroll
booleanDefault: trueEnable wrapper-level row virtualization in columnDefs mode.
virtualizeColumns
booleanDefault: undefinedwindow the scrolling middle columns: only the columns intersecting the viewport (plus overscan) render; leading / trailing spacers keep the scrollbar truthful. Pinned columns always render. Eligibility: every unpinned column needs a concrete pixel width (`width:` or a live resize) — any flex-sized middle column silently disables windowing (geometry is unknowable pre-layout).
Methods2
Method / ArgumentsReturn typeDescription
Promise<void>discard all measured auto-height row heights and remeasure on the next render (ag-grid `resetRowHeights` parity). Call after mutating content that changes wrapping (e.g. an external font/CSS swap) when the automatic data/column/viewport-width invalidation cannot see the change.
Promise<void>Scroll the column-defs viewport to the top.
ColumnDef2
ColumnDefType / RequiredDescription
booleanOptionallet this column's cell text wrap onto multiple lines instead of truncating with an ellipsis (ag-grid `wrapText`). On its own the cell wraps *within* the fixed row height (overflow clipped); pair with to grow the row to fit.
booleanOptionalsize the row to fit this column's (wrapped) content instead of the uniform `row-height` (ag-grid `autoHeight`). When any visible column sets this, the grid measures each rendered row after paint and virtualizes with the measured heights (see ). The tallest auto-height cell in a row wins.