Skip to content

Header (Advanced)

Sophisticated Row Header example based on RowHeaderPlugin. The demo uses a task pipeline layout so the row header has a clear job: it anchors each row, opens row-level actions, and keeps row focus visible while the cells provide richer operational context.

  • Use rowHeaders({ showHeaderFocusBtn: true }) for a dedicated row action rail
  • Open a row ContextMenuPlugin menu directly from the row-header click
  • Combine row headers with custom column templates for status, priority, owner, due date, and progress
  • Focus the whole row from the row header while preserving readable business data in the grid body
  • Style the row-header rail and content cells together so the row action area feels intentional

Source code
import './rowHeader.scss';
import { defineCustomElements } from '@revolist/revogrid/loader';
import {
rowHeaders,
RowHeaderPlugin,
ContextMenuPlugin,
ColumnStretchPlugin,
RowOddPlugin,
} from '@revolist/revogrid-pro';
import { currentTheme } from '../composables/useRandomData';
import {
createRowHeaderColumns,
rowHeaderContextMenu,
rowHeaderTasks,
} from './rowHeader.shared';
const { isDark } = currentTheme();
defineCustomElements();
const grid = document.createElement('revo-grid');
grid.className = 'row-header-demo-grid';
grid.columns = createRowHeaderColumns();
grid.plugins = [
RowHeaderPlugin,
ContextMenuPlugin,
ColumnStretchPlugin,
RowOddPlugin,
];
grid.rowHeaders = rowHeaders({ showHeaderFocusBtn: true });
grid.rowContextMenu = rowHeaderContextMenu;
grid.rowSize = 56;
grid.stretch = 'all';
grid.theme = isDark() ? 'darkMaterial' : 'material';
grid.hideAttribution = true;
document.getElementById('demo-wrapper')?.appendChild(grid);
grid.source = rowHeaderTasks;