Pagination
Pagination is used to navigate content across several pages.
Demo
Usage
When to use
- Many items to navigate. Use pagination when there could be many items to look through.
- Paired with tables. Pagination is often used with a data table to navigate between pages of item rows in the table.
- In combination with search or filter. Pagination shouldn't be the only way to find items in a long list. Make sure searching or filtering are available too.
When not to use
- Few items. If there will only be few items in a list or table, don't show a redundant pagination element.
Format
Position
- Pagination should always be shown at the end of a list of items.
Options
Different elements of the pagination component can be included, depending on the use case.
Element: Page number selector
Demo
<Pagination
page={2}
pageCount={10}
pageSize={50}
total={430}
hidePageSizeSelect
hidePageSummary
/>
- Offers access to any page without navigating with previous or next buttons.
- Use if a user might need to jump between non-sequential pages often.
Element: Context information
Demo
<Pagination
page={2}
pageCount={10}
pageSize={50}
total={430}
hidePageSelect
hidePageSizeSelect
/>
- Shows a short summary of the current page in context of the whole set of items.
- Use when positional context could be useful.
- Showing the total number of items can be problematic for large data sets. Omit the total number of items and pages in situations when there can be many items.
Element: Item count selector
Demo
<Pagination
page={2}
pageCount={10}
pageSize={50}
total={430}
hidePageSelect
hidePageSummary
/>
- Changes the number of items included in a page.
- Use when a user might want to customize the view.
API Reference
Pagination
Usage
To use Pagination
, you can import the component from the @dhis2/ui
library
import { Pagination } from '@dhis2/ui'
Props
Name | Type | Default | Required | Description |
---|---|---|---|---|
page | number | * | ||
pageSize | number | * | ||
className | string | |||
dataTest | string | 'dhis2-uiwidgets-pagination' | ||
disabled | boolean | |||
hidePageSelect | boolean | |||
hidePageSizeSelect | boolean | |||
hidePageSummary | boolean | |||
isLastPage | boolean | |||
nextPageText | string │ function | () => i18n.t('Next') | ||
pageCount | number | |||
pageLength | custom(function) | |||
pageSelectText | string │ function | () => i18n.t('Page') | ||
pageSizeSelectText | string │ function | () => i18n.t('Items per page') | ||
pageSizes | arrayOf(string) | ['5', '10', '20', '30', '40', '50', '75', '100'] | ||
pageSummaryText | string │ function | |||
previousPageText | string │ function | () => i18n.t('Previous') | ||
total | number | |||
onPageChange | function | |||
onPageSizeChange | function |