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
Leja CaldareraBrazilAsiya Javayant NEW
Juan WieserJapanOnyama Limba QUALIFIED
Octavia MaletCanadaBernardo Dominic UNQUALIFIED
Tony FollerJapanXuxue Feng RENEWAL
Octavia MaletSpainOnyama Limba RENEWAL
David DarakjyIndiaAnna Fali NEW
Adams MorascaGermanyBernardo Dominic UNQUALIFIED
David DarakjyIndiaStephen Shaw UNQUALIFIED
Aruna FigeroaBrazilBernardo Dominic NEW
Silvio SlusarskiArgentinaXuxue Feng NEW
Ashley DoeGermanyOnyama Limba NEW
Chavez BriddickFranceIvan Magalhaes RENEWAL
Arvin AlbaresJapanAsiya Javayant NEW
Jefferson SchemmerUnited KingdomElwin Sharvill QUALIFIED
Darci PoquetteSpainAnna Fali NEGOTIATION
Smith GlickSpainXuxue Feng PROPOSAL
Costa DilliardGermanyIvan Magalhaes PROPOSAL
Stacey MacleadItalyAsiya Javayant UNQUALIFIED
Antonio CaudyUnited KingdomAmy Elsner RENEWAL
Stacey MacleadJapanAmy Elsner QUALIFIED
Octavia MaletRussiaIoni Bowcher PROPOSAL
Aditya KuskoJapanIoni Bowcher UNQUALIFIED
Antonio CaudyAustraliaXuxue Feng UNQUALIFIED
Chavez BriddickBrazilAnna Fali RENEWAL
Cody SaylorsSpainIoni Bowcher NEGOTIATION
Ivar PaprockiAustraliaXuxue Feng QUALIFIED
Faith GillianAustraliaElwin Sharvill PROPOSAL
David DarakjyRussiaAsiya Javayant UNQUALIFIED
Jones VocelkaCanadaIoni Bowcher PROPOSAL
Ivar PaprockiCanadaAmy Elsner NEW
Leon OldroydSpainXuxue Feng PROPOSAL
Morrow RutaRussiaXuxue Feng QUALIFIED
Leon OldroydFranceElwin Sharvill QUALIFIED
Johnson SergiJapanBernardo Dominic PROPOSAL
Isabel BowleyCanadaStephen Shaw UNQUALIFIED
Antonio CaudyRussiaAmy Elsner QUALIFIED
Morrow RutaFranceAnna Fali QUALIFIED
Wickens NestleCanadaAnna Fali RENEWAL
Johnson SergiBrazilXuxue Feng NEGOTIATION
Stacey MacleadItalyIoni Bowcher NEGOTIATION
Silvio SlusarskiIndiaAmy Elsner RENEWAL
Octavia MaletCanadaAmy Elsner NEW
Alejandro PerinGermanyOnyama Limba QUALIFIED
Tony FollerGermanyXuxue Feng NEW
Mayumi KolmetzCanadaAsiya Javayant RENEWAL
Jefferson SchemmerUnited KingdomStephen Shaw QUALIFIED
Alejandro PerinIndiaAmy Elsner UNQUALIFIED
Kaitlin OstroskyBrazilElwin Sharvill UNQUALIFIED
Juan WieserJapanAnna Fali UNQUALIFIED
Murillo MaletBrazilStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kaitlin OstroskyCanadaAnna Fali PROPOSAL
Jennifer AmigonSpainOnyama Limba RENEWAL
Sinclair WaycottJapanStephen Shaw RENEWAL
Misaki RoysterJapanAsiya Javayant NEW
Chavez BriddickArgentinaStephen Shaw PROPOSAL
Smith GlickArgentinaAsiya Javayant NEW
Kaitlin OstroskyFranceOnyama Limba UNQUALIFIED
Aika InouyeItalyXuxue Feng NEW
Maria MarrierIndiaAmy Elsner QUALIFIED
Izzy GarufiSpainOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy GarufiUnited Kingdom2021-04-19Truhlar And Truhlar Attys PROPOSAL4Xuxue Feng
1001Isabel BowleyGermany2021-05-09Commercial Press QUALIFIED28Anna Fali
1002Adams MorascaCanada2021-04-20Morlong Associates NEW39Amy Elsner
1003Octavia MaletIndia2021-04-24Dorl, James J Esq NEW59Onyama Limba
1004Sinclair WaycottSpain2021-04-22Feiner Bros QUALIFIED93Ioni Bowcher
1005Nicolas IturbideIndia2021-04-24Rousseaux, Michael Esq NEGOTIATION99Onyama Limba
1006Octavia MaletFrance2021-05-01Chemel, James L Cpa PROPOSAL42Asiya Javayant
1007Jeanfrancois VenereAustralia2021-05-03Chanay, Jeffrey A Esq NEW23Asiya Javayant
1008Mujtaba NickaJapan2021-05-10Truhlar And Truhlar Attys QUALIFIED21Stephen Shaw
1009Alejandro PerinSpain2021-04-17Printing Dimensions NEGOTIATION8Asiya Javayant
1010Chavez BriddickSpain2021-04-20Rangoni Of Florence RENEWAL19Ioni Bowcher
1011Darci PoquetteUnited Kingdom2021-05-11Printing Dimensions RENEWAL10Xuxue Feng
1012Leja CaldareraCanada2021-05-05Chanay, Jeffrey A Esq NEGOTIATION48Ivan Magalhaes
1013Aruna FigeroaUnited Kingdom2021-04-25Commercial Press UNQUALIFIED71Xuxue Feng
1014Deepesh ChuiSpain2021-04-24Benton, John B Jr NEGOTIATION87Amy Elsner
1015Cody SaylorsJapan2021-05-04Commercial Press NEGOTIATION78Anna Fali
1016Maisha RulapaughRussia2021-05-04King, Christopher A Esq NEW63Ivan Magalhaes
1017Isabel BowleyUnited Kingdom2021-05-01Chanay, Jeffrey A Esq PROPOSAL93Ioni Bowcher
1018Izzy GarufiUnited Kingdom2021-05-12Dorl, James J Esq RENEWAL69Ivan Magalhaes
1019Misaki RoysterSpain2021-04-24Rangoni Of Florence UNQUALIFIED57Stephen Shaw
1020Julie StensethIndia2021-05-08Feltz Printing Service RENEWAL49Xuxue Feng
1021Antonio CaudyBrazil2021-04-17Truhlar And Truhlar Attys RENEWAL74Bernardo Dominic
1022Ivar PaprockiGermany2021-05-10Chemel, James L Cpa RENEWAL10Ioni Bowcher
1023David DarakjySpain2021-04-30King, Christopher A Esq PROPOSAL11Onyama Limba
1024Aruna FigeroaArgentina2021-05-08Printing Dimensions PROPOSAL40Stephen Shaw
1025Izzy GarufiGermany2021-04-29Feiner Bros RENEWAL60Amy Elsner
1026Stacey MacleadUnited Kingdom2021-05-02Chemel, James L Cpa PROPOSAL10Elwin Sharvill
1027Arvin AlbaresJapan2021-04-22Chapman, Ross E Esq UNQUALIFIED49Stephen Shaw
1028Murillo MaletBrazil2021-05-12King, Christopher A Esq RENEWAL15Bernardo Dominic
1029Ivar PaprockiIndia2021-04-26Benton, John B Jr PROPOSAL51Amy Elsner
1030Clifford RimGermany2021-04-27Feltz Printing Service NEGOTIATION81Bernardo Dominic
1031Mujtaba NickaRussia2021-04-19Feiner Bros PROPOSAL73Xuxue Feng
1032Francesco ShinkoCanada2021-05-11Printing Dimensions PROPOSAL52Stephen Shaw
1033Mayumi KolmetzCanada2021-05-09Chapman, Ross E Esq PROPOSAL89Xuxue Feng
1034Alejandro PerinBrazil2021-05-02Commercial Press RENEWAL63Bernardo Dominic
1035Aika InouyeIndia2021-05-07Rousseaux, Michael Esq NEW0Onyama Limba
1036Leja CaldareraCanada2021-04-27Truhlar And Truhlar Attys UNQUALIFIED18Xuxue Feng
1037Deepesh ChuiCanada2021-04-14Rousseaux, Michael Esq RENEWAL5Anna Fali
1038Rodrigues CampainItaly2021-04-26Rangoni Of Florence NEGOTIATION94Asiya Javayant
1039Wickens NestleIndia2021-05-07Benton, John B Jr NEW47Xuxue Feng
1040Nicolas IturbideGermany2021-05-03Chanay, Jeffrey A Esq NEGOTIATION32Xuxue Feng
1041Maria MarrierSpain2021-04-19Feiner Bros NEGOTIATION34Ioni Bowcher
1042Salvatore StockhamUnited Kingdom2021-05-04Dorl, James J Esq NEGOTIATION27Ioni Bowcher
1043Salvatore StockhamBrazil2021-05-01Feltz Printing Service PROPOSAL86Elwin Sharvill
1044Silvio SlusarskiCanada2021-04-25Morlong Associates NEGOTIATION1Elwin Sharvill
1045Jennifer AmigonSpain2021-05-10Rangoni Of Florence NEGOTIATION38Bernardo Dominic
1046Silvio SlusarskiItaly2021-04-24Chanay, Jeffrey A Esq UNQUALIFIED93Onyama Limba
1047James ButtJapan2021-04-22Benton, John B Jr UNQUALIFIED90Ioni Bowcher
1048Francesco ShinkoRussia2021-04-27Chemel, James L Cpa UNQUALIFIED36Bernardo Dominic
1049Kadeem FlosiUnited Kingdom2021-05-05Feltz Printing Service RENEWAL17Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Smith GlickCanadaBernardo Dominic NEW
Adams MorascaAustraliaAnna Fali NEGOTIATION
Tony FollerSpainStephen Shaw UNQUALIFIED
Jefferson SchemmerRussiaIoni Bowcher QUALIFIED
Kaitlin OstroskyIndiaAsiya Javayant NEGOTIATION
Leon OldroydIndiaIvan Magalhaes PROPOSAL
Ivar PaprockiIndiaIvan Magalhaes RENEWAL
Sinclair WaycottUnited KingdomIoni Bowcher UNQUALIFIED
Kaitlin OstroskyBrazilBernardo Dominic NEW
Deepesh ChuiJapanOnyama Limba NEGOTIATION
Juan WieserFranceIvan Magalhaes QUALIFIED
Octavia MaletUnited KingdomXuxue Feng RENEWAL
Jennifer AmigonUnited KingdomIoni Bowcher NEGOTIATION
Johnson SergiArgentinaAsiya Javayant NEGOTIATION
Julie StensethJapanXuxue Feng RENEWAL
David DarakjyArgentinaIoni Bowcher NEW
Rodrigues CampainFranceStephen Shaw NEW
Darci PoquetteGermanyElwin Sharvill UNQUALIFIED
Aruna FigeroaFranceAsiya Javayant NEW
Isabel BowleyCanadaOnyama Limba PROPOSAL
Alejandro PerinIndiaOnyama Limba PROPOSAL
Silvio SlusarskiAustraliaAsiya Javayant NEGOTIATION
Ashley DoeFranceAsiya Javayant NEGOTIATION
Izzy GarufiJapanAsiya Javayant NEGOTIATION
Jefferson SchemmerArgentinaXuxue Feng NEGOTIATION
Munro FerenczArgentinaStephen Shaw NEGOTIATION
Johnson SergiUnited KingdomIoni Bowcher RENEWAL
Deepesh ChuiArgentinaIoni Bowcher QUALIFIED
Jennifer AmigonItalyBernardo Dominic PROPOSAL
Juan WieserAustraliaAmy Elsner RENEWAL
Leja CaldareraFranceAsiya Javayant PROPOSAL
Ashley DoeCanadaAmy Elsner NEGOTIATION
Johnson SergiRussiaOnyama Limba QUALIFIED
Ivar PaprockiRussiaElwin Sharvill QUALIFIED
Ashley DoeItalyStephen Shaw RENEWAL
David DarakjyAustraliaIoni Bowcher QUALIFIED
Jeanfrancois VenereAustraliaBernardo Dominic UNQUALIFIED
Adams MorascaSpainBernardo Dominic UNQUALIFIED
Wickens NestleArgentinaElwin Sharvill NEW
Cody SaylorsItalyAmy Elsner NEW
Rodrigues CampainJapanAsiya Javayant RENEWAL
Maria MarrierSpainXuxue Feng NEW
Chavez BriddickGermanyOnyama Limba NEGOTIATION
Rodrigues CampainUnited KingdomIvan Magalhaes PROPOSAL
Jefferson SchemmerUnited KingdomIoni Bowcher NEW
Octavia MaletItalyStephen Shaw NEW
Jennifer AmigonJapanAsiya Javayant RENEWAL
Salvatore StockhamBrazilAsiya Javayant UNQUALIFIED
Johnson SergiJapanOnyama Limba QUALIFIED
Antonio CaudyFranceElwin Sharvill QUALIFIED
Frozen Columns
Name
Cody Saylors
Rodrigues Campain
Aika Inouye
Emily Whobrey
Maisha Rulapaugh
Jeanfrancois Venere
Aditya Kusko
Smith Glick
Octavia Malet
Mayumi Kolmetz
Murillo Malet
Maisha Rulapaugh
Ashley Doe
Aika Inouye
Juan Wieser
Jefferson Schemmer
Leja Caldarera
Kaitlin Ostrosky
Leja Caldarera
Chavez Briddick
Jeanfrancois Venere
Antonio Caudy
Greenwood Bolognia
Claire Tollner
Ivar Paprocki
Leja Caldarera
Tony Foller
Aditya Kusko
Morrow Ruta
Greenwood Bolognia
Chavez Briddick
Greenwood Bolognia
Jefferson Schemmer
Faith Gillian
James Butt
Clifford Rim
Silvio Slusarski
Claire Tollner
Silvio Slusarski
Costa Dilliard
Salvatore Stockham
Aika Inouye
Maria Marrier
Mayumi Kolmetz
Costa Dilliard
Chavez Briddick
Isabel Bowley
Kaitlin Ostrosky
Nicolas Iturbide
Murillo Malet
IdCountryDate
1000Argentina2021-04-25
1001Italy2021-05-09
1002France2021-04-25
1003Japan2021-04-30
1004Russia2021-05-10
1005United Kingdom2021-05-10
1006Brazil2021-04-24
1007Brazil2021-04-19
1008Canada2021-04-16
1009Canada2021-04-15
1010United Kingdom2021-05-03
1011Australia2021-04-26
1012Canada2021-04-14
1013Spain2021-04-26
1014India2021-04-16
1015Russia2021-04-16
1016France2021-05-06
1017France2021-05-11
1018Brazil2021-04-20
1019Spain2021-04-20
1020India2021-04-16
1021France2021-05-02
1022India2021-04-29
1023Australia2021-04-25
1024Argentina2021-04-16
1025Australia2021-04-16
1026France2021-04-25
1027Canada2021-05-03
1028India2021-04-22
1029Russia2021-04-15
1030Russia2021-05-03
1031Argentina2021-04-21
1032United Kingdom2021-05-06
1033Australia2021-05-12
1034United Kingdom2021-04-14
1035Japan2021-05-11
1036Spain2021-05-01
1037Canada2021-05-10
1038India2021-05-04
1039Spain2021-05-11
1040United Kingdom2021-05-06
1041Russia2021-04-28
1042Argentina2021-05-11
1043Argentina2021-05-09
1044Russia2021-04-25
1045Italy2021-05-09
1046India2021-05-03
1047Australia2021-04-14
1048India2021-04-29
1049Australia2021-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio CaudyItalyIvan Magalhaes UNQUALIFIED
Kadeem FlosiGermanyAnna Fali PROPOSAL
Darci PoquetteJapanOnyama Limba NEGOTIATION
Stacey MacleadFranceIoni Bowcher RENEWAL
Jeanfrancois VenereFranceOnyama Limba UNQUALIFIED
Julie StensethAustraliaIvan Magalhaes NEGOTIATION
Adams MorascaUnited KingdomXuxue Feng NEW
Jennifer AmigonBrazilAmy Elsner NEW
Maisha RulapaughCanadaAmy Elsner NEW
Julie StensethItalyBernardo Dominic RENEWAL
Isabel BowleyFranceStephen Shaw NEGOTIATION
Murillo MaletItalyOnyama Limba PROPOSAL
Maisha RulapaughAustraliaAmy Elsner UNQUALIFIED
Juan WieserBrazilOnyama Limba UNQUALIFIED
Leja CaldareraItalyAnna Fali UNQUALIFIED
Mayumi KolmetzFranceIoni Bowcher NEGOTIATION
Kadeem FlosiItalyAmy Elsner RENEWAL
Nicolas IturbideUnited KingdomOnyama Limba RENEWAL
Cody SaylorsJapanAnna Fali UNQUALIFIED
Ricardo GauchoGermanyOnyama Limba NEGOTIATION
Antonio CaudyBrazilAnna Fali RENEWAL
Jefferson SchemmerSpainIoni Bowcher NEW
Julie StensethAustraliaAnna Fali RENEWAL
Alejandro PerinBrazilStephen Shaw RENEWAL
Alejandro PerinCanadaAnna Fali PROPOSAL
Antonio CaudyGermanyOnyama Limba QUALIFIED
Aika InouyeFranceXuxue Feng PROPOSAL
Rodrigues CampainIndiaAmy Elsner NEGOTIATION
Leja CaldareraSpainStephen Shaw UNQUALIFIED
Kadeem FlosiIndiaIoni Bowcher UNQUALIFIED
David DarakjyArgentinaAmy Elsner RENEWAL
Alejandro PerinArgentinaAnna Fali QUALIFIED
Darci PoquetteBrazilOnyama Limba RENEWAL
Clifford RimCanadaXuxue Feng PROPOSAL
Rodrigues CampainBrazilAnna Fali NEW
Wickens NestleArgentinaIoni Bowcher UNQUALIFIED
Munro FerenczJapanAnna Fali PROPOSAL
Aditya KuskoUnited KingdomElwin Sharvill UNQUALIFIED
Leja CaldareraBrazilBernardo Dominic NEW
Jefferson SchemmerAustraliaElwin Sharvill 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>