Skip to content

Tables overview

GridViewTable is the tabular data block. Choose a table backend by scale and cell complexity.

Backend When
simple Server HTML, up to a few thousand rows, declarative renderers
ag_grid Large/infinite datasets, custom columnDefs, heavy client filters
GridViewTable(
    id="records",
    backend="simple",  # or "ag_grid"
    columns=(GridViewColumn(id="name", label="Name", field="name"),),
    datasource=GridViewDataSource(endpoint="/api/records/"),  # ag_grid / remote
    settings=GridViewTableSettings(columns=True, presets=True),
)

Shared table features (both backends)

Feature Spec surface
Column definition GridViewColumn
Multi-sort state GridViewTable.sort (URL-synced)
Search scope GridViewTable.search_mode + toolbar GridViewSearch
Column settings GridViewTable.settings
Inline edit GridViewTable.edit + editable columns
Dynamic columns GridViewTable.column_source
Header groups GridViewTable.header / GridViewColumnGroup
Row action GridViewTable.row_action
Section rows __section__ row key + section_label; see Simple table § Section rows

Three chrome layers (do not mix)

  1. GridViewHeader — page identity
  2. GridViewToolbar — search, export, counters (layout block)
  3. GridViewTable.header<thead> column labels only