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.

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
Smith GlickAustraliaStephen Shaw NEGOTIATION
Wickens NestleRussiaStephen Shaw RENEWAL
Ricardo GauchoFranceAsiya Javayant UNQUALIFIED
Claire TollnerSpainAnna Fali QUALIFIED
Jefferson SchemmerIndiaElwin Sharvill PROPOSAL
Deepesh ChuiUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson SchemmerBrazilAnna Fali RENEWAL
Cody SaylorsAustraliaAmy Elsner NEW
Claire TollnerArgentinaElwin Sharvill NEW
Jefferson SchemmerFranceXuxue Feng PROPOSAL
James ButtAustraliaAmy Elsner UNQUALIFIED
Leja CaldareraFranceAsiya Javayant NEGOTIATION
Nicolas IturbideCanadaElwin Sharvill NEGOTIATION
Chavez BriddickBrazilXuxue Feng NEGOTIATION
Nicolas IturbideIndiaAnna Fali NEW
Aruna FigeroaUnited KingdomStephen Shaw NEW
Cody SaylorsItalyElwin Sharvill UNQUALIFIED
Francesco ShinkoGermanyIvan Magalhaes PROPOSAL
Chavez BriddickFranceStephen Shaw RENEWAL
Faith GillianItalyIoni Bowcher UNQUALIFIED
Murillo MaletArgentinaStephen Shaw QUALIFIED
Misaki RoysterItalyIvan Magalhaes RENEWAL
Mujtaba NickaArgentinaElwin Sharvill QUALIFIED
Nicolas IturbideItalyAmy Elsner NEGOTIATION
Stacey MacleadFranceOnyama Limba PROPOSAL
Silvio SlusarskiSpainOnyama Limba QUALIFIED
Mujtaba NickaBrazilAnna Fali QUALIFIED
Jeanfrancois VenereArgentinaAsiya Javayant QUALIFIED
Juan WieserUnited KingdomAmy Elsner PROPOSAL
Mujtaba NickaGermanyBernardo Dominic NEGOTIATION
Salvatore StockhamBrazilXuxue Feng PROPOSAL
Murillo MaletItalyIvan Magalhaes NEGOTIATION
Johnson SergiUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro PerinFranceIvan Magalhaes RENEWAL
Ricardo GauchoCanadaIoni Bowcher QUALIFIED
Munro FerenczGermanyAnna Fali QUALIFIED
Misaki RoysterGermanyAnna Fali NEW
Maisha RulapaughJapanIvan Magalhaes UNQUALIFIED
Mayumi KolmetzFranceAsiya Javayant QUALIFIED
Izzy GarufiSpainAmy Elsner NEW
Claire TollnerSpainAsiya Javayant RENEWAL
Mayumi KolmetzUnited KingdomAsiya Javayant NEGOTIATION
Leon OldroydUnited KingdomElwin Sharvill PROPOSAL
Cody SaylorsFranceIvan Magalhaes QUALIFIED
Adams MorascaSpainAnna Fali NEGOTIATION
Sinclair WaycottBrazilIoni Bowcher RENEWAL
Kaitlin OstroskyFranceBernardo Dominic NEW
Misaki RoysterBrazilElwin Sharvill QUALIFIED
Ashley DoeItalyAmy Elsner NEGOTIATION
Octavia MaletArgentinaAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Aika InouyeFranceOnyama Limba RENEWAL
Maisha RulapaughArgentinaStephen Shaw UNQUALIFIED
Cody SaylorsBrazilStephen Shaw RENEWAL
Wickens NestleIndiaOnyama Limba RENEWAL
Johnson SergiArgentinaBernardo Dominic PROPOSAL
Johnson SergiBrazilOnyama Limba NEGOTIATION
Munro FerenczSpainAnna Fali RENEWAL
Ricardo GauchoBrazilIvan Magalhaes NEGOTIATION
Emily WhobreyIndiaBernardo Dominic QUALIFIED
Jones VocelkaFranceBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily WhobreyCanada2021-04-14King, Christopher A Esq PROPOSAL5Anna Fali
1001Jeanfrancois VenereItaly2021-04-13Feiner Bros PROPOSAL25Ioni Bowcher
1002Aruna FigeroaRussia2021-04-12Printing Dimensions UNQUALIFIED68Ivan Magalhaes
1003Leja CaldareraRussia2021-04-20King, Christopher A Esq UNQUALIFIED78Amy Elsner
1004Ivar PaprockiSpain2021-04-02Rangoni Of Florence QUALIFIED9Onyama Limba
1005Francesco ShinkoSpain2021-04-17Printing Dimensions UNQUALIFIED8Amy Elsner
1006Izzy GarufiAustralia2021-04-09Buckley Miller Wright UNQUALIFIED23Ioni Bowcher
1007Morrow RutaAustralia2021-03-29Printing Dimensions RENEWAL26Xuxue Feng
1008Antonio CaudyBrazil2021-04-17Chanay, Jeffrey A Esq QUALIFIED36Xuxue Feng
1009Jefferson SchemmerItaly2021-04-08Morlong Associates PROPOSAL62Amy Elsner
1010Faith GillianAustralia2021-04-10King, Christopher A Esq NEGOTIATION30Stephen Shaw
1011Greenwood BologniaItaly2021-03-30Chapman, Ross E Esq RENEWAL1Bernardo Dominic
1012Maria MarrierAustralia2021-04-10Feltz Printing Service QUALIFIED34Bernardo Dominic
1013Costa DilliardIndia2021-04-06Buckley Miller Wright PROPOSAL98Xuxue Feng
1014Darci PoquetteSpain2021-04-11Dorl, James J Esq QUALIFIED82Bernardo Dominic
1015Wickens NestleAustralia2021-04-15Benton, John B Jr NEW12Ivan Magalhaes
1016David DarakjyArgentina2021-04-06Rousseaux, Michael Esq RENEWAL35Elwin Sharvill
1017Isabel BowleyCanada2021-04-03Buckley Miller Wright QUALIFIED42Onyama Limba
1018Jeanfrancois VenereBrazil2021-04-01Buckley Miller Wright NEW90Xuxue Feng
1019Isabel BowleyFrance2021-04-12Benton, John B Jr RENEWAL54Anna Fali
1020Tony FollerItaly2021-03-29Morlong Associates QUALIFIED16Amy Elsner
1021Jennifer AmigonUnited Kingdom2021-04-03Chemel, James L Cpa RENEWAL21Ioni Bowcher
1022Ashley DoeGermany2021-04-01Feltz Printing Service QUALIFIED16Ivan Magalhaes
1023Silvio SlusarskiItaly2021-04-12Chanay, Jeffrey A Esq RENEWAL58Onyama Limba
1024Chavez BriddickUnited Kingdom2021-04-07Chemel, James L Cpa PROPOSAL45Asiya Javayant
1025Isabel BowleyGermany2021-03-29Morlong Associates PROPOSAL33Elwin Sharvill
1026Leja CaldareraAustralia2021-04-16Morlong Associates UNQUALIFIED94Elwin Sharvill
1027Murillo MaletArgentina2021-04-17Morlong Associates PROPOSAL10Amy Elsner
1028Darci PoquetteBrazil2021-03-30Benton, John B Jr RENEWAL88Onyama Limba
1029Antonio CaudyArgentina2021-04-06Chapman, Ross E Esq RENEWAL73Ioni Bowcher
1030Misaki RoysterIndia2021-03-23Rousseaux, Michael Esq RENEWAL88Onyama Limba
1031Alejandro PerinFrance2021-04-10Morlong Associates NEGOTIATION21Ioni Bowcher
1032Mayumi KolmetzSpain2021-04-08Commercial Press NEW90Stephen Shaw
1033Arvin AlbaresGermany2021-04-10Buckley Miller Wright NEW88Bernardo Dominic
1034Kaitlin OstroskyRussia2021-04-15Chapman, Ross E Esq RENEWAL94Ivan Magalhaes
1035Silvio SlusarskiRussia2021-04-04Commercial Press NEGOTIATION81Amy Elsner
1036Jennifer AmigonCanada2021-04-18Rousseaux, Michael Esq UNQUALIFIED91Elwin Sharvill
1037Kaitlin OstroskyCanada2021-04-10Truhlar And Truhlar Attys UNQUALIFIED41Stephen Shaw
1038Jefferson SchemmerIndia2021-03-27Feltz Printing Service RENEWAL49Stephen Shaw
1039Jones VocelkaRussia2021-04-06Buckley Miller Wright NEW57Bernardo Dominic
1040Smith GlickArgentina2021-03-29Dorl, James J Esq QUALIFIED96Stephen Shaw
1041Clifford RimGermany2021-03-31Benton, John B Jr QUALIFIED77Bernardo Dominic
1042Faith GillianAustralia2021-04-06Rangoni Of Florence UNQUALIFIED12Amy Elsner
1043Wickens NestleItaly2021-03-31Truhlar And Truhlar Attys NEW82Anna Fali
1044David DarakjyCanada2021-03-30Truhlar And Truhlar Attys QUALIFIED41Elwin Sharvill
1045Munro FerenczBrazil2021-04-10Chanay, Jeffrey A Esq QUALIFIED93Ioni Bowcher
1046Kaitlin OstroskyGermany2021-04-10Feiner Bros PROPOSAL34Asiya Javayant
1047Kadeem FlosiJapan2021-04-17Buckley Miller Wright NEGOTIATION75Asiya Javayant
1048Rodrigues CampainGermany2021-04-04Chemel, James L Cpa NEW14Stephen Shaw
1049Claire TollnerIndia2021-04-15Chanay, Jeffrey A Esq PROPOSAL34Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Leja CaldareraCanadaOnyama Limba NEGOTIATION
Izzy GarufiFranceIoni Bowcher UNQUALIFIED
Munro FerenczCanadaOnyama Limba PROPOSAL
Ashley DoeArgentinaStephen Shaw UNQUALIFIED
Adams MorascaItalyAnna Fali RENEWAL
Costa DilliardFranceStephen Shaw NEGOTIATION
Rodrigues CampainIndiaIvan Magalhaes NEGOTIATION
Isabel BowleyBrazilIoni Bowcher UNQUALIFIED
Aruna FigeroaBrazilIvan Magalhaes RENEWAL
David DarakjySpainBernardo Dominic QUALIFIED
Darci PoquetteFranceAnna Fali QUALIFIED
Izzy GarufiIndiaStephen Shaw NEGOTIATION
Francesco ShinkoSpainAnna Fali UNQUALIFIED
Julie StensethUnited KingdomAsiya Javayant RENEWAL
Mayumi KolmetzAustraliaAmy Elsner PROPOSAL
Greenwood BologniaGermanyIvan Magalhaes RENEWAL
Isabel BowleyRussiaIvan Magalhaes NEGOTIATION
Ivar PaprockiUnited KingdomBernardo Dominic PROPOSAL
Tony FollerGermanyAmy Elsner QUALIFIED
Emily WhobreyFranceAnna Fali RENEWAL
Chavez BriddickFranceStephen Shaw PROPOSAL
Jennifer AmigonAustraliaAnna Fali QUALIFIED
Kaitlin OstroskyJapanStephen Shaw RENEWAL
Julie StensethRussiaIoni Bowcher UNQUALIFIED
Jeanfrancois VenereSpainIvan Magalhaes UNQUALIFIED
Smith GlickFranceAnna Fali QUALIFIED
Jones VocelkaAustraliaAsiya Javayant UNQUALIFIED
Alejandro PerinBrazilAmy Elsner NEW
Maria MarrierUnited KingdomAmy Elsner PROPOSAL
Misaki RoysterIndiaOnyama Limba NEGOTIATION
Sinclair WaycottGermanyBernardo Dominic NEW
Stacey MacleadCanadaIoni Bowcher UNQUALIFIED
Arvin AlbaresFranceStephen Shaw QUALIFIED
Wickens NestleItalyElwin Sharvill QUALIFIED
Aditya KuskoGermanyIoni Bowcher PROPOSAL
Deepesh ChuiGermanyAsiya Javayant NEGOTIATION
Jefferson SchemmerUnited KingdomBernardo Dominic PROPOSAL
Ashley DoeRussiaOnyama Limba PROPOSAL
Smith GlickFranceBernardo Dominic NEGOTIATION
Maria MarrierIndiaAnna Fali NEGOTIATION
Sinclair WaycottCanadaAmy Elsner NEW
Aruna FigeroaBrazilOnyama Limba PROPOSAL
Ricardo GauchoSpainXuxue Feng RENEWAL
Chavez BriddickSpainOnyama Limba PROPOSAL
Maria MarrierIndiaIvan Magalhaes NEW
Ashley DoeGermanyStephen Shaw RENEWAL
Stacey MacleadIndiaStephen Shaw NEGOTIATION
Munro FerenczIndiaXuxue Feng RENEWAL
Murillo MaletItalyBernardo Dominic NEGOTIATION
Cody SaylorsRussiaIoni Bowcher RENEWAL
Frozen Columns
Name
David Darakjy
Kaitlin Ostrosky
Ashley Doe
Aditya Kusko
Julie Stenseth
Munro Ferencz
Leja Caldarera
Mayumi Kolmetz
Jennifer Amigon
Stacey Maclead
Costa Dilliard
Smith Glick
Izzy Garufi
Antonio Caudy
Smith Glick
Aruna Figeroa
David Darakjy
Alejandro Perin
Antonio Caudy
Rodrigues Campain
Munro Ferencz
Maria Marrier
Adams Morasca
Jeanfrancois Venere
Aditya Kusko
Aditya Kusko
Leja Caldarera
Claire Tollner
Jones Vocelka
Mujtaba Nicka
Morrow Ruta
Arvin Albares
Murillo Malet
Murillo Malet
Leja Caldarera
Deepesh Chui
Claire Tollner
Jefferson Schemmer
Costa Dilliard
Johnson Sergi
Munro Ferencz
Greenwood Bolognia
Kaitlin Ostrosky
Alejandro Perin
Ricardo Gaucho
Silvio Slusarski
Silvio Slusarski
Isabel Bowley
Alejandro Perin
Jefferson Schemmer
IdCountryDate
1000United Kingdom2021-04-15
1001Spain2021-04-11
1002Australia2021-04-07
1003Canada2021-04-14
1004France2021-03-29
1005Japan2021-03-29
1006France2021-04-11
1007Argentina2021-03-23
1008France2021-04-11
1009Canada2021-03-26
1010Canada2021-04-18
1011United Kingdom2021-04-02
1012Argentina2021-04-01
1013Russia2021-04-16
1014Australia2021-03-24
1015Italy2021-04-17
1016Brazil2021-03-31
1017Italy2021-03-29
1018France2021-04-05
1019India2021-03-24
1020United Kingdom2021-04-02
1021Russia2021-04-14
1022Australia2021-04-20
1023Argentina2021-03-22
1024Brazil2021-04-13
1025Spain2021-04-10
1026Australia2021-04-14
1027Canada2021-04-09
1028Argentina2021-04-16
1029Italy2021-04-16
1030Australia2021-04-18
1031France2021-03-24
1032Brazil2021-04-12
1033Spain2021-04-16
1034India2021-04-08
1035India2021-04-02
1036Canada2021-04-09
1037Australia2021-04-06
1038Argentina2021-04-11
1039Russia2021-04-04
1040Russia2021-04-14
1041Spain2021-04-02
1042Canada2021-04-08
1043Australia2021-04-14
1044Germany2021-04-12
1045Spain2021-04-15
1046Brazil2021-04-14
1047Russia2021-03-22
1048India2021-04-06
1049United Kingdom2021-03-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzJapanBernardo Dominic RENEWAL
Jennifer AmigonCanadaXuxue Feng RENEWAL
Chavez BriddickCanadaAnna Fali RENEWAL
Ashley DoeFranceOnyama Limba NEW
Octavia MaletRussiaAsiya Javayant NEGOTIATION
Alejandro PerinIndiaBernardo Dominic NEW
Darci PoquetteItalyOnyama Limba QUALIFIED
Silvio SlusarskiGermanyIvan Magalhaes UNQUALIFIED
Emily WhobreyFranceStephen Shaw RENEWAL
Costa DilliardBrazilIoni Bowcher PROPOSAL
Deepesh ChuiAustraliaAmy Elsner NEW
Darci PoquetteGermanyStephen Shaw NEW
Francesco ShinkoCanadaIvan Magalhaes QUALIFIED
Salvatore StockhamItalyXuxue Feng UNQUALIFIED
Deepesh ChuiJapanAsiya Javayant NEW
Misaki RoysterFranceOnyama Limba RENEWAL
Juan WieserUnited KingdomIoni Bowcher UNQUALIFIED
Morrow RutaCanadaStephen Shaw PROPOSAL
David DarakjyGermanyBernardo Dominic NEW
Nicolas IturbideIndiaBernardo Dominic PROPOSAL
Alejandro PerinItalyStephen Shaw NEW
Maisha RulapaughAustraliaIvan Magalhaes NEW
Jeanfrancois VenereUnited KingdomStephen Shaw NEGOTIATION
Costa DilliardCanadaAnna Fali UNQUALIFIED
Francesco ShinkoArgentinaOnyama Limba RENEWAL
Octavia MaletItalyIoni Bowcher PROPOSAL
Silvio SlusarskiFranceXuxue Feng UNQUALIFIED
Wickens NestleSpainAsiya Javayant NEW
Costa DilliardIndiaAnna Fali QUALIFIED
Francesco ShinkoRussiaBernardo Dominic NEGOTIATION
Julie StensethRussiaIvan Magalhaes UNQUALIFIED
Kadeem FlosiBrazilOnyama Limba NEW
Aika InouyeItalyStephen Shaw PROPOSAL
Kadeem FlosiCanadaStephen Shaw NEGOTIATION
Adams MorascaSpainAmy Elsner PROPOSAL
Jennifer AmigonJapanIoni Bowcher NEW
David DarakjyGermanyStephen Shaw PROPOSAL
Aruna FigeroaFranceBernardo Dominic QUALIFIED
Mayumi KolmetzItalyAmy Elsner UNQUALIFIED
Mujtaba NickaRussiaElwin Sharvill UNQUALIFIED

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