Comment personnaliser la Pagination dans Primefaces Tableau de Données
Primefaces Datatable ont beaucoup d'options pour organiser la pagination.
J'ai l'obligation de faire Paginator comme dans l'image suivante :
Ce que quelqu'un a une idée de comment faire cela. Veuillez indiquer toute autre manière, si vous savez.
Vous devez vous connecter pour publier un commentaire.
Étendre PrimeFaces
DataTableRenderer
et remplacerencodePaginatorMarkup()
:(vous pouvez trouver le code source de la méthode dans le
DataRenderer
de la classe il est l'extension de)Ensuite, pour le faire fonctionner, l'enregistrer comme suit dans
faces-config.xml
:Au lieu de prolonger le PrimeFaces
DataTableRenderer
et dominanteencodePaginatorMarkup()
comme suggéré ci-dessus, vous pouvez ajouter votre propre mise en œuvre de laorg.primefaces.component.paginator.PaginatorElementRenderer
de l'ensemble standard de prise en charge des paginator éléments.Cela peut être obtenu en appelant la méthode statique suivante dans votre JSF ApplicationFactory mise en œuvre:
Par la suite, vous devez ajouter le
MyPaginatorImplementation
classe, qui doit implémenter l'interfaceorg.primefaces.component.paginator.PaginatorElementRenderer
.Comme un point de départ, vous pouvez commencer votre personnalisation de la PrimeFaces
PageLinksRenderer
classe, par exempleMaintenant, vous pouvez l'utiliser dans vos XHTML façon standard fourni par PrimeFaces, par exemple
<p:dataTable paginatorTemplate="{myPaginator}" />
Les avantages de cette solution de rechange pour les autres options sont:
Mais au prix de l'extra code java requis.
addPaginatorElement
exactement une fois. Un simple exemple en étendant le OmniFaces application usine pourrait être:public class MyApplicationFactory extends OmniApplicationFactory {
/* constructor omitted */
@Override public Application getApplication() {
org.primefaces.renderkit.DataRenderer.addPaginatorElement("{myPaginator}", new MyPaginatorImplementation());
return super.getApplication(); } }
Je ne pense pas qu'il y est un moyen facile d'obtenir ce que vous voulez. Actuellement, le Paginator Modèle de
p:dataTable
supporte les options suivantes:Regarder dans le code source de la classe
org.primefaces.renderkit.DataRenderer
vous pouvez avoir ces options disponibles. Ce que vous voulez ce que vous devez faire par le développement sur mesure d'datatable ou par la modification de la source. Primefaces actuellement ne l'ont pas.Essayez d'utiliser
{RowsPerPageDropdown} of {totalPage}