Aller au contenu

Pagination

Naviguer à travers les pages de données avec des contrôles personnalisables.

import { Pagination } from 'asterui'

Pagination de base

Pagination simple avec numéros de page.

import { Pagination } from 'asterui'
import { useState } from 'react'

function App() {
  const [current, setCurrent] = useState(1);
  
  return (
      <Pagination
        current={current}
        total={85}
        onChange={(page) => setCurrent(page)}
      />
    )
}

export default App

Avec changeur de taille

Permettre aux utilisateurs de modifier la taille de la page.

import { Pagination } from 'asterui'
import { useState } from 'react'

function App() {
  const [current, setCurrent] = useState(1);
  const [pageSize, setPageSize] = useState(10);
  
  return (
      <Pagination
        current={current}
        total={500}
        pageSize={pageSize}
        showSizeChanger
        onChange={(page, size) => {
          setCurrent(page);
          setPageSize(size);
        }}
      />
    )
}

export default App

Afficher le total

Afficher le nombre total d'éléments.

Total 250 items
import { Pagination } from 'asterui'

function App() {
  return (
      <Pagination total={250} showTotal />
    )
}

export default App

Total personnalisé

Rendu personnalisé du nombre total.

Showing 1-10 of 250 items
import { Pagination } from 'asterui'

function App() {
  return (
      <Pagination
        total={250}
        showTotal={(total, range) => `Showing ${range[0]}-${range[1]} of ${total} items`}
      />
    )
}

export default App

Saut rapide

Permettre aux utilisateurs de sauter à une page spécifique.

Go to
import { Pagination } from 'asterui'

function App() {
  return (
      <Pagination total={500} showQuickJumper />
    )
}

export default App

Toutes les fonctionnalités

Pagination avec toutes les fonctionnalités activées.

1-10 of 500
Go to
import { Pagination } from 'asterui'
import { useState } from 'react'

function App() {
  const [current, setCurrent] = useState(1);
  
  return (
      <Pagination
        current={current}
        total={500}
        showSizeChanger
        showQuickJumper
        showTotal={(total, range) => `${range[0]}-${range[1]} of ${total}`}
        onChange={(page) => setCurrent(page)}
      />
    )
}

export default App

Mode simple

Pagination minimale avec uniquement les contrôles précédent/suivant.

1 / 10
import { Pagination } from 'asterui'

function App() {
  return (
      <Pagination total={100} simple />
    )
}

export default App

Tailles

Différentes tailles pour les contrôles de pagination.

Extra Small
Small
Medium (default)
Large
import { Pagination } from 'asterui'

function App() {
  return (
      <div className="space-y-4">
        <div>
          <div className="text-sm text-base-content/60 mb-2">Extra Small</div>
          <Pagination total={100} size="xs" />
        </div>
        <div>
          <div className="text-sm text-base-content/60 mb-2">Small</div>
          <Pagination total={100} size="sm" />
        </div>
        <div>
          <div className="text-sm text-base-content/60 mb-2">Medium (default)</div>
          <Pagination total={100} size="md" />
        </div>
        <div>
          <div className="text-sm text-base-content/60 mb-2">Large</div>
          <Pagination total={100} size="lg" />
        </div>
      </div>
    )
}

export default App

Désactivé

État désactivé pour la pagination.

import { Pagination } from 'asterui'

function App() {
  return (
      <Pagination total={100} disabled />
    )
}

export default App
PropriétéDescriptionTypeDéfaut
currentNuméro de page actuel (contrôlé)number-
defaultCurrentNuméro de page initial par défautnumber1
totalNombre total d’élémentsnumber-
pageSizeNombre d’éléments par page (contrôlé)number-
defaultPageSizeNombre par défaut d’éléments par pagenumber10
pageSizeOptionsOptions pour le sélecteur de taille de pagenumber[][10, 20, 50, 100]
onChangeRappel lorsque la page ou pageSize change(page: number, pageSize: number) => void-
onShowSizeChangeRappel lorsque pageSize change(current: number, size: number) => void-
showSizeChangerAfficher le sélecteur de taille de pagebooleanfalse
showQuickJumperAfficher l’input de saut rapide vers une pagebooleanfalse
showTotalAfficher le nombre total ou fonction de rendu personnaliséeboolean | ((total: number, range: [number, number]) => ReactNode)false
simpleMode simple avec contrôles minimauxbooleanfalse
sizeTaille des boutons de pagination'xs' | 'sm' | 'md' | 'lg''md'
disabledDésactiver tous les contrôles de paginationbooleanfalse
classNameClasses CSS supplémentairesstring-
  • Utilise l’élément nav avec aria-label="Pagination"
  • La page actuelle est marquée avec aria-current="page"
  • Les boutons désactivés ont un état aria-disabled approprié
  • L’input de saut rapide a une étiquette accessible