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
Johnson SergiItalyAnna Fali QUALIFIED
Rodrigues CampainRussiaBernardo Dominic NEGOTIATION
Isabel BowleyAustraliaOnyama Limba QUALIFIED
Antonio CaudyFranceIoni Bowcher NEGOTIATION
David DarakjyRussiaAmy Elsner PROPOSAL
Tony FollerItalyIoni Bowcher QUALIFIED
Francesco ShinkoUnited KingdomAsiya Javayant QUALIFIED
Aika InouyeSpainAsiya Javayant UNQUALIFIED
Mayumi KolmetzIndiaXuxue Feng NEW
David DarakjyItalyStephen Shaw PROPOSAL
Murillo MaletItalyAsiya Javayant UNQUALIFIED
Francesco ShinkoSpainBernardo Dominic NEGOTIATION
Adams MorascaFranceAsiya Javayant RENEWAL
Silvio SlusarskiArgentinaElwin Sharvill UNQUALIFIED
Alejandro PerinSpainOnyama Limba NEW
Mayumi KolmetzCanadaOnyama Limba RENEWAL
Cody SaylorsCanadaBernardo Dominic QUALIFIED
Murillo MaletIndiaElwin Sharvill NEW
Johnson SergiUnited KingdomAsiya Javayant PROPOSAL
Maria MarrierAustraliaAnna Fali NEGOTIATION
Aruna FigeroaArgentinaIoni Bowcher NEGOTIATION
Adams MorascaCanadaStephen Shaw NEGOTIATION
Leon OldroydGermanyAnna Fali UNQUALIFIED
Maisha RulapaughFranceElwin Sharvill NEW
Julie StensethBrazilOnyama Limba RENEWAL
Kadeem FlosiGermanyStephen Shaw NEW
Jefferson SchemmerArgentinaAsiya Javayant NEW
Maisha RulapaughRussiaBernardo Dominic NEW
Salvatore StockhamSpainIoni Bowcher PROPOSAL
Mayumi KolmetzUnited KingdomXuxue Feng NEW
Emily WhobreyBrazilElwin Sharvill UNQUALIFIED
Nicolas IturbideIndiaAnna Fali RENEWAL
Mayumi KolmetzRussiaAsiya Javayant UNQUALIFIED
Claire TollnerUnited KingdomIoni Bowcher QUALIFIED
Aruna FigeroaUnited KingdomXuxue Feng PROPOSAL
Juan WieserItalyElwin Sharvill UNQUALIFIED
James ButtFranceAsiya Javayant NEW
Juan WieserGermanyAmy Elsner NEGOTIATION
Mujtaba NickaBrazilIvan Magalhaes NEW
Clifford RimIndiaXuxue Feng NEW
Wickens NestleGermanyXuxue Feng UNQUALIFIED
Juan WieserUnited KingdomStephen Shaw NEGOTIATION
Smith GlickRussiaIvan Magalhaes NEGOTIATION
Aruna FigeroaJapanAnna Fali NEGOTIATION
Jennifer AmigonIndiaElwin Sharvill QUALIFIED
Jones VocelkaFranceAmy Elsner RENEWAL
Johnson SergiBrazilStephen Shaw NEW
Aruna FigeroaAustraliaIoni Bowcher PROPOSAL
Ashley DoeFranceElwin Sharvill UNQUALIFIED
Arvin AlbaresSpainAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aditya KuskoItalyIvan Magalhaes RENEWAL
Jennifer AmigonUnited KingdomElwin Sharvill UNQUALIFIED
Aruna FigeroaUnited KingdomOnyama Limba PROPOSAL
Jefferson SchemmerUnited KingdomElwin Sharvill NEW
Munro FerenczItalyIvan Magalhaes NEGOTIATION
Smith GlickRussiaBernardo Dominic NEGOTIATION
Izzy GarufiAustraliaIvan Magalhaes NEW
Jeanfrancois VenereIndiaAnna Fali RENEWAL
Octavia MaletSpainOnyama Limba NEGOTIATION
Salvatore StockhamIndiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo GauchoIndia2021-04-20Buckley Miller Wright NEGOTIATION25Stephen Shaw
1001Juan WieserIndia2021-04-15Commercial Press QUALIFIED10Bernardo Dominic
1002Alejandro PerinArgentina2021-05-03Buckley Miller Wright NEW64Elwin Sharvill
1003Antonio CaudyJapan2021-05-01Truhlar And Truhlar Attys NEW37Asiya Javayant
1004Emily WhobreyArgentina2021-05-01Rangoni Of Florence PROPOSAL21Xuxue Feng
1005Alejandro PerinRussia2021-05-12Feltz Printing Service NEW74Anna Fali
1006Chavez BriddickJapan2021-05-08Chemel, James L Cpa NEGOTIATION84Asiya Javayant
1007Emily WhobreyJapan2021-04-16King, Christopher A Esq PROPOSAL87Onyama Limba
1008Alejandro PerinAustralia2021-05-11King, Christopher A Esq NEGOTIATION49Amy Elsner
1009Alejandro PerinGermany2021-05-13Printing Dimensions NEGOTIATION51Elwin Sharvill
1010Antonio CaudyUnited Kingdom2021-05-01King, Christopher A Esq NEW90Anna Fali
1011Maisha RulapaughGermany2021-05-12Buckley Miller Wright UNQUALIFIED88Elwin Sharvill
1012Maisha RulapaughArgentina2021-05-01Chemel, James L Cpa RENEWAL83Stephen Shaw
1013Octavia MaletJapan2021-04-26Chanay, Jeffrey A Esq UNQUALIFIED16Bernardo Dominic
1014Ashley DoeArgentina2021-05-09Feiner Bros PROPOSAL43Onyama Limba
1015Isabel BowleyGermany2021-04-24Feltz Printing Service NEGOTIATION79Asiya Javayant
1016David DarakjyArgentina2021-05-12Rangoni Of Florence PROPOSAL48Onyama Limba
1017Aika InouyeItaly2021-04-16Buckley Miller Wright RENEWAL4Elwin Sharvill
1018Jefferson SchemmerRussia2021-04-15Commercial Press QUALIFIED0Ioni Bowcher
1019Darci PoquetteCanada2021-04-21Printing Dimensions PROPOSAL93Bernardo Dominic
1020Antonio CaudyJapan2021-05-11Truhlar And Truhlar Attys PROPOSAL50Amy Elsner
1021Murillo MaletBrazil2021-05-02Rousseaux, Michael Esq UNQUALIFIED33Xuxue Feng
1022Kaitlin OstroskyUnited Kingdom2021-04-15Morlong Associates UNQUALIFIED96Bernardo Dominic
1023David DarakjyJapan2021-04-15Rangoni Of Florence QUALIFIED13Elwin Sharvill
1024Rodrigues CampainJapan2021-04-25Chapman, Ross E Esq NEW42Bernardo Dominic
1025Rodrigues CampainBrazil2021-04-20Printing Dimensions NEW41Amy Elsner
1026Faith GillianRussia2021-04-15Feltz Printing Service PROPOSAL30Ivan Magalhaes
1027Francesco ShinkoSpain2021-05-09King, Christopher A Esq QUALIFIED44Asiya Javayant
1028Darci PoquetteCanada2021-04-22Feiner Bros RENEWAL3Bernardo Dominic
1029Tony FollerBrazil2021-05-07King, Christopher A Esq PROPOSAL38Ioni Bowcher
1030Greenwood BologniaArgentina2021-04-15Truhlar And Truhlar Attys RENEWAL51Amy Elsner
1031Kadeem FlosiFrance2021-04-30Feiner Bros NEW79Onyama Limba
1032Jefferson SchemmerIndia2021-05-04Rousseaux, Michael Esq PROPOSAL87Bernardo Dominic
1033Rodrigues CampainRussia2021-04-27Feiner Bros NEW59Stephen Shaw
1034Jones VocelkaArgentina2021-05-04Morlong Associates NEGOTIATION79Onyama Limba
1035Cody SaylorsGermany2021-05-07Feltz Printing Service NEW82Ioni Bowcher
1036Munro FerenczUnited Kingdom2021-04-21Commercial Press QUALIFIED61Amy Elsner
1037Stacey MacleadRussia2021-04-23Chapman, Ross E Esq NEGOTIATION94Ioni Bowcher
1038Arvin AlbaresBrazil2021-05-13Feiner Bros RENEWAL8Amy Elsner
1039Cody SaylorsBrazil2021-05-13Feiner Bros PROPOSAL49Ivan Magalhaes
1040Antonio CaudyUnited Kingdom2021-05-09Commercial Press UNQUALIFIED87Bernardo Dominic
1041Leja CaldareraCanada2021-04-26Chemel, James L Cpa PROPOSAL48Onyama Limba
1042Ashley DoeUnited Kingdom2021-05-03Feiner Bros UNQUALIFIED15Elwin Sharvill
1043Ivar PaprockiArgentina2021-05-04Rousseaux, Michael Esq UNQUALIFIED77Amy Elsner
1044Claire TollnerRussia2021-04-25King, Christopher A Esq RENEWAL6Bernardo Dominic
1045Ricardo GauchoAustralia2021-04-25Chapman, Ross E Esq RENEWAL65Ivan Magalhaes
1046Leja CaldareraItaly2021-04-24Benton, John B Jr UNQUALIFIED85Anna Fali
1047Smith GlickRussia2021-05-10Chemel, James L Cpa RENEWAL86Asiya Javayant
1048Mayumi KolmetzArgentina2021-05-04King, Christopher A Esq NEGOTIATION99Amy Elsner
1049Cody SaylorsJapan2021-05-13Morlong Associates NEGOTIATION45Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Wickens NestleFranceXuxue Feng PROPOSAL
Darci PoquetteIndiaOnyama Limba QUALIFIED
Stacey MacleadAustraliaBernardo Dominic NEGOTIATION
Jeanfrancois VenereBrazilElwin Sharvill UNQUALIFIED
Octavia MaletFranceAnna Fali NEGOTIATION
Tony FollerItalyElwin Sharvill NEW
Salvatore StockhamAustraliaStephen Shaw RENEWAL
Adams MorascaItalyElwin Sharvill UNQUALIFIED
Francesco ShinkoGermanyIvan Magalhaes PROPOSAL
Ashley DoeIndiaElwin Sharvill PROPOSAL
Rodrigues CampainFranceIoni Bowcher QUALIFIED
Murillo MaletCanadaIvan Magalhaes QUALIFIED
Stacey MacleadBrazilIvan Magalhaes PROPOSAL
Maria MarrierBrazilAnna Fali UNQUALIFIED
Greenwood BologniaBrazilXuxue Feng NEW
Kadeem FlosiFranceAmy Elsner UNQUALIFIED
Ashley DoeRussiaBernardo Dominic NEGOTIATION
Cody SaylorsUnited KingdomAsiya Javayant NEGOTIATION
Leon OldroydFranceStephen Shaw PROPOSAL
Emily WhobreyBrazilXuxue Feng NEW
Aruna FigeroaJapanAsiya Javayant PROPOSAL
Rodrigues CampainArgentinaAmy Elsner RENEWAL
Leon OldroydRussiaStephen Shaw NEGOTIATION
Isabel BowleySpainAmy Elsner PROPOSAL
Wickens NestleAustraliaAsiya Javayant UNQUALIFIED
Costa DilliardRussiaAmy Elsner NEW
Leja CaldareraUnited KingdomElwin Sharvill PROPOSAL
Darci PoquetteUnited KingdomAnna Fali NEW
Alejandro PerinRussiaAnna Fali UNQUALIFIED
Silvio SlusarskiFranceOnyama Limba PROPOSAL
Costa DilliardJapanXuxue Feng RENEWAL
Emily WhobreyCanadaIvan Magalhaes PROPOSAL
Johnson SergiBrazilIoni Bowcher NEGOTIATION
Jeanfrancois VenereSpainBernardo Dominic PROPOSAL
Ricardo GauchoRussiaElwin Sharvill UNQUALIFIED
Darci PoquetteIndiaAsiya Javayant NEGOTIATION
Izzy GarufiSpainIoni Bowcher NEW
Mayumi KolmetzAustraliaBernardo Dominic QUALIFIED
Morrow RutaUnited KingdomAmy Elsner PROPOSAL
Emily WhobreyArgentinaXuxue Feng NEGOTIATION
Izzy GarufiGermanyStephen Shaw QUALIFIED
Claire TollnerIndiaElwin Sharvill RENEWAL
Tony FollerCanadaAmy Elsner QUALIFIED
Julie StensethItalyAnna Fali PROPOSAL
Claire TollnerAustraliaIoni Bowcher QUALIFIED
Aika InouyeRussiaXuxue Feng PROPOSAL
Arvin AlbaresItalyOnyama Limba QUALIFIED
Munro FerenczIndiaIoni Bowcher PROPOSAL
Murillo MaletGermanyIoni Bowcher UNQUALIFIED
Rodrigues CampainJapanIoni Bowcher PROPOSAL
Frozen Columns
Name
Mujtaba Nicka
Ivar Paprocki
Aika Inouye
Mayumi Kolmetz
Misaki Royster
Wickens Nestle
Wickens Nestle
Mujtaba Nicka
Aika Inouye
Maria Marrier
Murillo Malet
Octavia Malet
Ricardo Gaucho
Alejandro Perin
Julie Stenseth
Silvio Slusarski
Adams Morasca
Leon Oldroyd
Aika Inouye
David Darakjy
Ricardo Gaucho
Adams Morasca
Izzy Garufi
Sinclair Waycott
Cody Saylors
Alejandro Perin
Kadeem Flosi
Leja Caldarera
Silvio Slusarski
Costa Dilliard
Mayumi Kolmetz
Juan Wieser
Kadeem Flosi
Silvio Slusarski
Misaki Royster
Tony Foller
Alejandro Perin
Isabel Bowley
Tony Foller
Deepesh Chui
Stacey Maclead
Johnson Sergi
Ricardo Gaucho
Emily Whobrey
Nicolas Iturbide
Darci Poquette
Arvin Albares
Rodrigues Campain
Mujtaba Nicka
Adams Morasca
IdCountryDate
1000France2021-04-18
1001Canada2021-04-26
1002India2021-05-07
1003Russia2021-04-27
1004France2021-05-08
1005Russia2021-05-08
1006India2021-04-28
1007Brazil2021-05-06
1008Canada2021-04-14
1009France2021-04-17
1010Spain2021-04-26
1011Brazil2021-04-18
1012India2021-05-10
1013United Kingdom2021-04-17
1014India2021-05-05
1015Australia2021-04-24
1016United Kingdom2021-04-20
1017United Kingdom2021-04-15
1018France2021-04-20
1019Canada2021-04-25
1020Argentina2021-05-13
1021Italy2021-05-09
1022Russia2021-05-06
1023France2021-05-07
1024India2021-05-04
1025Brazil2021-05-04
1026Australia2021-05-04
1027India2021-05-07
1028Canada2021-05-08
1029Argentina2021-04-24
1030Japan2021-04-25
1031United Kingdom2021-04-20
1032Japan2021-04-18
1033Russia2021-04-19
1034Canada2021-05-10
1035France2021-05-03
1036Germany2021-04-18
1037United Kingdom2021-04-22
1038United Kingdom2021-05-08
1039Japan2021-04-22
1040Germany2021-05-06
1041Canada2021-04-26
1042France2021-05-05
1043France2021-05-07
1044Japan2021-05-01
1045Spain2021-04-19
1046Argentina2021-05-12
1047Argentina2021-05-04
1048Spain2021-05-01
1049Japan2021-05-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow RutaJapanIvan Magalhaes NEW
Arvin AlbaresCanadaStephen Shaw PROPOSAL
Misaki RoysterAustraliaAsiya Javayant UNQUALIFIED
Ashley DoeAustraliaXuxue Feng QUALIFIED
Greenwood BologniaFranceBernardo Dominic PROPOSAL
Misaki RoysterIndiaAnna Fali NEW
Ricardo GauchoSpainAsiya Javayant UNQUALIFIED
Ricardo GauchoCanadaIvan Magalhaes UNQUALIFIED
Jefferson SchemmerUnited KingdomAsiya Javayant UNQUALIFIED
Morrow RutaArgentinaAmy Elsner PROPOSAL
Jeanfrancois VenereGermanyBernardo Dominic QUALIFIED
Alejandro PerinJapanXuxue Feng RENEWAL
Jennifer AmigonFranceIoni Bowcher RENEWAL
Sinclair WaycottIndiaStephen Shaw QUALIFIED
Juan WieserIndiaIoni Bowcher UNQUALIFIED
Aika InouyeArgentinaAsiya Javayant QUALIFIED
Claire TollnerArgentinaOnyama Limba QUALIFIED
Kadeem FlosiArgentinaAsiya Javayant RENEWAL
Antonio CaudyIndiaXuxue Feng UNQUALIFIED
Stacey MacleadIndiaOnyama Limba NEW
Julie StensethSpainAnna Fali NEGOTIATION
Chavez BriddickRussiaOnyama Limba RENEWAL
Rodrigues CampainCanadaIvan Magalhaes QUALIFIED
Kaitlin OstroskyAustraliaIoni Bowcher NEGOTIATION
Adams MorascaArgentinaIoni Bowcher NEGOTIATION
Rodrigues CampainItalyAnna Fali UNQUALIFIED
Misaki RoysterIndiaIoni Bowcher RENEWAL
Alejandro PerinGermanyAnna Fali NEGOTIATION
Costa DilliardJapanBernardo Dominic PROPOSAL
Sinclair WaycottAustraliaStephen Shaw UNQUALIFIED
Costa DilliardBrazilIoni Bowcher UNQUALIFIED
Stacey MacleadAustraliaBernardo Dominic UNQUALIFIED
Munro FerenczArgentinaElwin Sharvill RENEWAL
Julie StensethGermanyBernardo Dominic UNQUALIFIED
Juan WieserGermanyAsiya Javayant NEGOTIATION
Ricardo GauchoRussiaAmy Elsner QUALIFIED
Clifford RimAustraliaXuxue Feng RENEWAL
Deepesh ChuiSpainXuxue Feng NEW
Jeanfrancois VenereGermanyIvan Magalhaes RENEWAL
Costa DilliardUnited KingdomIvan Magalhaes 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>