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
Ashley DoeFranceIoni Bowcher RENEWAL
Johnson SergiJapanIvan Magalhaes NEW
Smith GlickItalyBernardo Dominic NEW
Jones VocelkaIndiaStephen Shaw NEGOTIATION
Clifford RimRussiaAsiya Javayant RENEWAL
Tony FollerFranceElwin Sharvill NEW
Ricardo GauchoFranceAsiya Javayant PROPOSAL
Misaki RoysterFranceStephen Shaw RENEWAL
Julie StensethArgentinaStephen Shaw NEW
Morrow RutaItalyIvan Magalhaes RENEWAL
Rodrigues CampainBrazilBernardo Dominic NEGOTIATION
Antonio CaudyItalyElwin Sharvill RENEWAL
Smith GlickBrazilBernardo Dominic PROPOSAL
Tony FollerGermanyStephen Shaw UNQUALIFIED
Nicolas IturbideBrazilBernardo Dominic RENEWAL
Mayumi KolmetzItalyIvan Magalhaes RENEWAL
Stacey MacleadGermanyIvan Magalhaes NEW
Murillo MaletUnited KingdomAnna Fali NEGOTIATION
Wickens NestleJapanElwin Sharvill QUALIFIED
Jennifer AmigonGermanyBernardo Dominic NEGOTIATION
Darci PoquetteFranceXuxue Feng RENEWAL
Emily WhobreySpainElwin Sharvill PROPOSAL
Cody SaylorsCanadaIoni Bowcher QUALIFIED
Silvio SlusarskiIndiaAmy Elsner RENEWAL
Cody SaylorsFranceBernardo Dominic QUALIFIED
Morrow RutaJapanIoni Bowcher NEW
Faith GillianSpainStephen Shaw UNQUALIFIED
Darci PoquetteCanadaElwin Sharvill PROPOSAL
Tony FollerItalyIoni Bowcher PROPOSAL
Jennifer AmigonFranceElwin Sharvill RENEWAL
David DarakjyJapanStephen Shaw PROPOSAL
Maria MarrierJapanIvan Magalhaes RENEWAL
Kadeem FlosiJapanXuxue Feng UNQUALIFIED
Mayumi KolmetzUnited KingdomOnyama Limba PROPOSAL
Jefferson SchemmerIndiaAsiya Javayant NEW
Mujtaba NickaItalyStephen Shaw NEGOTIATION
Aruna FigeroaGermanyIoni Bowcher PROPOSAL
Cody SaylorsItalyAnna Fali QUALIFIED
Kaitlin OstroskyCanadaXuxue Feng QUALIFIED
Aika InouyeGermanyAmy Elsner NEGOTIATION
Wickens NestleFranceIvan Magalhaes NEGOTIATION
Costa DilliardUnited KingdomAnna Fali RENEWAL
Chavez BriddickBrazilElwin Sharvill NEGOTIATION
Jennifer AmigonItalyAnna Fali RENEWAL
Ashley DoeCanadaAmy Elsner NEGOTIATION
Tony FollerRussiaAnna Fali QUALIFIED
Claire TollnerFranceBernardo Dominic QUALIFIED
Julie StensethBrazilAnna Fali UNQUALIFIED
Francesco ShinkoItalyXuxue Feng NEW
Mayumi KolmetzUnited KingdomAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy GarufiCanadaAsiya Javayant PROPOSAL
Francesco ShinkoSpainStephen Shaw RENEWAL
Mujtaba NickaItalyOnyama Limba NEW
Faith GillianAustraliaAmy Elsner QUALIFIED
Claire TollnerUnited KingdomIoni Bowcher NEW
Adams MorascaGermanyXuxue Feng NEGOTIATION
Emily WhobreyItalyAmy Elsner PROPOSAL
David DarakjyAustraliaBernardo Dominic UNQUALIFIED
Maria MarrierSpainXuxue Feng RENEWAL
Costa DilliardUnited KingdomAnna Fali QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresItaly2021-04-10Dorl, James J Esq RENEWAL65Ioni Bowcher
1001Aika InouyeGermany2021-03-21Chemel, James L Cpa NEW79Ioni Bowcher
1002Munro FerenczRussia2021-03-31Buckley Miller Wright NEW36Ioni Bowcher
1003Darci PoquetteCanada2021-03-26Chapman, Ross E Esq NEGOTIATION3Bernardo Dominic
1004Stacey MacleadGermany2021-03-28Truhlar And Truhlar Attys QUALIFIED26Stephen Shaw
1005Chavez BriddickIndia2021-03-30Dorl, James J Esq UNQUALIFIED61Xuxue Feng
1006James ButtItaly2021-04-14Feiner Bros QUALIFIED3Elwin Sharvill
1007Julie StensethUnited Kingdom2021-03-30Printing Dimensions QUALIFIED81Elwin Sharvill
1008James ButtSpain2021-03-24King, Christopher A Esq UNQUALIFIED97Stephen Shaw
1009Wickens NestleRussia2021-03-30Truhlar And Truhlar Attys NEW7Bernardo Dominic
1010Salvatore StockhamIndia2021-04-01Printing Dimensions PROPOSAL87Ivan Magalhaes
1011Johnson SergiBrazil2021-03-25Printing Dimensions UNQUALIFIED48Asiya Javayant
1012James ButtGermany2021-03-19Rousseaux, Michael Esq UNQUALIFIED75Ivan Magalhaes
1013Sinclair WaycottSpain2021-04-02Feiner Bros NEW58Asiya Javayant
1014Sinclair WaycottItaly2021-03-25King, Christopher A Esq NEGOTIATION8Ivan Magalhaes
1015Leon OldroydItaly2021-04-01King, Christopher A Esq UNQUALIFIED48Anna Fali
1016Johnson SergiIndia2021-04-11Morlong Associates QUALIFIED97Stephen Shaw
1017Leon OldroydFrance2021-03-20Rousseaux, Michael Esq RENEWAL43Onyama Limba
1018Rodrigues CampainItaly2021-04-14Buckley Miller Wright PROPOSAL30Elwin Sharvill
1019Ashley DoeItaly2021-04-05King, Christopher A Esq NEGOTIATION19Anna Fali
1020James ButtArgentina2021-03-20Printing Dimensions UNQUALIFIED27Asiya Javayant
1021David DarakjyJapan2021-04-16Buckley Miller Wright PROPOSAL88Xuxue Feng
1022Leja CaldareraBrazil2021-03-29Morlong Associates QUALIFIED77Anna Fali
1023Mujtaba NickaAustralia2021-03-28Chanay, Jeffrey A Esq RENEWAL73Bernardo Dominic
1024Alejandro PerinFrance2021-04-09Benton, John B Jr UNQUALIFIED83Anna Fali
1025Leja CaldareraArgentina2021-04-07Commercial Press NEW90Stephen Shaw
1026Salvatore StockhamGermany2021-04-15Buckley Miller Wright QUALIFIED50Asiya Javayant
1027Juan WieserFrance2021-03-29Morlong Associates NEGOTIATION5Asiya Javayant
1028Silvio SlusarskiIndia2021-04-15King, Christopher A Esq QUALIFIED7Anna Fali
1029Emily WhobreyArgentina2021-03-24Feiner Bros NEGOTIATION51Onyama Limba
1030Silvio SlusarskiFrance2021-03-23Morlong Associates UNQUALIFIED30Ivan Magalhaes
1031Chavez BriddickItaly2021-03-28Chanay, Jeffrey A Esq UNQUALIFIED84Anna Fali
1032Chavez BriddickAustralia2021-03-28Commercial Press NEW1Ivan Magalhaes
1033Stacey MacleadArgentina2021-03-23Chapman, Ross E Esq UNQUALIFIED51Elwin Sharvill
1034Julie StensethArgentina2021-03-22Chemel, James L Cpa NEW13Stephen Shaw
1035David DarakjyGermany2021-03-22Chapman, Ross E Esq PROPOSAL15Ioni Bowcher
1036Munro FerenczJapan2021-04-15Chapman, Ross E Esq QUALIFIED58Asiya Javayant
1037Aditya KuskoBrazil2021-03-21Commercial Press NEGOTIATION76Anna Fali
1038Jennifer AmigonBrazil2021-04-16Buckley Miller Wright QUALIFIED6Stephen Shaw
1039Misaki RoysterIndia2021-03-25Buckley Miller Wright UNQUALIFIED12Onyama Limba
1040Johnson SergiBrazil2021-03-19Rangoni Of Florence PROPOSAL85Stephen Shaw
1041Jeanfrancois VenereJapan2021-03-22Feiner Bros QUALIFIED58Anna Fali
1042Antonio CaudyJapan2021-04-10Feltz Printing Service QUALIFIED37Amy Elsner
1043Costa DilliardJapan2021-03-23Dorl, James J Esq RENEWAL19Ivan Magalhaes
1044Jeanfrancois VenereAustralia2021-04-14Rangoni Of Florence PROPOSAL0Asiya Javayant
1045Jeanfrancois VenereArgentina2021-03-25Commercial Press PROPOSAL96Stephen Shaw
1046Clifford RimBrazil2021-04-13Rousseaux, Michael Esq NEW71Ivan Magalhaes
1047Silvio SlusarskiCanada2021-04-11Commercial Press PROPOSAL84Onyama Limba
1048Morrow RutaCanada2021-03-25Morlong Associates RENEWAL42Xuxue Feng
1049Clifford RimGermany2021-04-04King, Christopher A Esq PROPOSAL98Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereSpainElwin Sharvill PROPOSAL
Mayumi KolmetzRussiaAmy Elsner RENEWAL
Munro FerenczIndiaAsiya Javayant UNQUALIFIED
Tony FollerItalyBernardo Dominic NEGOTIATION
Jefferson SchemmerUnited KingdomXuxue Feng RENEWAL
Chavez BriddickFranceOnyama Limba NEGOTIATION
Cody SaylorsGermanyAmy Elsner NEW
Octavia MaletIndiaIoni Bowcher RENEWAL
Ivar PaprockiRussiaElwin Sharvill QUALIFIED
Misaki RoysterItalyXuxue Feng UNQUALIFIED
Faith GillianUnited KingdomStephen Shaw PROPOSAL
Maisha RulapaughArgentinaElwin Sharvill NEGOTIATION
Greenwood BologniaCanadaOnyama Limba UNQUALIFIED
Isabel BowleyItalyStephen Shaw NEW
Izzy GarufiFranceIoni Bowcher RENEWAL
Nicolas IturbideArgentinaIvan Magalhaes PROPOSAL
Isabel BowleyItalyIvan Magalhaes QUALIFIED
Morrow RutaCanadaBernardo Dominic NEGOTIATION
Jeanfrancois VenereUnited KingdomAnna Fali NEW
Arvin AlbaresSpainAmy Elsner QUALIFIED
Jeanfrancois VenereFranceAmy Elsner QUALIFIED
Leja CaldareraGermanyIoni Bowcher PROPOSAL
Mujtaba NickaRussiaAmy Elsner NEGOTIATION
Alejandro PerinFranceAsiya Javayant UNQUALIFIED
James ButtRussiaAnna Fali NEW
Greenwood BologniaArgentinaElwin Sharvill PROPOSAL
Aditya KuskoJapanIvan Magalhaes PROPOSAL
Juan WieserAustraliaIvan Magalhaes QUALIFIED
James ButtArgentinaOnyama Limba RENEWAL
Emily WhobreyGermanyAnna Fali QUALIFIED
Johnson SergiCanadaBernardo Dominic QUALIFIED
Smith GlickIndiaXuxue Feng NEW
Sinclair WaycottAustraliaAnna Fali PROPOSAL
Silvio SlusarskiRussiaBernardo Dominic RENEWAL
Jefferson SchemmerAustraliaAmy Elsner NEGOTIATION
Misaki RoysterAustraliaIvan Magalhaes NEGOTIATION
Tony FollerFranceAsiya Javayant NEW
Arvin AlbaresGermanyBernardo Dominic PROPOSAL
Octavia MaletFranceXuxue Feng RENEWAL
Mayumi KolmetzBrazilStephen Shaw NEGOTIATION
Mujtaba NickaAustraliaStephen Shaw PROPOSAL
James ButtJapanAnna Fali RENEWAL
Chavez BriddickItalyAsiya Javayant PROPOSAL
Maisha RulapaughSpainElwin Sharvill NEW
Kaitlin OstroskyArgentinaStephen Shaw NEW
Faith GillianJapanElwin Sharvill UNQUALIFIED
Greenwood BologniaUnited KingdomAsiya Javayant RENEWAL
Juan WieserAustraliaIoni Bowcher NEW
Greenwood BologniaJapanIvan Magalhaes UNQUALIFIED
Leja CaldareraCanadaAmy Elsner NEGOTIATION
Frozen Columns
Name
Aruna Figeroa
Nicolas Iturbide
Juan Wieser
Francesco Shinko
Faith Gillian
Murillo Malet
Wickens Nestle
Kadeem Flosi
Leon Oldroyd
Rodrigues Campain
Stacey Maclead
Jones Vocelka
Deepesh Chui
Salvatore Stockham
Maisha Rulapaugh
Aruna Figeroa
Silvio Slusarski
Aditya Kusko
Stacey Maclead
Jefferson Schemmer
Kaitlin Ostrosky
Misaki Royster
Francesco Shinko
Ivar Paprocki
Aika Inouye
Alejandro Perin
Ricardo Gaucho
Faith Gillian
Antonio Caudy
Aika Inouye
Ricardo Gaucho
Mayumi Kolmetz
Francesco Shinko
Chavez Briddick
Ivar Paprocki
Aruna Figeroa
Ricardo Gaucho
James Butt
James Butt
Jones Vocelka
Leon Oldroyd
Jeanfrancois Venere
Juan Wieser
Rodrigues Campain
Alejandro Perin
Salvatore Stockham
Mujtaba Nicka
Mujtaba Nicka
Tony Foller
Nicolas Iturbide
IdCountryDate
1000Italy2021-04-09
1001Italy2021-04-09
1002Japan2021-04-03
1003Russia2021-03-20
1004Brazil2021-04-16
1005Canada2021-03-29
1006Argentina2021-03-29
1007India2021-03-22
1008India2021-04-06
1009United Kingdom2021-03-24
1010Japan2021-04-11
1011Germany2021-04-07
1012Japan2021-04-03
1013Italy2021-03-18
1014Australia2021-03-27
1015Russia2021-04-02
1016United Kingdom2021-04-06
1017Italy2021-03-20
1018Spain2021-03-26
1019Argentina2021-03-20
1020India2021-03-28
1021Brazil2021-04-16
1022Germany2021-03-31
1023Italy2021-04-09
1024Argentina2021-03-27
1025Argentina2021-04-10
1026France2021-03-22
1027Japan2021-04-05
1028United Kingdom2021-04-10
1029Australia2021-03-24
1030Germany2021-04-04
1031United Kingdom2021-03-24
1032Italy2021-03-21
1033Italy2021-04-08
1034Germany2021-03-26
1035Canada2021-03-22
1036France2021-04-11
1037Spain2021-04-12
1038Japan2021-03-22
1039Spain2021-04-14
1040Brazil2021-04-13
1041Italy2021-04-06
1042Brazil2021-03-18
1043Spain2021-04-06
1044Russia2021-04-07
1045Russia2021-04-10
1046Germany2021-04-15
1047United Kingdom2021-04-09
1048Australia2021-03-29
1049Russia2021-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerArgentinaElwin Sharvill NEGOTIATION
Cody SaylorsRussiaAsiya Javayant NEW
David DarakjyJapanAmy Elsner NEW
Ashley DoeFranceElwin Sharvill PROPOSAL
Emily WhobreyRussiaElwin Sharvill NEW
Aika InouyeAustraliaAsiya Javayant RENEWAL
Silvio SlusarskiFranceIvan Magalhaes PROPOSAL
Octavia MaletItalyIvan Magalhaes UNQUALIFIED
Leon OldroydGermanyIoni Bowcher PROPOSAL
Rodrigues CampainRussiaOnyama Limba UNQUALIFIED
Octavia MaletRussiaOnyama Limba PROPOSAL
Morrow RutaAustraliaXuxue Feng UNQUALIFIED
Johnson SergiAustraliaAnna Fali RENEWAL
Wickens NestleArgentinaElwin Sharvill UNQUALIFIED
Ashley DoeArgentinaElwin Sharvill PROPOSAL
Jones VocelkaItalyXuxue Feng NEGOTIATION
Antonio CaudyAustraliaBernardo Dominic UNQUALIFIED
Greenwood BologniaRussiaElwin Sharvill NEW
Jennifer AmigonArgentinaAnna Fali QUALIFIED
Francesco ShinkoJapanIoni Bowcher RENEWAL
Mujtaba NickaArgentinaAsiya Javayant RENEWAL
Maria MarrierSpainXuxue Feng NEW
Smith GlickBrazilBernardo Dominic QUALIFIED
Deepesh ChuiGermanyIoni Bowcher RENEWAL
Arvin AlbaresSpainOnyama Limba UNQUALIFIED
Mujtaba NickaUnited KingdomAmy Elsner PROPOSAL
Emily WhobreyFranceIvan Magalhaes UNQUALIFIED
Adams MorascaRussiaElwin Sharvill RENEWAL
Julie StensethSpainOnyama Limba NEGOTIATION
Juan WieserCanadaXuxue Feng QUALIFIED
Salvatore StockhamGermanyStephen Shaw RENEWAL
Maria MarrierBrazilIoni Bowcher NEGOTIATION
Nicolas IturbideRussiaOnyama Limba PROPOSAL
Chavez BriddickIndiaIvan Magalhaes UNQUALIFIED
Francesco ShinkoRussiaAnna Fali QUALIFIED
Antonio CaudyAustraliaBernardo Dominic PROPOSAL
Emily WhobreyGermanyIoni Bowcher PROPOSAL
Jennifer AmigonCanadaAsiya Javayant RENEWAL
Clifford RimUnited KingdomBernardo Dominic NEW
Greenwood BologniaJapanAsiya Javayant NEGOTIATION

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