Skip to content

Column Virtualization Plugin

The Column Virtualization plugin improves performance for grids with many columns.

import '@toolbox-web/grid/features/column-virtualization';
import { queryGrid } from '@toolbox-web/grid';
import '@toolbox-web/grid/features/column-virtualization';
const grid = queryGrid('tbw-grid');
grid.gridConfig = {
columns: generateManyColumns(100), // Your column generator
fitMode: 'fixed', // Required for column virtualization
features: { columnVirtualization: true },
};
grid.rows = data;
Column countNumber of columns to generate
ThresholdMin columns to enable virtualization
OverscanExtra columns rendered offscreen
Auto-enableAutomatically enable when column count exceeds threshold

Use the Column Count slider to add up to 1000 columns, and toggle Auto Enable to compare performance with and without virtualization.

See ColumnVirtualizationConfig for the full list of options and defaults. By default the plugin activates itself once a grid exceeds 30 columns; set autoEnable: false to control activation yourself.

  • fitMode: 'fixed' — the plugin is designed for fixed-width column layouts
  • Columns should have explicit widths (columns without widths default to 100px)
const plugin = grid.getPluginByName('columnVirtualization');
// Check if virtualization is currently active
const active = plugin.getIsVirtualized();
// Get the visible column index range
const { start, end } = plugin.getVisibleColumnRange();
// Scroll a specific column into view
plugin.scrollToColumn(42);