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
Smith GlickJapanXuxue Feng RENEWAL
Ricardo GauchoItalyIvan Magalhaes UNQUALIFIED
Ashley DoeUnited KingdomAmy Elsner PROPOSAL
Costa DilliardFranceBernardo Dominic NEW
Claire TollnerBrazilAnna Fali RENEWAL
Costa DilliardItalyIoni Bowcher PROPOSAL
Emily WhobreyUnited KingdomXuxue Feng NEGOTIATION
Aika InouyeBrazilElwin Sharvill RENEWAL
Maria MarrierBrazilIoni Bowcher NEGOTIATION
Johnson SergiBrazilElwin Sharvill NEGOTIATION
Francesco ShinkoJapanAsiya Javayant RENEWAL
Izzy GarufiArgentinaStephen Shaw QUALIFIED
Silvio SlusarskiFranceAsiya Javayant UNQUALIFIED
Nicolas IturbideBrazilStephen Shaw NEW
David DarakjyArgentinaStephen Shaw QUALIFIED
Sinclair WaycottUnited KingdomElwin Sharvill RENEWAL
Rodrigues CampainUnited KingdomXuxue Feng NEW
Stacey MacleadIndiaAnna Fali PROPOSAL
Misaki RoysterSpainAnna Fali QUALIFIED
Juan WieserCanadaAnna Fali NEGOTIATION
Rodrigues CampainJapanXuxue Feng NEGOTIATION
Darci PoquetteUnited KingdomAnna Fali PROPOSAL
Kaitlin OstroskyJapanStephen Shaw PROPOSAL
David DarakjyRussiaAnna Fali NEGOTIATION
Jennifer AmigonJapanIvan Magalhaes QUALIFIED
Tony FollerBrazilOnyama Limba PROPOSAL
Johnson SergiBrazilOnyama Limba RENEWAL
Tony FollerGermanyBernardo Dominic UNQUALIFIED
Aika InouyeArgentinaXuxue Feng NEGOTIATION
Antonio CaudyIndiaElwin Sharvill PROPOSAL
Kaitlin OstroskyJapanAmy Elsner PROPOSAL
Ricardo GauchoGermanyIvan Magalhaes RENEWAL
Faith GillianItalyIvan Magalhaes UNQUALIFIED
Misaki RoysterUnited KingdomAnna Fali UNQUALIFIED
Darci PoquetteItalyAnna Fali UNQUALIFIED
Cody SaylorsItalyIoni Bowcher QUALIFIED
Morrow RutaAustraliaAnna Fali NEGOTIATION
James ButtIndiaOnyama Limba PROPOSAL
Jennifer AmigonBrazilAsiya Javayant NEGOTIATION
Maisha RulapaughBrazilElwin Sharvill RENEWAL
Morrow RutaBrazilAnna Fali NEGOTIATION
Smith GlickSpainAsiya Javayant QUALIFIED
Munro FerenczUnited KingdomAmy Elsner PROPOSAL
Nicolas IturbideItalyIoni Bowcher UNQUALIFIED
Maisha RulapaughUnited KingdomXuxue Feng QUALIFIED
Ivar PaprockiCanadaBernardo Dominic NEGOTIATION
Aditya KuskoArgentinaBernardo Dominic PROPOSAL
Arvin AlbaresArgentinaIoni Bowcher UNQUALIFIED
Maria MarrierUnited KingdomOnyama Limba UNQUALIFIED
Aika InouyeAustraliaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzItalyIvan Magalhaes NEW
Aika InouyeItalyBernardo Dominic NEW
Misaki RoysterUnited KingdomStephen Shaw PROPOSAL
Rodrigues CampainUnited KingdomAmy Elsner RENEWAL
Sinclair WaycottCanadaOnyama Limba PROPOSAL
Leja CaldareraGermanyOnyama Limba NEGOTIATION
Jennifer AmigonArgentinaElwin Sharvill NEW
Antonio CaudyRussiaIoni Bowcher QUALIFIED
Jeanfrancois VenereAustraliaXuxue Feng NEW
Salvatore StockhamJapanAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco ShinkoBrazil2021-03-24Feltz Printing Service QUALIFIED85Ioni Bowcher
1001Ashley DoeFrance2021-04-15Commercial Press UNQUALIFIED92Anna Fali
1002Francesco ShinkoCanada2021-03-28Feiner Bros PROPOSAL90Asiya Javayant
1003Juan WieserFrance2021-04-03Feltz Printing Service NEGOTIATION32Ioni Bowcher
1004Jefferson SchemmerAustralia2021-03-31Rangoni Of Florence NEGOTIATION24Elwin Sharvill
1005Wickens NestleJapan2021-03-20Commercial Press QUALIFIED55Asiya Javayant
1006Emily WhobreyArgentina2021-04-16Buckley Miller Wright QUALIFIED31Onyama Limba
1007Wickens NestleAustralia2021-03-19Rousseaux, Michael Esq UNQUALIFIED6Xuxue Feng
1008Ivar PaprockiGermany2021-03-22Chanay, Jeffrey A Esq NEW94Asiya Javayant
1009James ButtGermany2021-03-19Chapman, Ross E Esq QUALIFIED62Elwin Sharvill
1010Ivar PaprockiIndia2021-03-21Chanay, Jeffrey A Esq QUALIFIED97Stephen Shaw
1011Wickens NestleItaly2021-04-13Printing Dimensions PROPOSAL29Xuxue Feng
1012Kaitlin OstroskyAustralia2021-04-01Chanay, Jeffrey A Esq QUALIFIED94Ioni Bowcher
1013Chavez BriddickUnited Kingdom2021-04-05Chapman, Ross E Esq UNQUALIFIED28Amy Elsner
1014Aditya KuskoJapan2021-04-15Morlong Associates NEW73Onyama Limba
1015Salvatore StockhamRussia2021-03-22King, Christopher A Esq NEGOTIATION89Elwin Sharvill
1016Tony FollerFrance2021-03-22Morlong Associates RENEWAL90Anna Fali
1017Ricardo GauchoJapan2021-03-23Feltz Printing Service PROPOSAL74Bernardo Dominic
1018Misaki RoysterFrance2021-03-31King, Christopher A Esq NEGOTIATION35Stephen Shaw
1019James ButtBrazil2021-04-03King, Christopher A Esq NEGOTIATION92Amy Elsner
1020Isabel BowleySpain2021-03-24Printing Dimensions UNQUALIFIED58Onyama Limba
1021Aruna FigeroaIndia2021-04-02Dorl, James J Esq QUALIFIED99Ioni Bowcher
1022Cody SaylorsRussia2021-04-09Chemel, James L Cpa NEGOTIATION49Elwin Sharvill
1023Rodrigues CampainAustralia2021-04-14Chanay, Jeffrey A Esq UNQUALIFIED68Ioni Bowcher
1024Darci PoquetteFrance2021-04-08Rangoni Of Florence RENEWAL16Anna Fali
1025Tony FollerIndia2021-03-29Morlong Associates PROPOSAL49Bernardo Dominic
1026Ashley DoeAustralia2021-03-26Morlong Associates NEW53Asiya Javayant
1027Cody SaylorsArgentina2021-04-15Chapman, Ross E Esq RENEWAL99Onyama Limba
1028Mujtaba NickaArgentina2021-03-26Buckley Miller Wright RENEWAL48Elwin Sharvill
1029Faith GillianAustralia2021-04-04Rangoni Of Florence NEGOTIATION41Asiya Javayant
1030Alejandro PerinRussia2021-04-17Truhlar And Truhlar Attys UNQUALIFIED48Xuxue Feng
1031Isabel BowleyAustralia2021-03-22Feiner Bros NEGOTIATION51Asiya Javayant
1032Antonio CaudySpain2021-04-01King, Christopher A Esq NEW81Onyama Limba
1033James ButtSpain2021-04-17Chanay, Jeffrey A Esq UNQUALIFIED98Xuxue Feng
1034Mayumi KolmetzArgentina2021-04-09Chemel, James L Cpa UNQUALIFIED42Onyama Limba
1035Murillo MaletRussia2021-03-29Dorl, James J Esq NEGOTIATION64Elwin Sharvill
1036Morrow RutaSpain2021-03-24Printing Dimensions RENEWAL65Ivan Magalhaes
1037Kadeem FlosiAustralia2021-04-10Printing Dimensions PROPOSAL75Ioni Bowcher
1038Faith GillianBrazil2021-04-06Dorl, James J Esq NEGOTIATION53Bernardo Dominic
1039Stacey MacleadIndia2021-04-02King, Christopher A Esq RENEWAL80Elwin Sharvill
1040Jennifer AmigonFrance2021-03-31Commercial Press NEGOTIATION0Ivan Magalhaes
1041David DarakjyItaly2021-04-05Truhlar And Truhlar Attys UNQUALIFIED26Amy Elsner
1042Francesco ShinkoIndia2021-04-06Rangoni Of Florence NEGOTIATION7Ivan Magalhaes
1043Maisha RulapaughItaly2021-03-23Commercial Press QUALIFIED13Anna Fali
1044Faith GillianAustralia2021-04-16Commercial Press NEW12Asiya Javayant
1045Murillo MaletAustralia2021-03-23Feiner Bros PROPOSAL60Xuxue Feng
1046Ricardo GauchoFrance2021-04-14Rousseaux, Michael Esq NEW46Onyama Limba
1047Deepesh ChuiGermany2021-03-21Chemel, James L Cpa NEGOTIATION41Onyama Limba
1048Leon OldroydRussia2021-03-25Chapman, Ross E Esq RENEWAL15Ivan Magalhaes
1049Kaitlin OstroskyJapan2021-04-09Chanay, Jeffrey A Esq RENEWAL38Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadIndiaStephen Shaw RENEWAL
Francesco ShinkoArgentinaIoni Bowcher NEW
James ButtItalyBernardo Dominic QUALIFIED
Greenwood BologniaItalyAmy Elsner UNQUALIFIED
Jeanfrancois VenereRussiaElwin Sharvill PROPOSAL
Aruna FigeroaJapanBernardo Dominic NEGOTIATION
Ivar PaprockiCanadaIoni Bowcher PROPOSAL
Mujtaba NickaItalyElwin Sharvill NEW
Jennifer AmigonSpainBernardo Dominic UNQUALIFIED
Adams MorascaFranceBernardo Dominic NEW
Smith GlickItalyXuxue Feng NEGOTIATION
Claire TollnerCanadaAmy Elsner NEGOTIATION
Stacey MacleadAustraliaOnyama Limba PROPOSAL
Claire TollnerItalyAsiya Javayant PROPOSAL
Adams MorascaBrazilOnyama Limba RENEWAL
Jefferson SchemmerGermanyOnyama Limba UNQUALIFIED
Stacey MacleadUnited KingdomIoni Bowcher NEGOTIATION
Mayumi KolmetzItalyAmy Elsner RENEWAL
Nicolas IturbideGermanyElwin Sharvill UNQUALIFIED
Rodrigues CampainRussiaIoni Bowcher QUALIFIED
Costa DilliardArgentinaIoni Bowcher NEW
Faith GillianRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereRussiaAsiya Javayant RENEWAL
Salvatore StockhamIndiaIoni Bowcher QUALIFIED
Adams MorascaItalyXuxue Feng RENEWAL
Aika InouyeCanadaStephen Shaw NEGOTIATION
Maria MarrierFranceXuxue Feng NEGOTIATION
Aditya KuskoArgentinaAnna Fali RENEWAL
Munro FerenczSpainXuxue Feng NEW
Tony FollerArgentinaAmy Elsner QUALIFIED
Salvatore StockhamSpainIvan Magalhaes NEGOTIATION
Stacey MacleadCanadaStephen Shaw RENEWAL
Jefferson SchemmerIndiaElwin Sharvill NEGOTIATION
Isabel BowleyAustraliaXuxue Feng RENEWAL
Mayumi KolmetzAustraliaAsiya Javayant PROPOSAL
Aika InouyeItalyAsiya Javayant QUALIFIED
Greenwood BologniaSpainAsiya Javayant PROPOSAL
Silvio SlusarskiAustraliaAnna Fali NEW
Octavia MaletGermanyXuxue Feng NEGOTIATION
Cody SaylorsAustraliaAnna Fali QUALIFIED
Juan WieserBrazilAsiya Javayant PROPOSAL
Antonio CaudyRussiaAmy Elsner PROPOSAL
Murillo MaletGermanyAnna Fali RENEWAL
Tony FollerJapanAnna Fali RENEWAL
Ivar PaprockiItalyElwin Sharvill NEW
Aika InouyeJapanIvan Magalhaes PROPOSAL
Nicolas IturbideGermanyAnna Fali UNQUALIFIED
Tony FollerBrazilStephen Shaw NEW
Leon OldroydItalyIoni Bowcher PROPOSAL
Mujtaba NickaUnited KingdomIvan Magalhaes PROPOSAL
Frozen Columns
Name
Isabel Bowley
Aruna Figeroa
Aika Inouye
Munro Ferencz
Stacey Maclead
Antonio Caudy
Izzy Garufi
Isabel Bowley
Costa Dilliard
James Butt
Munro Ferencz
Darci Poquette
Ashley Doe
Misaki Royster
Ashley Doe
Claire Tollner
Faith Gillian
Smith Glick
Stacey Maclead
James Butt
Ricardo Gaucho
Maria Marrier
Greenwood Bolognia
Jeanfrancois Venere
Chavez Briddick
James Butt
Costa Dilliard
Cody Saylors
Alejandro Perin
Jeanfrancois Venere
Faith Gillian
Jefferson Schemmer
Misaki Royster
Izzy Garufi
Arvin Albares
Maria Marrier
Tony Foller
Jennifer Amigon
Deepesh Chui
Misaki Royster
Maisha Rulapaugh
Isabel Bowley
Mujtaba Nicka
Chavez Briddick
Leja Caldarera
Smith Glick
Isabel Bowley
Jeanfrancois Venere
Juan Wieser
Julie Stenseth
IdCountryDate
1000United Kingdom2021-04-13
1001India2021-03-26
1002India2021-03-26
1003Australia2021-03-30
1004Canada2021-04-05
1005Germany2021-04-02
1006Russia2021-03-24
1007Spain2021-04-04
1008Russia2021-03-28
1009Brazil2021-03-22
1010Brazil2021-03-19
1011Brazil2021-04-02
1012Argentina2021-04-10
1013Spain2021-04-07
1014Germany2021-03-22
1015Spain2021-03-23
1016United Kingdom2021-04-16
1017United Kingdom2021-04-09
1018Australia2021-04-01
1019Germany2021-03-28
1020Spain2021-04-17
1021Japan2021-03-20
1022Argentina2021-03-27
1023Italy2021-04-13
1024United Kingdom2021-04-13
1025Canada2021-04-04
1026India2021-04-16
1027United Kingdom2021-04-10
1028Argentina2021-04-11
1029Spain2021-03-23
1030Japan2021-04-05
1031France2021-03-21
1032France2021-04-01
1033Australia2021-04-11
1034Japan2021-04-17
1035France2021-04-16
1036India2021-03-27
1037Italy2021-04-13
1038Brazil2021-03-27
1039Japan2021-03-30
1040Germany2021-03-27
1041Germany2021-03-23
1042United Kingdom2021-03-26
1043France2021-04-09
1044Brazil2021-04-11
1045India2021-03-20
1046Japan2021-04-16
1047India2021-03-23
1048India2021-03-24
1049Canada2021-03-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinArgentinaBernardo Dominic NEW
Smith GlickItalyBernardo Dominic NEW
Clifford RimRussiaAmy Elsner QUALIFIED
Mujtaba NickaBrazilStephen Shaw QUALIFIED
Ashley DoeSpainStephen Shaw QUALIFIED
Misaki RoysterAustraliaIvan Magalhaes NEW
Mayumi KolmetzArgentinaXuxue Feng QUALIFIED
Izzy GarufiCanadaStephen Shaw UNQUALIFIED
Francesco ShinkoFranceStephen Shaw NEGOTIATION
Aruna FigeroaAustraliaAnna Fali RENEWAL
Morrow RutaJapanIvan Magalhaes NEW
Ivar PaprockiIndiaStephen Shaw QUALIFIED
Greenwood BologniaJapanXuxue Feng QUALIFIED
James ButtRussiaXuxue Feng PROPOSAL
Morrow RutaJapanAmy Elsner QUALIFIED
Mayumi KolmetzCanadaIvan Magalhaes UNQUALIFIED
Adams MorascaFranceAnna Fali NEGOTIATION
Stacey MacleadItalyAmy Elsner QUALIFIED
Mayumi KolmetzRussiaAnna Fali QUALIFIED
Munro FerenczBrazilAnna Fali NEW
David DarakjyCanadaBernardo Dominic QUALIFIED
Alejandro PerinUnited KingdomStephen Shaw NEGOTIATION
Antonio CaudyIndiaStephen Shaw UNQUALIFIED
Jefferson SchemmerRussiaAsiya Javayant RENEWAL
Mujtaba NickaArgentinaAnna Fali UNQUALIFIED
Murillo MaletRussiaIvan Magalhaes UNQUALIFIED
Claire TollnerCanadaElwin Sharvill PROPOSAL
Aruna FigeroaGermanyStephen Shaw UNQUALIFIED
Jones VocelkaAustraliaXuxue Feng NEGOTIATION
Ivar PaprockiItalyBernardo Dominic UNQUALIFIED
Ricardo GauchoUnited KingdomAnna Fali NEW
Isabel BowleyUnited KingdomAsiya Javayant NEGOTIATION
Cody SaylorsIndiaAmy Elsner RENEWAL
Costa DilliardItalyAsiya Javayant RENEWAL
Wickens NestleRussiaIvan Magalhaes PROPOSAL
Aika InouyeJapanAnna Fali QUALIFIED
Johnson SergiRussiaIvan Magalhaes NEGOTIATION
Greenwood BologniaAustraliaIoni Bowcher PROPOSAL
Adams MorascaUnited KingdomBernardo Dominic RENEWAL
Adams MorascaGermanyIvan Magalhaes 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>