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
Aika InouyeIndiaIoni Bowcher NEGOTIATION
Kaitlin OstroskyUnited KingdomElwin Sharvill QUALIFIED
Clifford RimFranceAnna Fali NEW
Francesco ShinkoBrazilIoni Bowcher UNQUALIFIED
Silvio SlusarskiCanadaXuxue Feng NEW
Claire TollnerJapanOnyama Limba PROPOSAL
Stacey MacleadUnited KingdomOnyama Limba PROPOSAL
Stacey MacleadCanadaStephen Shaw QUALIFIED
Kaitlin OstroskyBrazilAnna Fali QUALIFIED
Claire TollnerRussiaXuxue Feng PROPOSAL
Leon OldroydIndiaStephen Shaw RENEWAL
Claire TollnerBrazilOnyama Limba PROPOSAL
Jeanfrancois VenereGermanyIvan Magalhaes QUALIFIED
Mujtaba NickaUnited KingdomIvan Magalhaes QUALIFIED
Maisha RulapaughArgentinaAsiya Javayant QUALIFIED
Ashley DoeArgentinaAmy Elsner UNQUALIFIED
Isabel BowleyJapanStephen Shaw PROPOSAL
Nicolas IturbideGermanyXuxue Feng NEGOTIATION
Silvio SlusarskiRussiaAnna Fali NEGOTIATION
Octavia MaletCanadaAsiya Javayant PROPOSAL
Mayumi KolmetzItalyIvan Magalhaes PROPOSAL
Emily WhobreyCanadaXuxue Feng NEGOTIATION
James ButtFranceIvan Magalhaes PROPOSAL
Leja CaldareraArgentinaAmy Elsner NEGOTIATION
Sinclair WaycottBrazilAmy Elsner QUALIFIED
Juan WieserSpainBernardo Dominic QUALIFIED
Nicolas IturbideBrazilXuxue Feng NEGOTIATION
Greenwood BologniaJapanIvan Magalhaes PROPOSAL
Greenwood BologniaBrazilIoni Bowcher PROPOSAL
David DarakjyUnited KingdomOnyama Limba RENEWAL
Antonio CaudyRussiaAmy Elsner QUALIFIED
Sinclair WaycottCanadaOnyama Limba RENEWAL
Emily WhobreyJapanXuxue Feng NEW
Tony FollerCanadaXuxue Feng PROPOSAL
Deepesh ChuiArgentinaElwin Sharvill NEW
Izzy GarufiGermanyElwin Sharvill NEW
James ButtAustraliaAmy Elsner NEW
Misaki RoysterRussiaStephen Shaw PROPOSAL
Rodrigues CampainJapanAmy Elsner PROPOSAL
Jeanfrancois VenereRussiaXuxue Feng NEW
Greenwood BologniaBrazilStephen Shaw NEW
Murillo MaletRussiaOnyama Limba PROPOSAL
Claire TollnerItalyIvan Magalhaes RENEWAL
Mayumi KolmetzIndiaAmy Elsner NEGOTIATION
Juan WieserSpainBernardo Dominic NEW
Morrow RutaGermanyAmy Elsner UNQUALIFIED
Deepesh ChuiFranceStephen Shaw UNQUALIFIED
Cody SaylorsSpainStephen Shaw UNQUALIFIED
Faith GillianJapanAsiya Javayant NEGOTIATION
Faith GillianArgentinaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna FigeroaSpainOnyama Limba UNQUALIFIED
Octavia MaletSpainAnna Fali UNQUALIFIED
Tony FollerAustraliaBernardo Dominic QUALIFIED
Francesco ShinkoSpainIvan Magalhaes RENEWAL
Ricardo GauchoItalyXuxue Feng RENEWAL
Nicolas IturbideCanadaOnyama Limba NEGOTIATION
Silvio SlusarskiArgentinaXuxue Feng NEW
Adams MorascaBrazilStephen Shaw NEW
Darci PoquetteCanadaIoni Bowcher RENEWAL
Rodrigues CampainIndiaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro FerenczUnited Kingdom2021-04-03Buckley Miller Wright NEW10Ioni Bowcher
1001Jennifer AmigonJapan2021-04-06Printing Dimensions RENEWAL45Elwin Sharvill
1002Greenwood BologniaItaly2021-04-07Chemel, James L Cpa PROPOSAL94Elwin Sharvill
1003Mujtaba NickaArgentina2021-03-18Dorl, James J Esq NEW30Onyama Limba
1004David DarakjyItaly2021-03-18Feiner Bros NEW66Ioni Bowcher
1005Johnson SergiItaly2021-04-07Feiner Bros PROPOSAL67Asiya Javayant
1006Antonio CaudyAustralia2021-04-13Benton, John B Jr NEW61Elwin Sharvill
1007Izzy GarufiRussia2021-03-23Dorl, James J Esq RENEWAL13Ivan Magalhaes
1008Munro FerenczIndia2021-03-30Feltz Printing Service UNQUALIFIED38Stephen Shaw
1009Maria MarrierUnited Kingdom2021-04-14Feltz Printing Service RENEWAL60Stephen Shaw
1010Jefferson SchemmerRussia2021-03-21Rangoni Of Florence NEW85Stephen Shaw
1011Alejandro PerinFrance2021-04-16Chanay, Jeffrey A Esq NEW93Bernardo Dominic
1012Julie StensethJapan2021-04-02Benton, John B Jr PROPOSAL25Amy Elsner
1013Stacey MacleadRussia2021-03-26Chanay, Jeffrey A Esq UNQUALIFIED98Amy Elsner
1014Ivar PaprockiSpain2021-03-28Benton, John B Jr UNQUALIFIED12Asiya Javayant
1015Chavez BriddickAustralia2021-03-27King, Christopher A Esq PROPOSAL16Ivan Magalhaes
1016Jefferson SchemmerFrance2021-03-27King, Christopher A Esq NEGOTIATION3Anna Fali
1017Ashley DoeCanada2021-04-14Chanay, Jeffrey A Esq NEGOTIATION60Amy Elsner
1018Maisha RulapaughRussia2021-04-02Chanay, Jeffrey A Esq RENEWAL39Asiya Javayant
1019Octavia MaletJapan2021-04-10Rangoni Of Florence PROPOSAL29Anna Fali
1020Salvatore StockhamSpain2021-03-26Feiner Bros RENEWAL64Amy Elsner
1021Leon OldroydArgentina2021-03-26Chemel, James L Cpa NEGOTIATION15Anna Fali
1022Leon OldroydSpain2021-04-15Chanay, Jeffrey A Esq NEGOTIATION63Xuxue Feng
1023Ashley DoeFrance2021-04-02Truhlar And Truhlar Attys UNQUALIFIED5Anna Fali
1024Ashley DoeArgentina2021-03-23Morlong Associates UNQUALIFIED39Onyama Limba
1025Salvatore StockhamAustralia2021-03-18Feiner Bros NEW81Elwin Sharvill
1026Aika InouyeIndia2021-03-22Rousseaux, Michael Esq UNQUALIFIED79Onyama Limba
1027Francesco ShinkoUnited Kingdom2021-04-01Chemel, James L Cpa PROPOSAL9Asiya Javayant
1028Clifford RimBrazil2021-03-21Truhlar And Truhlar Attys NEGOTIATION35Anna Fali
1029Claire TollnerArgentina2021-04-13Morlong Associates QUALIFIED88Asiya Javayant
1030Munro FerenczBrazil2021-03-28Chanay, Jeffrey A Esq NEW59Xuxue Feng
1031Wickens NestleBrazil2021-03-27King, Christopher A Esq NEGOTIATION72Ioni Bowcher
1032Mujtaba NickaRussia2021-04-08Dorl, James J Esq UNQUALIFIED89Asiya Javayant
1033Jennifer AmigonRussia2021-03-20Morlong Associates NEW17Bernardo Dominic
1034Izzy GarufiRussia2021-03-28Feiner Bros RENEWAL60Onyama Limba
1035Jefferson SchemmerAustralia2021-04-07Buckley Miller Wright PROPOSAL61Xuxue Feng
1036Alejandro PerinJapan2021-03-18Feiner Bros NEGOTIATION23Ivan Magalhaes
1037Ivar PaprockiAustralia2021-03-29Dorl, James J Esq UNQUALIFIED36Stephen Shaw
1038Jennifer AmigonSpain2021-03-18Feiner Bros NEW78Ioni Bowcher
1039Nicolas IturbideItaly2021-04-07Chemel, James L Cpa QUALIFIED71Stephen Shaw
1040Leon OldroydRussia2021-03-23Chapman, Ross E Esq RENEWAL78Ioni Bowcher
1041Faith GillianFrance2021-03-28Feiner Bros QUALIFIED98Amy Elsner
1042Kaitlin OstroskyRussia2021-04-01Commercial Press NEW47Elwin Sharvill
1043Mayumi KolmetzBrazil2021-03-28Benton, John B Jr NEGOTIATION15Ivan Magalhaes
1044Nicolas IturbideUnited Kingdom2021-03-26Printing Dimensions NEW92Elwin Sharvill
1045Aruna FigeroaAustralia2021-04-14Buckley Miller Wright PROPOSAL98Ioni Bowcher
1046Salvatore StockhamIndia2021-04-03Truhlar And Truhlar Attys NEGOTIATION22Ivan Magalhaes
1047Leja CaldareraArgentina2021-04-11Morlong Associates QUALIFIED98Stephen Shaw
1048Leon OldroydIndia2021-04-14Chapman, Ross E Esq UNQUALIFIED80Ioni Bowcher
1049Mujtaba NickaBrazil2021-04-06Feiner Bros NEW91Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Darci PoquetteRussiaAmy Elsner PROPOSAL
Claire TollnerJapanXuxue Feng PROPOSAL
James ButtFranceBernardo Dominic RENEWAL
Clifford RimFranceElwin Sharvill PROPOSAL
Ricardo GauchoArgentinaIvan Magalhaes NEW
Ricardo GauchoGermanyAnna Fali UNQUALIFIED
Rodrigues CampainGermanyIoni Bowcher NEGOTIATION
Jefferson SchemmerIndiaIvan Magalhaes NEGOTIATION
Salvatore StockhamIndiaIoni Bowcher QUALIFIED
Sinclair WaycottUnited KingdomAsiya Javayant QUALIFIED
Greenwood BologniaCanadaIvan Magalhaes NEGOTIATION
Emily WhobreyGermanyIvan Magalhaes NEGOTIATION
Kadeem FlosiJapanIoni Bowcher PROPOSAL
Morrow RutaCanadaStephen Shaw QUALIFIED
Smith GlickIndiaIoni Bowcher NEGOTIATION
Salvatore StockhamUnited KingdomAnna Fali QUALIFIED
Smith GlickCanadaElwin Sharvill NEGOTIATION
Mayumi KolmetzCanadaAmy Elsner UNQUALIFIED
Arvin AlbaresFranceIvan Magalhaes NEGOTIATION
Ashley DoeFranceAnna Fali NEW
Murillo MaletSpainAmy Elsner RENEWAL
Aika InouyeItalyXuxue Feng NEGOTIATION
Munro FerenczUnited KingdomBernardo Dominic PROPOSAL
Stacey MacleadJapanStephen Shaw PROPOSAL
Alejandro PerinRussiaElwin Sharvill NEW
Jennifer AmigonUnited KingdomIoni Bowcher RENEWAL
Johnson SergiCanadaElwin Sharvill QUALIFIED
Leon OldroydArgentinaIvan Magalhaes RENEWAL
Octavia MaletRussiaElwin Sharvill PROPOSAL
Silvio SlusarskiJapanStephen Shaw NEW
Johnson SergiBrazilAmy Elsner NEW
Kadeem FlosiUnited KingdomStephen Shaw NEW
Aditya KuskoFranceBernardo Dominic RENEWAL
Emily WhobreyBrazilAmy Elsner NEW
Tony FollerCanadaStephen Shaw NEW
Claire TollnerJapanStephen Shaw NEGOTIATION
Isabel BowleyCanadaAnna Fali RENEWAL
Mayumi KolmetzItalyBernardo Dominic QUALIFIED
Mujtaba NickaCanadaOnyama Limba QUALIFIED
Ashley DoeIndiaAsiya Javayant UNQUALIFIED
Silvio SlusarskiJapanOnyama Limba RENEWAL
Leja CaldareraFranceElwin Sharvill QUALIFIED
Leon OldroydUnited KingdomXuxue Feng NEGOTIATION
Silvio SlusarskiFranceAsiya Javayant UNQUALIFIED
Misaki RoysterIndiaXuxue Feng NEGOTIATION
Salvatore StockhamArgentinaAsiya Javayant NEGOTIATION
Sinclair WaycottIndiaElwin Sharvill NEW
Aruna FigeroaAustraliaAmy Elsner QUALIFIED
Juan WieserGermanyOnyama Limba NEW
Morrow RutaSpainXuxue Feng UNQUALIFIED
Frozen Columns
Name
Isabel Bowley
Aditya Kusko
Clifford Rim
Faith Gillian
Leja Caldarera
Wickens Nestle
Misaki Royster
Arvin Albares
Jefferson Schemmer
Leon Oldroyd
Adams Morasca
Darci Poquette
Juan Wieser
Rodrigues Campain
Maisha Rulapaugh
Mujtaba Nicka
Kaitlin Ostrosky
Jennifer Amigon
James Butt
David Darakjy
Kaitlin Ostrosky
Jennifer Amigon
Aika Inouye
Murillo Malet
Mayumi Kolmetz
Arvin Albares
Greenwood Bolognia
Cody Saylors
Kaitlin Ostrosky
Aditya Kusko
Aruna Figeroa
Kaitlin Ostrosky
Wickens Nestle
Kadeem Flosi
Maria Marrier
Rodrigues Campain
Alejandro Perin
Isabel Bowley
Maria Marrier
Aruna Figeroa
Ashley Doe
Octavia Malet
Cody Saylors
Adams Morasca
Kaitlin Ostrosky
Stacey Maclead
Faith Gillian
Wickens Nestle
Salvatore Stockham
Deepesh Chui
IdCountryDate
1000Russia2021-04-09
1001Italy2021-04-11
1002India2021-04-09
1003Russia2021-04-01
1004France2021-04-09
1005United Kingdom2021-04-13
1006India2021-04-05
1007Germany2021-04-04
1008Japan2021-03-30
1009France2021-03-19
1010United Kingdom2021-03-23
1011Germany2021-03-23
1012Canada2021-03-22
1013Argentina2021-04-01
1014Italy2021-04-01
1015Argentina2021-04-05
1016Brazil2021-04-06
1017France2021-03-28
1018Japan2021-04-14
1019Australia2021-03-18
1020Argentina2021-03-22
1021Brazil2021-04-05
1022Canada2021-04-07
1023Canada2021-03-30
1024Canada2021-03-31
1025India2021-03-27
1026France2021-04-07
1027Brazil2021-04-03
1028United Kingdom2021-04-08
1029Australia2021-03-23
1030United Kingdom2021-04-05
1031United Kingdom2021-04-14
1032France2021-03-26
1033Canada2021-04-08
1034Australia2021-03-19
1035Spain2021-04-15
1036Canada2021-03-30
1037Russia2021-04-09
1038Japan2021-03-31
1039Germany2021-03-21
1040Japan2021-03-20
1041India2021-04-02
1042Australia2021-04-14
1043United Kingdom2021-03-20
1044France2021-04-07
1045Australia2021-03-28
1046Brazil2021-03-22
1047Brazil2021-04-10
1048India2021-03-31
1049Japan2021-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerAustraliaOnyama Limba RENEWAL
Jefferson SchemmerAustraliaBernardo Dominic PROPOSAL
Nicolas IturbideCanadaXuxue Feng RENEWAL
Francesco ShinkoJapanOnyama Limba RENEWAL
Mayumi KolmetzAustraliaIvan Magalhaes QUALIFIED
Isabel BowleyAustraliaIoni Bowcher UNQUALIFIED
Chavez BriddickRussiaIoni Bowcher UNQUALIFIED
Antonio CaudySpainElwin Sharvill NEGOTIATION
Aika InouyeGermanyElwin Sharvill UNQUALIFIED
Jefferson SchemmerItalyAnna Fali UNQUALIFIED
Juan WieserJapanIvan Magalhaes PROPOSAL
Morrow RutaBrazilBernardo Dominic PROPOSAL
Tony FollerBrazilAsiya Javayant PROPOSAL
Sinclair WaycottUnited KingdomIvan Magalhaes NEW
Faith GillianJapanElwin Sharvill NEGOTIATION
Ivar PaprockiCanadaXuxue Feng PROPOSAL
Aruna FigeroaBrazilStephen Shaw NEGOTIATION
Jeanfrancois VenereRussiaOnyama Limba PROPOSAL
Adams MorascaIndiaIvan Magalhaes RENEWAL
Smith GlickJapanIoni Bowcher QUALIFIED
Ricardo GauchoIndiaAnna Fali NEW
Juan WieserItalyIvan Magalhaes NEGOTIATION
Jefferson SchemmerArgentinaStephen Shaw RENEWAL
Julie StensethArgentinaAnna Fali RENEWAL
Jefferson SchemmerAustraliaXuxue Feng UNQUALIFIED
Faith GillianItalyIoni Bowcher PROPOSAL
Chavez BriddickRussiaAsiya Javayant UNQUALIFIED
Aditya KuskoSpainXuxue Feng NEGOTIATION
Aruna FigeroaCanadaIvan Magalhaes QUALIFIED
Aruna FigeroaArgentinaIoni Bowcher UNQUALIFIED
Juan WieserCanadaAmy Elsner NEW
Greenwood BologniaItalyAmy Elsner PROPOSAL
Ricardo GauchoGermanyOnyama Limba NEW
Clifford RimRussiaOnyama Limba NEGOTIATION
Maria MarrierItalyXuxue Feng RENEWAL
David DarakjyBrazilAnna Fali NEGOTIATION
Ashley DoeArgentinaAsiya Javayant NEW
Alejandro PerinSpainElwin Sharvill NEGOTIATION
Maisha RulapaughSpainIvan Magalhaes NEGOTIATION
Wickens NestleCanadaOnyama Limba NEW

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