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
Sinclair WaycottArgentinaIoni Bowcher PROPOSAL
Mayumi KolmetzGermanyBernardo Dominic PROPOSAL
Nicolas IturbideItalyAmy Elsner NEW
Stacey MacleadArgentinaAsiya Javayant RENEWAL
Ashley DoeBrazilElwin Sharvill NEW
Smith GlickSpainAmy Elsner QUALIFIED
Juan WieserIndiaXuxue Feng NEW
Munro FerenczIndiaBernardo Dominic PROPOSAL
Sinclair WaycottBrazilIoni Bowcher NEW
Rodrigues CampainJapanXuxue Feng NEW
Aika InouyeGermanyXuxue Feng QUALIFIED
Arvin AlbaresBrazilAnna Fali RENEWAL
Costa DilliardAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyCanadaAnna Fali NEW
Johnson SergiSpainStephen Shaw NEGOTIATION
Jennifer AmigonArgentinaAmy Elsner NEW
Murillo MaletAustraliaOnyama Limba NEW
Sinclair WaycottArgentinaAsiya Javayant UNQUALIFIED
Morrow RutaCanadaBernardo Dominic NEW
Murillo MaletRussiaIoni Bowcher NEGOTIATION
Claire TollnerSpainBernardo Dominic UNQUALIFIED
Aika InouyeIndiaXuxue Feng NEGOTIATION
Ricardo GauchoUnited KingdomElwin Sharvill NEGOTIATION
Smith GlickItalyAnna Fali PROPOSAL
Maisha RulapaughAustraliaOnyama Limba PROPOSAL
Costa DilliardCanadaStephen Shaw RENEWAL
Deepesh ChuiArgentinaIvan Magalhaes NEW
Murillo MaletArgentinaIvan Magalhaes RENEWAL
Octavia MaletAustraliaOnyama Limba PROPOSAL
Octavia MaletGermanyElwin Sharvill NEW
Leja CaldareraRussiaIoni Bowcher RENEWAL
Cody SaylorsCanadaElwin Sharvill PROPOSAL
Greenwood BologniaFranceBernardo Dominic NEGOTIATION
Wickens NestleBrazilIoni Bowcher NEW
Greenwood BologniaBrazilAnna Fali QUALIFIED
Murillo MaletUnited KingdomBernardo Dominic RENEWAL
Ivar PaprockiCanadaStephen Shaw QUALIFIED
Aika InouyeSpainIoni Bowcher UNQUALIFIED
Julie StensethBrazilIoni Bowcher NEGOTIATION
Jones VocelkaFranceIoni Bowcher NEW
Mayumi KolmetzFranceAnna Fali RENEWAL
Darci PoquetteJapanAmy Elsner PROPOSAL
Mujtaba NickaBrazilAsiya Javayant UNQUALIFIED
Jones VocelkaBrazilXuxue Feng UNQUALIFIED
Octavia MaletFranceAmy Elsner NEGOTIATION
Aruna FigeroaSpainAnna Fali NEW
Jennifer AmigonItalyOnyama Limba QUALIFIED
Greenwood BologniaBrazilAsiya Javayant NEGOTIATION
Murillo MaletFranceAmy Elsner UNQUALIFIED
Johnson SergiFranceIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois VenereSpainIvan Magalhaes PROPOSAL
Maisha RulapaughJapanBernardo Dominic NEGOTIATION
Jeanfrancois VenereIndiaIoni Bowcher QUALIFIED
Alejandro PerinAustraliaBernardo Dominic RENEWAL
Deepesh ChuiCanadaAsiya Javayant UNQUALIFIED
Aruna FigeroaArgentinaAnna Fali QUALIFIED
Kadeem FlosiRussiaStephen Shaw QUALIFIED
Octavia MaletGermanyAmy Elsner UNQUALIFIED
Ricardo GauchoItalyAsiya Javayant NEGOTIATION
Alejandro PerinArgentinaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleAustralia2021-04-18Commercial Press NEW88Stephen Shaw
1001James ButtSpain2021-03-20Chemel, James L Cpa QUALIFIED2Asiya Javayant
1002Nicolas IturbideAustralia2021-03-24Benton, John B Jr RENEWAL89Stephen Shaw
1003Alejandro PerinFrance2021-04-11Feltz Printing Service UNQUALIFIED61Onyama Limba
1004Tony FollerJapan2021-04-15Chanay, Jeffrey A Esq NEW77Amy Elsner
1005Faith GillianFrance2021-04-09Morlong Associates UNQUALIFIED58Anna Fali
1006Ashley DoeBrazil2021-04-09Printing Dimensions RENEWAL17Anna Fali
1007Ivar PaprockiAustralia2021-03-23Rangoni Of Florence NEW54Xuxue Feng
1008Munro FerenczGermany2021-03-25King, Christopher A Esq NEW11Ivan Magalhaes
1009Silvio SlusarskiGermany2021-03-22Chemel, James L Cpa RENEWAL3Asiya Javayant
1010Isabel BowleyFrance2021-03-29Buckley Miller Wright RENEWAL42Elwin Sharvill
1011Silvio SlusarskiUnited Kingdom2021-03-31Rousseaux, Michael Esq QUALIFIED55Ioni Bowcher
1012Silvio SlusarskiBrazil2021-04-08Commercial Press NEW65Amy Elsner
1013Antonio CaudyRussia2021-04-06Truhlar And Truhlar Attys NEW16Elwin Sharvill
1014Kaitlin OstroskyUnited Kingdom2021-04-07Printing Dimensions PROPOSAL63Asiya Javayant
1015Leon OldroydCanada2021-04-12Feiner Bros NEGOTIATION7Stephen Shaw
1016Leja CaldareraCanada2021-03-26Printing Dimensions UNQUALIFIED19Onyama Limba
1017Leon OldroydGermany2021-04-12Rousseaux, Michael Esq RENEWAL26Elwin Sharvill
1018Misaki RoysterBrazil2021-03-31Morlong Associates QUALIFIED76Bernardo Dominic
1019Maria MarrierAustralia2021-03-20Printing Dimensions NEGOTIATION68Bernardo Dominic
1020Claire TollnerBrazil2021-04-04Truhlar And Truhlar Attys PROPOSAL67Asiya Javayant
1021Rodrigues CampainItaly2021-04-18Morlong Associates UNQUALIFIED89Amy Elsner
1022Smith GlickUnited Kingdom2021-04-08Commercial Press UNQUALIFIED49Stephen Shaw
1023Darci PoquetteSpain2021-04-14Rousseaux, Michael Esq UNQUALIFIED12Ivan Magalhaes
1024Jennifer AmigonIndia2021-04-14Buckley Miller Wright NEW61Ivan Magalhaes
1025Aika InouyeRussia2021-04-11Rousseaux, Michael Esq NEW82Ioni Bowcher
1026James ButtJapan2021-04-08Truhlar And Truhlar Attys NEW78Ioni Bowcher
1027Murillo MaletIndia2021-04-05Dorl, James J Esq NEGOTIATION45Onyama Limba
1028Silvio SlusarskiIndia2021-04-05Commercial Press PROPOSAL94Anna Fali
1029Emily WhobreyArgentina2021-04-05Dorl, James J Esq PROPOSAL4Stephen Shaw
1030Aika InouyeItaly2021-04-17Printing Dimensions NEW84Ivan Magalhaes
1031Jeanfrancois VenereGermany2021-04-04Chanay, Jeffrey A Esq QUALIFIED5Asiya Javayant
1032Morrow RutaIndia2021-03-31Truhlar And Truhlar Attys RENEWAL96Asiya Javayant
1033Costa DilliardAustralia2021-04-09Rangoni Of Florence PROPOSAL42Stephen Shaw
1034Munro FerenczRussia2021-04-13Buckley Miller Wright UNQUALIFIED31Bernardo Dominic
1035Alejandro PerinCanada2021-04-18Feltz Printing Service UNQUALIFIED91Stephen Shaw
1036James ButtCanada2021-03-20Dorl, James J Esq PROPOSAL1Stephen Shaw
1037Salvatore StockhamIndia2021-03-27Commercial Press PROPOSAL25Ioni Bowcher
1038Wickens NestleArgentina2021-03-21Chapman, Ross E Esq PROPOSAL28Xuxue Feng
1039Murillo MaletItaly2021-03-31Chanay, Jeffrey A Esq RENEWAL72Ioni Bowcher
1040Tony FollerJapan2021-04-11Commercial Press NEW43Stephen Shaw
1041Jeanfrancois VenereCanada2021-04-05Rangoni Of Florence PROPOSAL49Stephen Shaw
1042Francesco ShinkoArgentina2021-04-13Rangoni Of Florence NEW33Amy Elsner
1043Kaitlin OstroskyJapan2021-04-03Morlong Associates NEW46Stephen Shaw
1044Stacey MacleadFrance2021-04-03Printing Dimensions UNQUALIFIED73Bernardo Dominic
1045Rodrigues CampainJapan2021-04-04Dorl, James J Esq PROPOSAL49Onyama Limba
1046Leja CaldareraArgentina2021-04-02Chapman, Ross E Esq RENEWAL14Stephen Shaw
1047Jeanfrancois VenereCanada2021-03-31Commercial Press RENEWAL24Amy Elsner
1048David DarakjyCanada2021-04-10King, Christopher A Esq NEGOTIATION74Amy Elsner
1049Arvin AlbaresAustralia2021-03-28Chapman, Ross E Esq UNQUALIFIED43Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaIndiaIvan Magalhaes PROPOSAL
Jones VocelkaItalyIvan Magalhaes QUALIFIED
Antonio CaudyJapanIoni Bowcher NEW
Arvin AlbaresUnited KingdomAsiya Javayant NEW
James ButtIndiaAmy Elsner UNQUALIFIED
Claire TollnerBrazilIoni Bowcher NEGOTIATION
Aika InouyeBrazilBernardo Dominic NEGOTIATION
Cody SaylorsCanadaBernardo Dominic PROPOSAL
Murillo MaletIndiaXuxue Feng QUALIFIED
Jefferson SchemmerItalyElwin Sharvill PROPOSAL
Kaitlin OstroskyUnited KingdomAsiya Javayant UNQUALIFIED
Jones VocelkaAustraliaBernardo Dominic NEW
Adams MorascaJapanBernardo Dominic RENEWAL
Johnson SergiGermanyAsiya Javayant RENEWAL
Adams MorascaRussiaOnyama Limba NEGOTIATION
Francesco ShinkoSpainIvan Magalhaes UNQUALIFIED
Ashley DoeBrazilBernardo Dominic UNQUALIFIED
Sinclair WaycottFranceBernardo Dominic UNQUALIFIED
Adams MorascaCanadaIoni Bowcher UNQUALIFIED
David DarakjyAustraliaAmy Elsner NEGOTIATION
Alejandro PerinCanadaElwin Sharvill NEW
Izzy GarufiBrazilElwin Sharvill PROPOSAL
Johnson SergiSpainAnna Fali UNQUALIFIED
Wickens NestleUnited KingdomAmy Elsner NEW
Munro FerenczFranceElwin Sharvill QUALIFIED
James ButtGermanyElwin Sharvill NEGOTIATION
Murillo MaletAustraliaXuxue Feng UNQUALIFIED
Munro FerenczIndiaStephen Shaw UNQUALIFIED
Maria MarrierUnited KingdomOnyama Limba NEW
Jennifer AmigonCanadaElwin Sharvill RENEWAL
Deepesh ChuiGermanyElwin Sharvill NEW
Cody SaylorsUnited KingdomAnna Fali UNQUALIFIED
Rodrigues CampainArgentinaElwin Sharvill RENEWAL
Salvatore StockhamBrazilStephen Shaw PROPOSAL
Chavez BriddickJapanXuxue Feng QUALIFIED
Chavez BriddickFranceIoni Bowcher QUALIFIED
Salvatore StockhamJapanAmy Elsner NEW
Octavia MaletBrazilXuxue Feng UNQUALIFIED
Jennifer AmigonSpainIoni Bowcher UNQUALIFIED
Leja CaldareraAustraliaStephen Shaw PROPOSAL
Salvatore StockhamRussiaIvan Magalhaes RENEWAL
Greenwood BologniaRussiaIvan Magalhaes QUALIFIED
Cody SaylorsJapanXuxue Feng NEGOTIATION
Murillo MaletJapanStephen Shaw UNQUALIFIED
Maria MarrierIndiaElwin Sharvill RENEWAL
Jefferson SchemmerUnited KingdomIvan Magalhaes UNQUALIFIED
Greenwood BologniaJapanElwin Sharvill UNQUALIFIED
Chavez BriddickJapanIvan Magalhaes NEGOTIATION
Juan WieserCanadaIvan Magalhaes UNQUALIFIED
Sinclair WaycottFranceStephen Shaw QUALIFIED
Frozen Columns
Name
Antonio Caudy
Maisha Rulapaugh
Jones Vocelka
Leja Caldarera
Silvio Slusarski
Ashley Doe
Morrow Ruta
Maisha Rulapaugh
Leon Oldroyd
Cody Saylors
Jennifer Amigon
Sinclair Waycott
Deepesh Chui
Kaitlin Ostrosky
Isabel Bowley
Stacey Maclead
Misaki Royster
Antonio Caudy
Jefferson Schemmer
Juan Wieser
Jefferson Schemmer
Kadeem Flosi
Isabel Bowley
Juan Wieser
Costa Dilliard
Leon Oldroyd
Isabel Bowley
Nicolas Iturbide
David Darakjy
Misaki Royster
Rodrigues Campain
Jones Vocelka
Darci Poquette
Smith Glick
Mujtaba Nicka
Izzy Garufi
Jones Vocelka
Deepesh Chui
Darci Poquette
Morrow Ruta
Maisha Rulapaugh
Cody Saylors
Stacey Maclead
Morrow Ruta
Leon Oldroyd
Smith Glick
Salvatore Stockham
Chavez Briddick
Chavez Briddick
Wickens Nestle
IdCountryDate
1000Canada2021-04-13
1001Brazil2021-04-07
1002Germany2021-04-09
1003France2021-04-16
1004Japan2021-03-27
1005Australia2021-04-14
1006Spain2021-04-12
1007Australia2021-03-29
1008Australia2021-04-10
1009Russia2021-04-18
1010Argentina2021-04-15
1011Canada2021-03-31
1012United Kingdom2021-03-22
1013Japan2021-04-11
1014Russia2021-03-24
1015Canada2021-04-06
1016India2021-03-23
1017Brazil2021-04-07
1018Argentina2021-03-29
1019Australia2021-04-11
1020Canada2021-04-04
1021France2021-04-06
1022France2021-03-22
1023Japan2021-03-30
1024Spain2021-04-09
1025Russia2021-03-22
1026Canada2021-03-27
1027United Kingdom2021-04-17
1028Brazil2021-04-02
1029Canada2021-03-24
1030Germany2021-04-02
1031Brazil2021-04-03
1032Russia2021-04-11
1033United Kingdom2021-04-04
1034Japan2021-04-12
1035France2021-03-29
1036Italy2021-03-21
1037Brazil2021-04-13
1038United Kingdom2021-04-01
1039Japan2021-03-22
1040Brazil2021-03-31
1041United Kingdom2021-04-03
1042Argentina2021-03-28
1043Germany2021-03-20
1044Italy2021-03-31
1045Germany2021-04-15
1046Italy2021-04-06
1047Brazil2021-04-07
1048France2021-03-23
1049Australia2021-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinBrazilIoni Bowcher PROPOSAL
Arvin AlbaresArgentinaAsiya Javayant PROPOSAL
Kadeem FlosiBrazilIoni Bowcher QUALIFIED
Ivar PaprockiFranceXuxue Feng NEW
Misaki RoysterAustraliaStephen Shaw UNQUALIFIED
Kaitlin OstroskyFranceIvan Magalhaes QUALIFIED
Jones VocelkaIndiaAnna Fali UNQUALIFIED
Smith GlickSpainElwin Sharvill QUALIFIED
Claire TollnerBrazilAnna Fali NEW
Wickens NestleRussiaBernardo Dominic RENEWAL
Johnson SergiItalyAsiya Javayant RENEWAL
Jones VocelkaCanadaAnna Fali QUALIFIED
Aditya KuskoUnited KingdomAnna Fali UNQUALIFIED
Mujtaba NickaIndiaIvan Magalhaes RENEWAL
Maisha RulapaughFranceIoni Bowcher NEW
Ricardo GauchoJapanXuxue Feng NEGOTIATION
Silvio SlusarskiArgentinaOnyama Limba NEW
Francesco ShinkoUnited KingdomElwin Sharvill NEGOTIATION
Izzy GarufiSpainXuxue Feng RENEWAL
Arvin AlbaresFranceAnna Fali PROPOSAL
Aruna FigeroaArgentinaElwin Sharvill RENEWAL
Ashley DoeIndiaElwin Sharvill NEGOTIATION
Morrow RutaSpainIvan Magalhaes NEW
Antonio CaudyUnited KingdomIvan Magalhaes NEGOTIATION
Ricardo GauchoRussiaIvan Magalhaes PROPOSAL
Wickens NestleRussiaAnna Fali NEW
Stacey MacleadArgentinaAnna Fali NEGOTIATION
Aika InouyeArgentinaAnna Fali UNQUALIFIED
Juan WieserItalyStephen Shaw UNQUALIFIED
Ashley DoeUnited KingdomAsiya Javayant RENEWAL
David DarakjyItalyIoni Bowcher QUALIFIED
Claire TollnerGermanyOnyama Limba QUALIFIED
Antonio CaudyArgentinaIoni Bowcher NEW
Aika InouyeIndiaXuxue Feng NEW
Wickens NestleRussiaBernardo Dominic QUALIFIED
Darci PoquetteGermanyStephen Shaw RENEWAL
Ashley DoeCanadaIoni Bowcher RENEWAL
Emily WhobreyRussiaAmy Elsner PROPOSAL
Misaki RoysterSpainElwin Sharvill RENEWAL
Kaitlin OstroskyFranceElwin 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>