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
Aruna FigeroaSpainIvan Magalhaes PROPOSAL
James ButtJapanStephen Shaw PROPOSAL
Octavia MaletCanadaStephen Shaw PROPOSAL
Jones VocelkaAustraliaXuxue Feng RENEWAL
Smith GlickUnited KingdomXuxue Feng NEW
Maisha RulapaughCanadaAmy Elsner RENEWAL
Claire TollnerSpainAnna Fali NEGOTIATION
Johnson SergiBrazilIoni Bowcher PROPOSAL
Ricardo GauchoIndiaAnna Fali RENEWAL
Adams MorascaItalyIvan Magalhaes NEW
James ButtItalyIoni Bowcher QUALIFIED
Stacey MacleadGermanyBernardo Dominic QUALIFIED
Greenwood BologniaBrazilXuxue Feng RENEWAL
Izzy GarufiFranceStephen Shaw NEW
Francesco ShinkoCanadaXuxue Feng NEGOTIATION
Silvio SlusarskiAustraliaElwin Sharvill PROPOSAL
Ricardo GauchoItalyAsiya Javayant QUALIFIED
Emily WhobreyFranceAnna Fali NEW
Ivar PaprockiAustraliaIoni Bowcher NEGOTIATION
Emily WhobreyBrazilXuxue Feng RENEWAL
Costa DilliardCanadaBernardo Dominic UNQUALIFIED
Emily WhobreyUnited KingdomIoni Bowcher RENEWAL
Jefferson SchemmerItalyAnna Fali QUALIFIED
Cody SaylorsSpainAmy Elsner RENEWAL
Maria MarrierArgentinaStephen Shaw RENEWAL
Julie StensethCanadaAmy Elsner PROPOSAL
Jeanfrancois VenereJapanAmy Elsner PROPOSAL
James ButtSpainOnyama Limba NEW
Rodrigues CampainJapanBernardo Dominic QUALIFIED
Costa DilliardAustraliaIoni Bowcher PROPOSAL
Octavia MaletJapanElwin Sharvill UNQUALIFIED
Chavez BriddickIndiaAmy Elsner UNQUALIFIED
Wickens NestleBrazilOnyama Limba NEGOTIATION
Isabel BowleyBrazilXuxue Feng QUALIFIED
Aditya KuskoCanadaElwin Sharvill NEGOTIATION
David DarakjyUnited KingdomStephen Shaw NEW
Johnson SergiSpainElwin Sharvill UNQUALIFIED
Sinclair WaycottCanadaBernardo Dominic RENEWAL
Salvatore StockhamCanadaOnyama Limba PROPOSAL
Murillo MaletArgentinaAmy Elsner QUALIFIED
Arvin AlbaresItalyStephen Shaw NEGOTIATION
Cody SaylorsRussiaAsiya Javayant NEW
Francesco ShinkoSpainElwin Sharvill NEGOTIATION
Leon OldroydFranceAsiya Javayant RENEWAL
Mujtaba NickaIndiaAmy Elsner NEGOTIATION
Antonio CaudyItalyStephen Shaw RENEWAL
Misaki RoysterBrazilIoni Bowcher PROPOSAL
Costa DilliardItalyElwin Sharvill PROPOSAL
Leja CaldareraIndiaOnyama Limba NEGOTIATION
Johnson SergiIndiaOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues CampainArgentinaAnna Fali NEW
Sinclair WaycottSpainAnna Fali UNQUALIFIED
James ButtJapanAnna Fali NEGOTIATION
Faith GillianAustraliaOnyama Limba NEW
Nicolas IturbideAustraliaIoni Bowcher NEW
Ashley DoeArgentinaAnna Fali NEGOTIATION
Stacey MacleadGermanyElwin Sharvill RENEWAL
Juan WieserFranceIoni Bowcher NEGOTIATION
Chavez BriddickAustraliaAmy Elsner UNQUALIFIED
Alejandro PerinGermanyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainFrance2021-12-22Rangoni Of Florence PROPOSAL50Xuxue Feng
1001Octavia MaletCanada2022-01-09Chapman, Ross E Esq NEW8Elwin Sharvill
1002Misaki RoysterAustralia2021-12-30Chemel, James L Cpa RENEWAL43Elwin Sharvill
1003Aditya KuskoFrance2021-12-30Dorl, James J Esq QUALIFIED84Elwin Sharvill
1004Alejandro PerinJapan2022-01-01Rangoni Of Florence RENEWAL90Stephen Shaw
1005Leja CaldareraSpain2022-01-03Truhlar And Truhlar Attys QUALIFIED13Ivan Magalhaes
1006Tony FollerCanada2022-01-01Chapman, Ross E Esq NEGOTIATION45Elwin Sharvill
1007James ButtIndia2022-01-06Chanay, Jeffrey A Esq QUALIFIED18Xuxue Feng
1008Francesco ShinkoRussia2021-12-21King, Christopher A Esq NEGOTIATION76Ioni Bowcher
1009Silvio SlusarskiArgentina2022-01-16Printing Dimensions RENEWAL31Onyama Limba
1010Arvin AlbaresArgentina2022-01-08Feltz Printing Service UNQUALIFIED85Onyama Limba
1011Alejandro PerinUnited Kingdom2021-12-21Chapman, Ross E Esq PROPOSAL54Onyama Limba
1012Munro FerenczFrance2021-12-23Rangoni Of Florence NEW10Stephen Shaw
1013Antonio CaudyIndia2022-01-13Chanay, Jeffrey A Esq NEW59Asiya Javayant
1014Kadeem FlosiBrazil2022-01-11Chapman, Ross E Esq QUALIFIED49Ioni Bowcher
1015Rodrigues CampainSpain2022-01-12Benton, John B Jr RENEWAL36Ivan Magalhaes
1016Jeanfrancois VenereSpain2021-12-21Feltz Printing Service NEGOTIATION92Stephen Shaw
1017Mujtaba NickaSpain2021-12-23Feltz Printing Service NEGOTIATION76Ivan Magalhaes
1018Claire TollnerItaly2022-01-18Chanay, Jeffrey A Esq UNQUALIFIED99Asiya Javayant
1019Silvio SlusarskiBrazil2022-01-15Benton, John B Jr RENEWAL96Elwin Sharvill
1020Ivar PaprockiBrazil2022-01-16Chapman, Ross E Esq PROPOSAL28Amy Elsner
1021Jennifer AmigonRussia2021-12-21King, Christopher A Esq NEGOTIATION55Elwin Sharvill
1022Aika InouyeFrance2021-12-26Chemel, James L Cpa RENEWAL37Asiya Javayant
1023Ivar PaprockiGermany2021-12-21Buckley Miller Wright UNQUALIFIED66Anna Fali
1024Izzy GarufiIndia2022-01-16Chapman, Ross E Esq UNQUALIFIED85Ivan Magalhaes
1025Silvio SlusarskiSpain2022-01-09Printing Dimensions QUALIFIED26Bernardo Dominic
1026Rodrigues CampainSpain2022-01-13Dorl, James J Esq PROPOSAL5Stephen Shaw
1027Mayumi KolmetzAustralia2021-12-26Dorl, James J Esq RENEWAL41Bernardo Dominic
1028Leon OldroydSpain2022-01-10Morlong Associates NEGOTIATION32Anna Fali
1029Nicolas IturbideSpain2022-01-10Rangoni Of Florence NEW22Stephen Shaw
1030Misaki RoysterFrance2022-01-06Rousseaux, Michael Esq RENEWAL32Bernardo Dominic
1031Salvatore StockhamUnited Kingdom2021-12-30Chanay, Jeffrey A Esq UNQUALIFIED21Bernardo Dominic
1032Munro FerenczBrazil2021-12-24King, Christopher A Esq QUALIFIED89Bernardo Dominic
1033James ButtBrazil2021-12-29Rangoni Of Florence NEGOTIATION27Stephen Shaw
1034Salvatore StockhamJapan2022-01-10Rangoni Of Florence UNQUALIFIED55Asiya Javayant
1035Claire TollnerFrance2022-01-09Chemel, James L Cpa PROPOSAL3Onyama Limba
1036Isabel BowleySpain2022-01-04Truhlar And Truhlar Attys PROPOSAL39Anna Fali
1037Chavez BriddickSpain2022-01-12Buckley Miller Wright QUALIFIED15Stephen Shaw
1038Julie StensethFrance2022-01-16Rousseaux, Michael Esq PROPOSAL90Ivan Magalhaes
1039Juan WieserCanada2021-12-24Printing Dimensions RENEWAL5Ioni Bowcher
1040Ivar PaprockiUnited Kingdom2022-01-10Dorl, James J Esq PROPOSAL2Stephen Shaw
1041Darci PoquetteJapan2022-01-12Printing Dimensions QUALIFIED8Stephen Shaw
1042Jennifer AmigonCanada2021-12-31Feiner Bros UNQUALIFIED17Anna Fali
1043Murillo MaletBrazil2021-12-23Dorl, James J Esq PROPOSAL38Xuxue Feng
1044Munro FerenczFrance2021-12-27Dorl, James J Esq PROPOSAL71Stephen Shaw
1045Maria MarrierFrance2022-01-01Feltz Printing Service PROPOSAL2Bernardo Dominic
1046Ricardo GauchoRussia2021-12-30Chapman, Ross E Esq NEW78Onyama Limba
1047Alejandro PerinGermany2022-01-18Rangoni Of Florence NEW81Elwin Sharvill
1048Morrow RutaSpain2022-01-14Truhlar And Truhlar Attys PROPOSAL14Ioni Bowcher
1049Maria MarrierBrazil2022-01-07Rangoni Of Florence RENEWAL85Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Faith GillianIndiaAmy Elsner PROPOSAL
Faith GillianFranceBernardo Dominic RENEWAL
Arvin AlbaresRussiaIvan Magalhaes NEGOTIATION
Kadeem FlosiSpainAsiya Javayant RENEWAL
Claire TollnerRussiaXuxue Feng RENEWAL
Jones VocelkaSpainAmy Elsner NEW
Silvio SlusarskiRussiaAmy Elsner UNQUALIFIED
Arvin AlbaresRussiaXuxue Feng UNQUALIFIED
Nicolas IturbideIndiaElwin Sharvill PROPOSAL
Ivar PaprockiItalyIvan Magalhaes QUALIFIED
Ashley DoeItalyElwin Sharvill UNQUALIFIED
Misaki RoysterFranceOnyama Limba QUALIFIED
Faith GillianIndiaAsiya Javayant UNQUALIFIED
Leja CaldareraJapanStephen Shaw PROPOSAL
Maria MarrierGermanyOnyama Limba NEW
Alejandro PerinGermanyStephen Shaw NEW
David DarakjyItalyIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyIndiaAsiya Javayant NEGOTIATION
Juan WieserAustraliaOnyama Limba NEW
Misaki RoysterJapanAmy Elsner QUALIFIED
Ricardo GauchoIndiaXuxue Feng QUALIFIED
Francesco ShinkoArgentinaAnna Fali NEGOTIATION
Munro FerenczAustraliaOnyama Limba QUALIFIED
Adams MorascaIndiaAsiya Javayant UNQUALIFIED
Antonio CaudyItalyStephen Shaw NEW
Ricardo GauchoGermanyAnna Fali PROPOSAL
Costa DilliardArgentinaElwin Sharvill NEGOTIATION
Morrow RutaGermanyAmy Elsner NEGOTIATION
Alejandro PerinUnited KingdomBernardo Dominic UNQUALIFIED
Izzy GarufiItalyAsiya Javayant QUALIFIED
Jefferson SchemmerArgentinaIvan Magalhaes RENEWAL
Morrow RutaIndiaAmy Elsner NEGOTIATION
Wickens NestleRussiaElwin Sharvill NEGOTIATION
Salvatore StockhamSpainAsiya Javayant PROPOSAL
Ivar PaprockiFranceStephen Shaw PROPOSAL
Costa DilliardBrazilElwin Sharvill QUALIFIED
Antonio CaudyArgentinaIvan Magalhaes QUALIFIED
Izzy GarufiArgentinaStephen Shaw RENEWAL
Silvio SlusarskiUnited KingdomIvan Magalhaes RENEWAL
Kadeem FlosiRussiaOnyama Limba PROPOSAL
Chavez BriddickAustraliaStephen Shaw RENEWAL
Leon OldroydCanadaAnna Fali RENEWAL
Salvatore StockhamRussiaElwin Sharvill NEW
Juan WieserAustraliaIoni Bowcher UNQUALIFIED
Mayumi KolmetzGermanyOnyama Limba PROPOSAL
Emily WhobreyFranceIvan Magalhaes QUALIFIED
Mujtaba NickaBrazilIvan Magalhaes PROPOSAL
Jefferson SchemmerArgentinaBernardo Dominic PROPOSAL
Octavia MaletCanadaXuxue Feng NEGOTIATION
Izzy GarufiSpainAnna Fali UNQUALIFIED
Frozen Columns
Name
Murillo Malet
Clifford Rim
Ivar Paprocki
Chavez Briddick
Izzy Garufi
Jennifer Amigon
Morrow Ruta
Costa Dilliard
Faith Gillian
Alejandro Perin
Julie Stenseth
Faith Gillian
Maria Marrier
Adams Morasca
Aruna Figeroa
Munro Ferencz
Aruna Figeroa
Misaki Royster
Maisha Rulapaugh
Aditya Kusko
Arvin Albares
Leon Oldroyd
Francesco Shinko
Octavia Malet
Adams Morasca
Isabel Bowley
Leja Caldarera
Jefferson Schemmer
Mayumi Kolmetz
Francesco Shinko
Emily Whobrey
Julie Stenseth
Julie Stenseth
Francesco Shinko
Chavez Briddick
Costa Dilliard
Maria Marrier
Adams Morasca
Adams Morasca
Jones Vocelka
Claire Tollner
Isabel Bowley
Mujtaba Nicka
Mujtaba Nicka
Murillo Malet
Aika Inouye
Silvio Slusarski
Mayumi Kolmetz
Octavia Malet
Stacey Maclead
IdCountryDate
1000Australia2021-12-21
1001Canada2021-12-23
1002Russia2021-12-26
1003Australia2022-01-14
1004Canada2021-12-26
1005India2022-01-18
1006Spain2022-01-18
1007France2022-01-02
1008Germany2022-01-09
1009Australia2022-01-12
1010France2021-12-29
1011Argentina2022-01-14
1012Germany2022-01-11
1013Spain2022-01-18
1014Japan2022-01-09
1015Germany2021-12-22
1016Australia2022-01-17
1017Australia2022-01-10
1018Japan2022-01-13
1019United Kingdom2022-01-09
1020Canada2022-01-10
1021Brazil2022-01-02
1022Brazil2022-01-01
1023Japan2022-01-11
1024Japan2021-12-21
1025Australia2021-12-23
1026Argentina2022-01-09
1027Argentina2022-01-15
1028United Kingdom2022-01-09
1029United Kingdom2022-01-01
1030Germany2022-01-16
1031India2022-01-17
1032Germany2021-12-29
1033Argentina2021-12-31
1034Italy2021-12-27
1035Italy2022-01-17
1036United Kingdom2021-12-20
1037France2022-01-13
1038Italy2022-01-15
1039Germany2022-01-01
1040Brazil2021-12-27
1041France2021-12-27
1042Germany2021-12-26
1043Russia2022-01-17
1044Canada2022-01-07
1045France2021-12-25
1046Germany2022-01-12
1047Argentina2022-01-03
1048Argentina2022-01-18
1049Spain2021-12-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaGermanyXuxue Feng PROPOSAL
Faith GillianCanadaIoni Bowcher PROPOSAL
Salvatore StockhamJapanIvan Magalhaes QUALIFIED
Morrow RutaUnited KingdomAnna Fali RENEWAL
David DarakjyGermanyXuxue Feng PROPOSAL
Maisha RulapaughCanadaElwin Sharvill UNQUALIFIED
Arvin AlbaresBrazilAnna Fali NEGOTIATION
Adams MorascaIndiaBernardo Dominic QUALIFIED
Greenwood BologniaBrazilIvan Magalhaes NEGOTIATION
Johnson SergiIndiaElwin Sharvill QUALIFIED
Antonio CaudyIndiaAnna Fali NEW
Salvatore StockhamArgentinaAmy Elsner PROPOSAL
Sinclair WaycottJapanIvan Magalhaes RENEWAL
Jones VocelkaCanadaElwin Sharvill PROPOSAL
Arvin AlbaresIndiaStephen Shaw NEW
Juan WieserGermanyIvan Magalhaes RENEWAL
Nicolas IturbideCanadaAmy Elsner NEGOTIATION
Maria MarrierArgentinaStephen Shaw RENEWAL
Maria MarrierAustraliaIvan Magalhaes NEGOTIATION
Sinclair WaycottJapanAnna Fali NEW
Arvin AlbaresBrazilAmy Elsner NEGOTIATION
Leja CaldareraIndiaAsiya Javayant QUALIFIED
Aika InouyeJapanOnyama Limba NEW
Maria MarrierGermanyAnna Fali RENEWAL
Jefferson SchemmerSpainIvan Magalhaes UNQUALIFIED
Antonio CaudyArgentinaAsiya Javayant NEW
Smith GlickRussiaIvan Magalhaes NEW
Silvio SlusarskiSpainBernardo Dominic QUALIFIED
James ButtBrazilXuxue Feng UNQUALIFIED
Izzy GarufiIndiaStephen Shaw UNQUALIFIED
Morrow RutaJapanIoni Bowcher NEW
Tony FollerArgentinaAmy Elsner UNQUALIFIED
Cody SaylorsIndiaBernardo Dominic UNQUALIFIED
Cody SaylorsCanadaIvan Magalhaes QUALIFIED
Leja CaldareraCanadaXuxue Feng UNQUALIFIED
Clifford RimUnited KingdomIvan Magalhaes PROPOSAL
Morrow RutaGermanyAmy Elsner NEW
David DarakjyUnited KingdomAnna Fali NEGOTIATION
Faith GillianAustraliaStephen Shaw QUALIFIED
Clifford RimFranceAnna Fali QUALIFIED

<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: