Die PrimeFaces DataTable Komponente ist eine erweiterte Version der Standard-Datatable von JSF. Ein nettes Feature ist es, dass die Leiste für den Paginator (automatischer Seitenumbruch) angepasst werden kann.

Dies kann über das Attribut „paginatorTemplate“ erfolgen:

Beispiel:

<p:dataTable var="a" value="#{tableBean.liste}"  
                 paginator="true" rows="10"  
                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" >

...
...
</p:dataTable>

Ergebnis:


Showcase: DataTable – Pagination

Jedoch stellte sich die Frage wie der Tag „{CurrentPageReport}“ angepasst werden kann. Notwendig wurde dies, da trotz deutscher Spracheinstellung (Locale de_DE) der Text „(1 of 5)“ auf englisch angezeigt wurde.

Realisiert werden kann dies über ein zusätzliches Attribut der DataTable nämlich „currentPageReportTemplate“.
Damit kann der komplette Ausgabetext des CurrenPageReport-Attributs angepasst werden.

currentPageReportTemplate="(Eintrag: {startRecord} - {endRecord} von {totalRecords}, Seite: {currentPage} von {totalPages})"

Ergebnis:


Diese Einstellung kann auch aus dem Messages-Properties ResourceBundle ausgelesen werden, um je nach Spracheinstellung eine passende Anzeige zu erhalten.

messages.properties

datatbl_pagTmpl={CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}

datatbl_pagRepTmpl=(Eintrag: {startRecord} - {endRecord} von {totalRecords}, Seite: {currentPage} von {totalPages})

Facelet

<p:dataTable var="a" value="#{tableBean.liste}"  
             paginator="true" rows="10"  
             paginatorTemplate="#{msg['datatbl_pagTmpl']}"
             currentPageReportTemplate="#{msg['datatbl_pagRepTmpl']}">

...
...
</p:dataTable>
PrimeFaces p:datatable {CurrentPageReport} im Paginator-Template anpassen

4 Gedanken zu „PrimeFaces p:datatable {CurrentPageReport} im Paginator-Template anpassen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.