6.8 KiB
Pagination
Si vous avez beaucoup de données à afficher sur une seule page, il est préférable d'utiliser une pagination.
Usage
:::demo Configurez layout
avec les différent éléments de pagination que vous souhaitez, séparés par des virgules. Les éléments possibles sont: prev
(pour aller vers la page précédente), next
(pour aller vers la page suivante), pager
(liste des pages), jumper
(un champ pour aller directement à une page précise), total
(Le nombre total d'entrées), size
(un sélecteur qui détermine la taille de la page) et ->
(chaque élément après celui-ci sera poussé vers la droite).
<div class="block">
<span class="demonstration">Quand vous avez quelques pages</span>
<el-pagination
layout="prev, pager, next"
:total="50">
</el-pagination>
</div>
<div class="block">
<span class="demonstration">Quand vous avez plus que 7 pages</span>
<el-pagination
layout="prev, pager, next"
:total="1000">
</el-pagination>
</div>
:::
Nombre de pages
:::demo Par défaut, Pagination réduit les boutons lorsqu'il y a plus de 7 pages. Ce nombre est configurable avec l'attribut pager-count
.
<el-pagination
:page-size="20"
:pager-count="11"
layout="prev, pager, next"
:total="1000">
</el-pagination>
:::
Boutons avec couleur de fond
:::demo Réglez l'attribut background
pour change la couleur de fond des boutons.
<el-pagination
background
layout="prev, pager, next"
:total="1000">
</el-pagination>
:::
Petite pagination
Utilisez une pagination de taille réduite si vous manquez d'espace.
:::demo Ajoutez simplement l'attribut small
et la pagination sera de taille réduite.
<el-pagination
small
layout="prev, pager, next"
:total="50">
</el-pagination>
:::
Plus d'éléments
Vous pouvez ajouter plus de modules suivant vos besoins.
:::demo Cet exemple contient un use-case complet. Il utilise les évènements size-change
et current-change
pour gérer la taille de la page et son changement. page-sizes
accepte un tableau d'entiers, chacun représentant une taille dans les options de sizes
, e.g. [100, 200, 300, 400]
indique que le sélecteur aura quatre options: 100, 200, 300 ou 400 entrées par page.
<template>
<div class="block">
<span class="demonstration">Total d'entrées</span>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
v-model:currentPage="currentPage1"
:page-size="100"
layout="total, prev, pager, next"
:total="1000">
</el-pagination>
</div>
<div class="block">
<span class="demonstration">Changement de taille de la page</span>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
v-model:currentPage="currentPage2"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="sizes, prev, pager, next"
:total="1000">
</el-pagination>
</div>
<div class="block">
<span class="demonstration">Aller à</span>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
v-model:currentPage="currentPage3"
:page-size="100"
layout="prev, pager, next, jumper"
:total="1000">
</el-pagination>
</div>
<div class="block">
<span class="demonstration">Tous en même temps</span>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
v-model:currentPage="currentPage4"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="400">
</el-pagination>
</div>
</template>
<script>
export default {
methods: {
handleSizeChange(val) {
console.log(`${val} items per page`);
},
handleCurrentChange(val) {
console.log(`current page: ${val}`);
}
},
data() {
return {
currentPage1: 5,
currentPage2: 5,
currentPage3: 5,
currentPage4: 4
};
}
}
</script>
:::
Cacher la pagination s'il n'y a qu'une seule page
Lorsqu'il n'y a qu'une seule page, il est possible de cacher la pagination avec l'attribut hide-on-single-page
.
:::demo
<div>
<el-switch v-model="value">
</el-switch>
<el-pagination
:hide-on-single-page="value"
:total="5"
layout="prev, pager, next">
</el-pagination>
</div>
<script>
export default {
data() {
return {
value: false
}
}
}
</script>
:::
Attributs
Attribut | Description | Type | Valeurs acceptées | Défaut |
---|---|---|---|---|
small | Si la pagination doit être petite. | boolean | — | false |
background | Si les boutons doivent avoir une couleur de fond. | boolean | — | false |
page-size | Nombre d'entrées sur chaque page, supporte v-model two-way binding. | number | — | 10 |
total | Nombre total d'entrées. | number | — | — |
page-count | Nombre de pages. Réglez total ou page-count et le nombre de pages sera affiché; si vous avez besoin de page-sizes , total est requis. |
number | — | — |
pager-count | Nombre de sélecteurs de pages. Pagination se réduit lorsque le nombre de pages dépasse cette valeur. | number | Nombre impair entre 5 et 21. | 7 |
current-page | Le numéro de page courant, supporte v-model two-way binding. | number | — | 1 |
layout | L'ensemble des éléments de la pagination, séparés par des virgules. | string | sizes , prev , pager , next , jumper , -> , total , slot |
'prev, pager, next, jumper, ->, total' |
page-sizes | Options pour la taille des pages. | number[] | — | [10, 20, 30, 40, 50, 100] |
popper-class | Classe du menu de sélection de la taille des pages. | string | — | — |
prev-text | Texte du bouton prev. | string | — | — |
next-text | Texte du bouton next. | string | — | — |
disabled | Si la pagination est désactivée. | boolean | — | false |
hide-on-single-page | Si la pagination doit être cachée quand il n'y a qu'une seule page. | boolean | — | - |
Évènements
Nom | Description | Paramètres |
---|---|---|
size-change | Se déclenche quand page-size change. |
La nouvelle taille. |
current-change | Se déclenche quand current-page change. |
La nouvelle page courante |
prev-click | Se déclenche quand le bouton prev est cliqué et que la page courante change. | La nouvelle page courante. |
next-click | Se déclenche quand le bouton next est cliqué et que la page courante change. | La nouvelle page courante. |
Slot
Name | Description |
---|---|
— | Contenu personnalisé. Pour l'utiliser vous devez déclarer slot dans layout . |