Skip to content

TablePagination API

The API documentation of the TablePagination React component. Learn more about the props and the CSS customization points.

Import

import TablePagination from '@material-ui/core/TablePagination';
// or
import { TablePagination } from '@material-ui/core';

You can learn more about the difference by reading this guide.

A TableCell based component for placing inside TableFooter for pagination.

Component name

The MuiTablePagination name can be used for providing default props or style overrides at the theme level.

Props

Name Type Default Description
ActionsComponent elementType TablePaginationActions The component used for displaying the actions. Either a string to use a HTML element or a component.
backIconButtonProps object Props applied to the back arrow IconButton component.
classes object Override or extend the styles applied to the component. See CSS API below for more details.
component elementType TableCell The component used for the root node. Either a string to use a HTML element or a component.
count* number The total number of rows.
To enable server side pagination for an unknown number of items, provide -1.
getItemAriaLabel func function defaultGetAriaLabel(type) { return Go to ${type} page;} Accepts a function which returns a string value that provides a user-friendly name for the current page.
For localization purposes, you can use the provided translations.

Signature:
function(type: string) => string
type: The link or button type to format ('first'
labelDisplayedRows func function defaultLabelDisplayedRows({ from, to, count }) { return ${from}-${to} of ${count !== -1 ? count : more than ${to}};} Customize the displayed rows label. Invoked with a { from, to, count, page } object.
For localization purposes, you can use the provided translations.
labelRowsPerPage node 'Rows per page:' Customize the rows per page label.
For localization purposes, you can use the provided translations.
nextIconButtonProps object Props applied to the next arrow IconButton element.
onChangePage* func Callback fired when the page is changed.

Signature:
function(event: object, page: number) => void
event: The event source of the callback.
page: The page selected.
onChangeRowsPerPage func Callback fired when the number of rows per page is changed.

Signature:
function(event: object) => void
event: The event source of the callback.
page* number The zero-based index of the current page.
rowsPerPage* number The number of rows per page.
rowsPerPageOptions array [10, 25, 50, 100] Customizes the options of the rows per page select field. If less than two options are available, no select field will be displayed.
SelectProps object {} Props applied to the rows per page Select element.
showFirstButton bool false If true, show the first-page button.
showLastButton bool false If true, show the last-page button.

The ref is forwarded to the root element.

Any other props supplied will be provided to the root element (TableCell).

CSS

Rule name Global class Description
root .MuiTablePagination-root Styles applied to the root element.
toolbar .MuiTablePagination-toolbar Styles applied to the Toolbar component.
spacer .MuiTablePagination-spacer Styles applied to the spacer element.
caption .MuiTablePagination-caption Styles applied to the caption Typography components if variant="caption".
selectRoot .MuiTablePagination-selectRoot Styles applied to the Select component root element.
select .MuiTablePagination-select Styles applied to the Select component select class.
selectIcon .MuiTablePagination-selectIcon Styles applied to the Select component icon class.
input .MuiTablePagination-input Styles applied to the InputBase component.
menuItem .MuiTablePagination-menuItem Styles applied to the MenuItem component.
actions .MuiTablePagination-actions Styles applied to the internal TablePaginationActions component.

You can override the style of the component thanks to one of these customization points:

If that's not sufficient, you can check the implementation of the component for more detail.

Inheritance

The props of the TableCell component are also available. You can take advantage of this behavior to target nested components.

Demos