Back to compare picker

Data grid vs Table vs Inline edit vs Pagination

Use a data grid for dense interactive row-and-column work with managed cell focus; use a table for semantic comparison, inline edit for local value changes, and pagination to divide long result sets.

Learn the decision

Match the interaction to the person's task

Use a data grid for dense interactive row-and-column work with managed cell focus; use a table for semantic comparison, inline edit for local value changes, and pagination to divide long result sets.

Data grid

Use it when: Users repeatedly inspect or update many records in shared columns.

Make this state clear: Default navigation state with labelled grid, column headers, row headers or row identifiers, focused cell, and row count context.

Observe the result: A user presses Arrow Right to move from Amount to Due, presses Enter to edit the due date, presses Escape to cancel, and focus returns to the same cell in navigation mode.

Study the full pattern →

Table

Use it when: Records share comparable attributes that users need to scan in aligned columns.

Make this state clear: Default table state with caption, visible headers, row values, and result count or context.

Observe the result: A user sorts by Amount descending, filters to Pending, moves to page 2, and the table keeps its caption, active sort, active filter, row count, and selected payment context.

Study the full pattern →

Inline edit

Use it when: Users frequently update one visible value or one row property.

Make this state clear: Read state with displayed value and discoverable edit affordance.

Observe the result: A user clicks Edit owner, changes the value, sees Save become enabled, enters an invalid short value, fixes it beside the field, saves, and stays on the same row.

Study the full pattern →

Pagination

Use it when: The collection has many ordered results.

Make this state clear: First page with disabled previous control.

Observe the result: Users move through pages while query, filters, and sort persist.

Study the full pattern →

Practice the judgment: Imagine this situation: A static read-only table uses role grid and traps arrow keys even though users expected ordinary reading and tab order. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Data gridTableInline editPagination
UI or UX UI + UX - Interactive row-and-column data workspaceUI + UX - Semantic row-and-column data comparison surfaceUI + UX - In-place value or row editingUI + UX - Paged navigation control
UI guidance Render the grid as a named work surface with visible headers, row identifiers, focus location, selection state, dirty and invalid cell markers, column controls, and status text for row count, sort, filter, and save state.Render a table with a specific caption or heading, visible column headers, optional row headers, aligned values, consistent row actions, and enough spacing for scanability.Render a read-state value with a visible edit affordance, then replace only that value, cell, or row with the appropriate input and adjacent Save and Cancel controls when edit mode starts.Render a labeled pagination nav near the affected results with current page, previous, next, nearby pages, optional first/last or ellipsis, and clear disabled edge states.
UX guidance Use a data grid when cell-level interaction makes users faster and more accurate than opening each record separately.Use tables when aligned columns help users compare records, find exceptions, audit values, or triage work faster than opening each item.Use inline edit when users need to make frequent, low-impact changes to one visible property while preserving surrounding list, table, or record context.Help users move through an ordered result set with a stable sense of position, progress, and returnability.
Good UI An invoice-review grid shows frozen invoice IDs, column headers for Vendor, Amount, Due, Owner, and Status, one highlighted focused cell, two selected rows, a dirty edited amount, and a status line naming the current cell.A payment review table has the caption June vendor payments, headers Vendor, Status, Due date, Amount, and Action, right-aligned amounts, and row actions labelled by vendor.A resource table shows an edit icon beside the owner cell; activating it turns that cell into a text field with Save and Cancel buttons while other cells remain read-only.Current page, previous/next, disabled edges, page numbers, result range, and total count are visually clear.
Bad UI A static report uses role grid even though users only read values and ordinary table semantics would be clearer.Mobile stacking removes headers and turns rows into unlabeled paragraphs.The edit affordance appears only on pointer hover and is unreachable by keyboard or touch.Pagination jumps around as pages load or separates controls from the result list.
Good UX A user presses Arrow Right to move from Amount to Due, presses Enter to edit the due date, presses Escape to cancel, and focus returns to the same cell in navigation mode.A user sorts by Amount descending, filters to Pending, moves to page 2, and the table keeps its caption, active sort, active filter, row count, and selected payment context.A user clicks Edit owner, changes the value, sees Save become enabled, enters an invalid short value, fixes it beside the field, saves, and stays on the same row.Users move through pages while query, filters, and sort persist.
Bad UX The grid reports selection but the visual highlight is focus, or focus highlight is mistaken for selected data.Mobile stacking removes headers and turns rows into unlabeled paragraphs.A user edits a sorted table cell and the row immediately jumps to a different page before the saved value can be confirmed.Changing page resets filters.
Best fit Users repeatedly inspect or update many records in shared columns.Records share comparable attributes that users need to scan in aligned columns.Users frequently update one visible value or one row property.The collection has many ordered results.
Avoid when The data is read-only and ordinary table navigation is enough.The task depends on rich previews, imagery, or uneven metadata.The edit affects multiple dependent fields or needs a review step.Users need uninterrupted reading or comparison.
Required state Default navigation state with labelled grid, column headers, row headers or row identifiers, focused cell, and row count context.Default table state with caption, visible headers, row values, and result count or context.Read state with displayed value and discoverable edit affordance.First page with disabled previous control.
Accessibility burden Use grid semantics only for an interactive composite widget with managed focus.Use native table semantics for tabular data rather than div-only rows.Give edit, save, cancel, confirm, and dismiss controls accessible names, especially when icons are used.Use a labeled navigation region.
Common misuse Using role grid on a static table only to make it sound richer.Using table markup to create page columns or layout spacing.Using inline edit for high-impact changes that need a review or confirmation step.Using pagination for a tiny collection.

Data grid

UI or UX
UI + UX - Interactive row-and-column data workspace
UI guidance
Render the grid as a named work surface with visible headers, row identifiers, focus location, selection state, dirty and invalid cell markers, column controls, and status text for row count, sort, filter, and save state.
UX guidance
Use a data grid when cell-level interaction makes users faster and more accurate than opening each record separately.
Good UI
An invoice-review grid shows frozen invoice IDs, column headers for Vendor, Amount, Due, Owner, and Status, one highlighted focused cell, two selected rows, a dirty edited amount, and a status line naming the current cell.
Bad UI
A static report uses role grid even though users only read values and ordinary table semantics would be clearer.
Good UX
A user presses Arrow Right to move from Amount to Due, presses Enter to edit the due date, presses Escape to cancel, and focus returns to the same cell in navigation mode.
Bad UX
The grid reports selection but the visual highlight is focus, or focus highlight is mistaken for selected data.
Best fit
Users repeatedly inspect or update many records in shared columns.
Avoid when
The data is read-only and ordinary table navigation is enough.
Required state
Default navigation state with labelled grid, column headers, row headers or row identifiers, focused cell, and row count context.
Accessibility burden
Use grid semantics only for an interactive composite widget with managed focus.
Common misuse
Using role grid on a static table only to make it sound richer.

Table

UI or UX
UI + UX - Semantic row-and-column data comparison surface
UI guidance
Render a table with a specific caption or heading, visible column headers, optional row headers, aligned values, consistent row actions, and enough spacing for scanability.
UX guidance
Use tables when aligned columns help users compare records, find exceptions, audit values, or triage work faster than opening each item.
Good UI
A payment review table has the caption June vendor payments, headers Vendor, Status, Due date, Amount, and Action, right-aligned amounts, and row actions labelled by vendor.
Bad UI
Mobile stacking removes headers and turns rows into unlabeled paragraphs.
Good UX
A user sorts by Amount descending, filters to Pending, moves to page 2, and the table keeps its caption, active sort, active filter, row count, and selected payment context.
Bad UX
Mobile stacking removes headers and turns rows into unlabeled paragraphs.
Best fit
Records share comparable attributes that users need to scan in aligned columns.
Avoid when
The task depends on rich previews, imagery, or uneven metadata.
Required state
Default table state with caption, visible headers, row values, and result count or context.
Accessibility burden
Use native table semantics for tabular data rather than div-only rows.
Common misuse
Using table markup to create page columns or layout spacing.

Inline edit

UI or UX
UI + UX - In-place value or row editing
UI guidance
Render a read-state value with a visible edit affordance, then replace only that value, cell, or row with the appropriate input and adjacent Save and Cancel controls when edit mode starts.
UX guidance
Use inline edit when users need to make frequent, low-impact changes to one visible property while preserving surrounding list, table, or record context.
Good UI
A resource table shows an edit icon beside the owner cell; activating it turns that cell into a text field with Save and Cancel buttons while other cells remain read-only.
Bad UI
The edit affordance appears only on pointer hover and is unreachable by keyboard or touch.
Good UX
A user clicks Edit owner, changes the value, sees Save become enabled, enters an invalid short value, fixes it beside the field, saves, and stays on the same row.
Bad UX
A user edits a sorted table cell and the row immediately jumps to a different page before the saved value can be confirmed.
Best fit
Users frequently update one visible value or one row property.
Avoid when
The edit affects multiple dependent fields or needs a review step.
Required state
Read state with displayed value and discoverable edit affordance.
Accessibility burden
Give edit, save, cancel, confirm, and dismiss controls accessible names, especially when icons are used.
Common misuse
Using inline edit for high-impact changes that need a review or confirmation step.

Pagination

UI or UX
UI + UX - Paged navigation control
UI guidance
Render a labeled pagination nav near the affected results with current page, previous, next, nearby pages, optional first/last or ellipsis, and clear disabled edge states.
UX guidance
Help users move through an ordered result set with a stable sense of position, progress, and returnability.
Good UI
Current page, previous/next, disabled edges, page numbers, result range, and total count are visually clear.
Bad UI
Pagination jumps around as pages load or separates controls from the result list.
Good UX
Users move through pages while query, filters, and sort persist.
Bad UX
Changing page resets filters.
Best fit
The collection has many ordered results.
Avoid when
Users need uninterrupted reading or comparison.
Required state
First page with disabled previous control.
Accessibility burden
Use a labeled navigation region.
Common misuse
Using pagination for a tiny collection.
Decision rules
  • Choose data grid when users need spreadsheet-like interaction: arrow-key cell navigation, editable cells, selected rows or cells, copy and paste, keyboard-managed widgets, virtualized records, or column operations inside one dense surface.
  • Choose table when users mainly compare records across shared columns and every interactive control can remain in the normal page tab sequence without cell-by-cell grid navigation.
  • Choose inline edit when one displayed value or one row switches locally into edit mode but the surrounding surface does not need a full grid focus model.
  • Choose pagination when the problem is splitting a large ordered dataset into stable pages rather than editing, selecting, or navigating individual cells.
  • A data grid may include sortable headers, filters, column visibility, pagination, and inline cell editors, but it owns the combined focus, selection, editing, and state-restoration contract.
  • Do not upgrade a read-only table to data grid just to reduce tab stops; the grid must provide visible instructions and reliable keyboard interaction for pointer, keyboard, and assistive-technology users.
  • Do not call a dense form a data grid when fields have unrelated labels, dependencies, or review requirements that belong in a form or complex form.
  • When a cell enters edit mode, define how users enter editing, where focus lands, how Escape cancels, how Enter or Save commits, and when arrow keys return to grid navigation.
  • When rows are virtualized, hidden, sorted, filtered, pinned, or paginated, keep row and column counts, indices, labels, selected state, dirty edits, and focus location truthful.
  • On narrow screens, consider a task-specific edit route or list-plus-detail workflow instead of forcing a dense spreadsheet interaction into an unusable viewport.
Inspect live examples
Failure modes
  • A static read-only table uses role grid and traps arrow keys even though users expected ordinary reading and tab order.
  • Every cell contains a tabbable input or menu, so keyboard users must traverse hundreds of controls before leaving the surface.
  • Editable cells use arrow keys both for text caret movement and grid navigation without an explicit edit-mode boundary.
  • Virtualized rows expose wrong row indices or lose selected rows and dirty edits after sorting, filtering, or scrolling.
  • A single inline edit is implemented as a full data grid, adding keyboard complexity without a spreadsheet-like task.
  • Pagination moves rows to another page but silently clears focused cell, selected rows, validation errors, or pending edits.

Saved items