Type to search columns, filters, options, and extensions.

↑↓ to navigate · Enter to open · Esc to close

Documentation

When To Use What

Decision guide for selecting the right UX DataTables setup

Use this guide as a fast decision tree.

Scenario Matrix

ScenarioRecommended setupWhy
Small dataset (< 5k rows)DataTable + data() or simple ajax()Minimal backend logic
Large datasetserverSide(true) + backend filteringAvoid loading all rows in browser
Reusable table across screensAbstractDataTableEncapsulates behavior and data access
Hydra API backendajax() + apiPlatform(true)Converts DataTables params to API Platform
Export actionsButtonsExtensionCSV/Excel/PDF/Print support
Row selection workflowsSelectExtensionBuilt-in selection modes
Live refresh of a server-side tablepoll() for outside or continuous changes, Mercure when your app knows what changedPolling needs no hub; Mercure pushes only on change
Totals in the footersummarize()Covers every matching row, not only the page
Users build their own searchSearchBuilderGrouped conditions without custom filter code
Custom empty table or clickable rowsRow presentationEmpty state, row classes, and row links
Horizontal-heavy tableResponsiveExtension or FixedColumnsExtensionBetter readability on small viewports
  • Start with Usage.
  • Move to AbstractDataTable once table logic grows.
  • Enable server-side mode early for high-cardinality entities.
  • Add extensions incrementally and test interactions.