Locale

Change the locale of the datepicker, schedule and client side validation messages.

Input Style

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

PrimeOne Design

Saga Saga
Vela Vela
Arya Arya

Premium Themes

Premium themes are only available exclusively for PrimeFaces Theme Designer subscribers and therefore not included in PrimeFaces core.

Bootstrap light blue and dark blue themes are also included in PrimeFaces 10.x builds for Elite subscribers.

bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

PREMIUM TEMPLATES

Create awesome applications in no time using the premium templates and impress your users.

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Izzy GarufiJapanElwin Sharvill PROPOSAL
Julie StensethCanadaBernardo Dominic NEGOTIATION
Ivar PaprockiItalyAsiya Javayant NEW
Ashley DoeGermanyAnna Fali RENEWAL
Tony FollerArgentinaBernardo Dominic QUALIFIED
Aditya KuskoBrazilAnna Fali UNQUALIFIED
Izzy GarufiItalyBernardo Dominic NEW
Maisha RulapaughIndiaElwin Sharvill UNQUALIFIED
Jones VocelkaSpainAsiya Javayant PROPOSAL
Emily WhobreyIndiaOnyama Limba NEGOTIATION
Francesco ShinkoFranceAnna Fali NEW
Kadeem FlosiArgentinaXuxue Feng RENEWAL
Rodrigues CampainRussiaAmy Elsner QUALIFIED
Deepesh ChuiRussiaOnyama Limba NEGOTIATION
Cody SaylorsJapanStephen Shaw NEW
Cody SaylorsGermanyStephen Shaw UNQUALIFIED
Adams MorascaAustraliaOnyama Limba NEGOTIATION
Octavia MaletGermanyBernardo Dominic PROPOSAL
Aruna FigeroaItalyOnyama Limba QUALIFIED
Stacey MacleadArgentinaOnyama Limba NEGOTIATION
Leon OldroydCanadaAnna Fali RENEWAL
Greenwood BologniaItalyStephen Shaw RENEWAL
Cody SaylorsCanadaIoni Bowcher NEW
Morrow RutaBrazilAnna Fali QUALIFIED
Costa DilliardJapanIvan Magalhaes UNQUALIFIED
Jennifer AmigonCanadaAnna Fali PROPOSAL
Deepesh ChuiArgentinaBernardo Dominic NEW
Deepesh ChuiIndiaXuxue Feng RENEWAL
Adams MorascaJapanIvan Magalhaes NEW
Adams MorascaArgentinaIvan Magalhaes NEGOTIATION
Salvatore StockhamBrazilAsiya Javayant RENEWAL
Aditya KuskoRussiaAnna Fali UNQUALIFIED
Octavia MaletCanadaIvan Magalhaes UNQUALIFIED
Darci PoquetteCanadaIvan Magalhaes RENEWAL
Leja CaldareraJapanXuxue Feng NEW
Misaki RoysterUnited KingdomAnna Fali PROPOSAL
Munro FerenczUnited KingdomAmy Elsner QUALIFIED
Tony FollerCanadaBernardo Dominic PROPOSAL
Alejandro PerinSpainElwin Sharvill QUALIFIED
Izzy GarufiFranceIvan Magalhaes PROPOSAL
Darci PoquetteFranceAnna Fali RENEWAL
Munro FerenczJapanAsiya Javayant QUALIFIED
Kaitlin OstroskyUnited KingdomOnyama Limba RENEWAL
Julie StensethFranceAmy Elsner NEW
Johnson SergiArgentinaAsiya Javayant RENEWAL
Aruna FigeroaJapanBernardo Dominic UNQUALIFIED
Silvio SlusarskiArgentinaAnna Fali QUALIFIED
Ashley DoeFranceStephen Shaw UNQUALIFIED
Cody SaylorsItalyOnyama Limba PROPOSAL
Aditya KuskoIndiaAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois VenereFranceOnyama Limba NEW
Rodrigues CampainBrazilOnyama Limba NEW
Maisha RulapaughAustraliaOnyama Limba QUALIFIED
Johnson SergiJapanElwin Sharvill NEW
Ivar PaprockiFranceBernardo Dominic QUALIFIED
Maria MarrierCanadaAnna Fali RENEWAL
Claire TollnerCanadaElwin Sharvill PROPOSAL
Wickens NestleFranceOnyama Limba NEGOTIATION
Mayumi KolmetzRussiaAmy Elsner NEW
Emily WhobreyRussiaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyCanada2021-09-22Feltz Printing Service PROPOSAL0Onyama Limba
1001Maria MarrierGermany2021-10-09Chanay, Jeffrey A Esq NEW94Onyama Limba
1002Johnson SergiArgentina2021-10-03Commercial Press UNQUALIFIED72Onyama Limba
1003Jennifer AmigonArgentina2021-10-05Truhlar And Truhlar Attys PROPOSAL61Elwin Sharvill
1004Kaitlin OstroskyGermany2021-09-18Commercial Press NEW72Onyama Limba
1005Maria MarrierCanada2021-09-28Rangoni Of Florence RENEWAL91Stephen Shaw
1006Jones VocelkaItaly2021-10-13King, Christopher A Esq QUALIFIED99Asiya Javayant
1007Greenwood BologniaGermany2021-10-16Commercial Press RENEWAL71Anna Fali
1008Kaitlin OstroskyJapan2021-10-04Chemel, James L Cpa QUALIFIED84Anna Fali
1009Murillo MaletSpain2021-09-19Printing Dimensions QUALIFIED8Xuxue Feng
1010Antonio CaudyGermany2021-10-10Chemel, James L Cpa RENEWAL55Stephen Shaw
1011Julie StensethRussia2021-10-06Chemel, James L Cpa QUALIFIED65Onyama Limba
1012Jones VocelkaAustralia2021-10-12Truhlar And Truhlar Attys RENEWAL29Anna Fali
1013Salvatore StockhamCanada2021-09-30Buckley Miller Wright NEW2Onyama Limba
1014Octavia MaletJapan2021-10-06Truhlar And Truhlar Attys QUALIFIED48Onyama Limba
1015Jefferson SchemmerFrance2021-10-11Buckley Miller Wright PROPOSAL87Xuxue Feng
1016Wickens NestleFrance2021-09-25Feltz Printing Service NEGOTIATION20Amy Elsner
1017Aruna FigeroaArgentina2021-10-01Truhlar And Truhlar Attys NEW69Stephen Shaw
1018Leon OldroydJapan2021-10-13Rousseaux, Michael Esq UNQUALIFIED1Elwin Sharvill
1019Munro FerenczRussia2021-10-14Rangoni Of Florence RENEWAL65Asiya Javayant
1020Maisha RulapaughCanada2021-09-30Buckley Miller Wright RENEWAL91Ioni Bowcher
1021Munro FerenczRussia2021-10-07Truhlar And Truhlar Attys RENEWAL29Elwin Sharvill
1022Jones VocelkaUnited Kingdom2021-09-18Dorl, James J Esq RENEWAL93Stephen Shaw
1023Costa DilliardAustralia2021-09-18Chemel, James L Cpa PROPOSAL18Ioni Bowcher
1024Arvin AlbaresGermany2021-10-17Chanay, Jeffrey A Esq PROPOSAL53Xuxue Feng
1025Costa DilliardItaly2021-10-06Buckley Miller Wright NEW44Ivan Magalhaes
1026Emily WhobreyFrance2021-09-27Chapman, Ross E Esq RENEWAL33Ioni Bowcher
1027Morrow RutaRussia2021-09-19Rangoni Of Florence RENEWAL3Amy Elsner
1028Ashley DoeSpain2021-10-04King, Christopher A Esq PROPOSAL9Stephen Shaw
1029Aditya KuskoFrance2021-10-16Benton, John B Jr NEW30Bernardo Dominic
1030Kaitlin OstroskyGermany2021-10-13Morlong Associates NEW57Onyama Limba
1031Faith GillianJapan2021-09-21Chapman, Ross E Esq UNQUALIFIED43Asiya Javayant
1032Chavez BriddickBrazil2021-09-28Rousseaux, Michael Esq PROPOSAL53Anna Fali
1033Greenwood BologniaGermany2021-10-11Feltz Printing Service RENEWAL88Ioni Bowcher
1034Murillo MaletJapan2021-10-04Morlong Associates NEW9Stephen Shaw
1035Izzy GarufiAustralia2021-10-03Rangoni Of Florence NEW71Amy Elsner
1036Alejandro PerinBrazil2021-10-08Chapman, Ross E Esq NEGOTIATION27Elwin Sharvill
1037Tony FollerGermany2021-10-09Commercial Press RENEWAL39Elwin Sharvill
1038Antonio CaudyRussia2021-10-01Benton, John B Jr PROPOSAL48Ivan Magalhaes
1039Octavia MaletSpain2021-09-19Morlong Associates RENEWAL61Ivan Magalhaes
1040Mayumi KolmetzGermany2021-10-02Morlong Associates RENEWAL46Onyama Limba
1041Kaitlin OstroskyRussia2021-10-11Chemel, James L Cpa PROPOSAL65Onyama Limba
1042Julie StensethRussia2021-09-22Feiner Bros QUALIFIED94Stephen Shaw
1043Nicolas IturbideUnited Kingdom2021-10-08Benton, John B Jr UNQUALIFIED61Asiya Javayant
1044Costa DilliardItaly2021-09-23Chanay, Jeffrey A Esq PROPOSAL29Ivan Magalhaes
1045Juan WieserBrazil2021-10-05Truhlar And Truhlar Attys RENEWAL80Stephen Shaw
1046Jones VocelkaFrance2021-10-17King, Christopher A Esq PROPOSAL0Amy Elsner
1047Nicolas IturbideAustralia2021-10-16Rangoni Of Florence NEW39Asiya Javayant
1048Smith GlickAustralia2021-10-01Buckley Miller Wright RENEWAL35Onyama Limba
1049Jeanfrancois VenereJapan2021-09-19Rousseaux, Michael Esq NEGOTIATION34Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aika InouyeJapanIvan Magalhaes UNQUALIFIED
Kadeem FlosiBrazilOnyama Limba RENEWAL
Faith GillianBrazilAmy Elsner QUALIFIED
Munro FerenczJapanAsiya Javayant NEW
Chavez BriddickItalyElwin Sharvill NEGOTIATION
Jeanfrancois VenereSpainIoni Bowcher PROPOSAL
Greenwood BologniaCanadaAmy Elsner RENEWAL
Francesco ShinkoIndiaIvan Magalhaes NEGOTIATION
Juan WieserCanadaAsiya Javayant NEGOTIATION
Wickens NestleRussiaStephen Shaw NEW
Salvatore StockhamItalyXuxue Feng NEGOTIATION
Aruna FigeroaIndiaBernardo Dominic QUALIFIED
Mujtaba NickaAustraliaStephen Shaw PROPOSAL
Octavia MaletSpainBernardo Dominic NEW
Murillo MaletUnited KingdomAmy Elsner RENEWAL
Cody SaylorsFranceStephen Shaw RENEWAL
Deepesh ChuiAustraliaAsiya Javayant PROPOSAL
Wickens NestleArgentinaAnna Fali PROPOSAL
Munro FerenczCanadaStephen Shaw UNQUALIFIED
Chavez BriddickItalyAsiya Javayant PROPOSAL
Ricardo GauchoRussiaIoni Bowcher UNQUALIFIED
Misaki RoysterGermanyIoni Bowcher QUALIFIED
Darci PoquetteItalyAsiya Javayant QUALIFIED
Izzy GarufiJapanAsiya Javayant NEW
Darci PoquetteGermanyAnna Fali NEW
Maisha RulapaughItalyBernardo Dominic QUALIFIED
Kadeem FlosiSpainIoni Bowcher UNQUALIFIED
Tony FollerSpainOnyama Limba QUALIFIED
Chavez BriddickGermanyAsiya Javayant NEW
Arvin AlbaresArgentinaElwin Sharvill NEGOTIATION
Jones VocelkaSpainXuxue Feng NEGOTIATION
Tony FollerUnited KingdomIoni Bowcher RENEWAL
Johnson SergiBrazilStephen Shaw NEGOTIATION
Aika InouyeUnited KingdomStephen Shaw UNQUALIFIED
Isabel BowleyIndiaStephen Shaw PROPOSAL
Stacey MacleadArgentinaIoni Bowcher QUALIFIED
Leon OldroydCanadaElwin Sharvill QUALIFIED
David DarakjyIndiaBernardo Dominic UNQUALIFIED
Rodrigues CampainRussiaAsiya Javayant PROPOSAL
Mujtaba NickaBrazilAmy Elsner NEW
Maisha RulapaughJapanAnna Fali QUALIFIED
Greenwood BologniaUnited KingdomIoni Bowcher UNQUALIFIED
Jones VocelkaArgentinaIoni Bowcher QUALIFIED
Maria MarrierAustraliaAnna Fali RENEWAL
Aditya KuskoCanadaAmy Elsner PROPOSAL
James ButtRussiaXuxue Feng QUALIFIED
Kadeem FlosiCanadaIvan Magalhaes UNQUALIFIED
Leon OldroydIndiaXuxue Feng QUALIFIED
Nicolas IturbideGermanyElwin Sharvill QUALIFIED
Claire TollnerUnited KingdomIvan Magalhaes QUALIFIED
Frozen Columns
Name
Mujtaba Nicka
Nicolas Iturbide
Claire Tollner
Aika Inouye
Clifford Rim
Jeanfrancois Venere
Octavia Malet
Leja Caldarera
Mayumi Kolmetz
Jones Vocelka
Ashley Doe
Jeanfrancois Venere
Alejandro Perin
Tony Foller
Julie Stenseth
Deepesh Chui
Jefferson Schemmer
David Darakjy
Octavia Malet
Octavia Malet
Ricardo Gaucho
David Darakjy
Jeanfrancois Venere
Faith Gillian
Mujtaba Nicka
Antonio Caudy
Leon Oldroyd
Ivar Paprocki
Leja Caldarera
Jones Vocelka
Ashley Doe
Clifford Rim
Arvin Albares
Morrow Ruta
Wickens Nestle
Ricardo Gaucho
Juan Wieser
Faith Gillian
Morrow Ruta
Antonio Caudy
Silvio Slusarski
Stacey Maclead
Alejandro Perin
Maria Marrier
Ashley Doe
Maisha Rulapaugh
Ivar Paprocki
Misaki Royster
Cody Saylors
Antonio Caudy
IdCountryDate
1000Brazil2021-10-09
1001Italy2021-10-15
1002Spain2021-10-05
1003Argentina2021-10-13
1004Germany2021-09-23
1005Germany2021-10-16
1006Germany2021-09-20
1007Spain2021-09-18
1008Russia2021-09-24
1009Japan2021-10-05
1010Spain2021-10-09
1011Argentina2021-10-14
1012Brazil2021-09-22
1013France2021-10-06
1014Russia2021-10-10
1015India2021-10-12
1016Spain2021-10-06
1017Russia2021-10-12
1018United Kingdom2021-10-07
1019France2021-09-26
1020Canada2021-09-24
1021Argentina2021-10-03
1022Italy2021-10-08
1023Australia2021-09-28
1024United Kingdom2021-10-11
1025Russia2021-10-09
1026Japan2021-10-14
1027Italy2021-10-03
1028Argentina2021-10-10
1029Argentina2021-09-18
1030India2021-09-28
1031Brazil2021-10-04
1032Russia2021-09-21
1033India2021-09-24
1034Canada2021-10-04
1035Italy2021-10-03
1036Canada2021-10-13
1037Spain2021-10-05
1038Argentina2021-10-02
1039Russia2021-09-26
1040Spain2021-09-18
1041Australia2021-09-26
1042Brazil2021-10-04
1043Argentina2021-10-04
1044Japan2021-10-13
1045Argentina2021-09-29
1046Australia2021-10-17
1047United Kingdom2021-10-13
1048Australia2021-10-07
1049Australia2021-09-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
No records found.

<style type="text/css">
    .ui-datatable-frozenlayout-left {
        width: 20%;
    }

    .ui-datatable-frozenlayout-right {
        width: 80%;
    }
</style>


<h:form>
    <div class="card">
        <h5 style="margin-top:0">Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers1}" scrollable="true" scrollHeight="250">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers2}" scrollable="true" scrollWidth="600">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Horizontal and Vertical</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers3}" scrollable="true" scrollWidth="50%" scrollHeight="250">
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
            <p:column headerText="Company" footerText="Company">
                <h:outputText value="#{customer.company}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
            <p:column headerText="Activity" footerText="Activity">
                <h:outputText value="#{customer.activity}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers4}" scrollable="true" scrollHeight="250"
                     frozenRows="2">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Frozen Columns</h5>
        <p:dataTable var="customer" value="#{dtScrollView.customers5}" scrollable="true" scrollHeight="250"
                     scrollWidth="300" frozenColumns="1">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Id" footerText="Id">
                <h:outputText value="#{customer.id}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Date" footerText="Date">
                <h:outputText value="#{customer.date}"/>
            </p:column>
        </p:dataTable>
    </div>

    <div class="card">
        <h5>Virtual Scrolling - 20000 Rows</h5>
        <p:dataTable var="customer" value="#{dtScrollView.lazyModel}" scrollRows="20" scrollable="true"
                     virtualScroll="true" scrollHeight="200" rows="40" style="margin-bottom:0">
            <p:column headerText="Name" footerText="Name">
                <h:outputText value="#{customer.name}"/>
            </p:column>
            <p:column headerText="Country" footerText="Country">
                <h:outputText value="#{customer.country}"/>
            </p:column>
            <p:column headerText="Representative" footerText="Representative">
                <h:outputText value="#{customer.representative.name}"/>
            </p:column>
            <p:column headerText="Status" footerText="Status">
                <span class="customer-badge status-#{customer.status.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>

Session expired

Reloading page

Message:
StackTrace: