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
Rodrigues CampainSpainElwin Sharvill PROPOSAL
Francesco ShinkoIndiaIvan Magalhaes NEW
David DarakjyItalyAmy Elsner QUALIFIED
Misaki RoysterItalyAsiya Javayant UNQUALIFIED
Octavia MaletIndiaAsiya Javayant UNQUALIFIED
Alejandro PerinArgentinaStephen Shaw PROPOSAL
Munro FerenczAustraliaIvan Magalhaes NEGOTIATION
Julie StensethArgentinaElwin Sharvill NEGOTIATION
Claire TollnerCanadaAnna Fali RENEWAL
Silvio SlusarskiGermanyElwin Sharvill NEW
Clifford RimRussiaIvan Magalhaes UNQUALIFIED
Arvin AlbaresFranceAnna Fali NEW
Kaitlin OstroskyBrazilAnna Fali PROPOSAL
Aditya KuskoAustraliaAnna Fali NEW
Juan WieserIndiaAsiya Javayant PROPOSAL
Adams MorascaRussiaBernardo Dominic UNQUALIFIED
Nicolas IturbideIndiaXuxue Feng QUALIFIED
Stacey MacleadSpainAsiya Javayant UNQUALIFIED
James ButtIndiaXuxue Feng RENEWAL
Silvio SlusarskiCanadaAnna Fali QUALIFIED
Claire TollnerJapanXuxue Feng NEGOTIATION
Murillo MaletArgentinaIvan Magalhaes QUALIFIED
Stacey MacleadItalyIoni Bowcher NEGOTIATION
Stacey MacleadGermanyAsiya Javayant PROPOSAL
Sinclair WaycottArgentinaAmy Elsner QUALIFIED
Johnson SergiFranceAmy Elsner NEGOTIATION
Francesco ShinkoFranceStephen Shaw QUALIFIED
Jones VocelkaRussiaIvan Magalhaes UNQUALIFIED
Misaki RoysterRussiaStephen Shaw NEGOTIATION
James ButtSpainAmy Elsner UNQUALIFIED
Antonio CaudyRussiaAnna Fali NEW
Aditya KuskoBrazilStephen Shaw NEGOTIATION
Kadeem FlosiArgentinaIvan Magalhaes NEGOTIATION
Chavez BriddickArgentinaAsiya Javayant NEW
Aditya KuskoIndiaAmy Elsner PROPOSAL
Claire TollnerBrazilOnyama Limba UNQUALIFIED
Izzy GarufiRussiaElwin Sharvill RENEWAL
Tony FollerArgentinaBernardo Dominic RENEWAL
David DarakjyRussiaElwin Sharvill RENEWAL
Emily WhobreyCanadaAmy Elsner PROPOSAL
Smith GlickBrazilAnna Fali UNQUALIFIED
Alejandro PerinItalyStephen Shaw QUALIFIED
Stacey MacleadCanadaIoni Bowcher RENEWAL
Murillo MaletJapanIvan Magalhaes QUALIFIED
Deepesh ChuiAustraliaIvan Magalhaes QUALIFIED
Rodrigues CampainRussiaXuxue Feng QUALIFIED
Darci PoquetteGermanyBernardo Dominic QUALIFIED
Tony FollerIndiaIvan Magalhaes NEW
Nicolas IturbideSpainXuxue Feng PROPOSAL
Clifford RimRussiaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Morrow RutaSpainIoni Bowcher QUALIFIED
Jeanfrancois VenereRussiaXuxue Feng NEW
Julie StensethIndiaAsiya Javayant PROPOSAL
Chavez BriddickUnited KingdomIoni Bowcher NEGOTIATION
Mayumi KolmetzArgentinaAnna Fali NEW
Juan WieserCanadaOnyama Limba NEGOTIATION
Mayumi KolmetzIndiaIoni Bowcher QUALIFIED
Ricardo GauchoItalyElwin Sharvill QUALIFIED
Julie StensethFranceAnna Fali UNQUALIFIED
Isabel BowleyGermanyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow RutaBrazil2021-04-06Dorl, James J Esq QUALIFIED21Anna Fali
1001Aditya KuskoRussia2021-04-10Morlong Associates UNQUALIFIED54Bernardo Dominic
1002Aditya KuskoSpain2021-03-31Chanay, Jeffrey A Esq NEW41Anna Fali
1003Emily WhobreyFrance2021-04-11Feltz Printing Service QUALIFIED18Ivan Magalhaes
1004Jones VocelkaRussia2021-04-05Rousseaux, Michael Esq RENEWAL24Bernardo Dominic
1005Tony FollerSpain2021-04-01Chapman, Ross E Esq UNQUALIFIED26Amy Elsner
1006Maisha RulapaughCanada2021-03-14King, Christopher A Esq QUALIFIED61Onyama Limba
1007Silvio SlusarskiJapan2021-03-31Printing Dimensions PROPOSAL13Stephen Shaw
1008Stacey MacleadRussia2021-03-28Chemel, James L Cpa QUALIFIED62Amy Elsner
1009Nicolas IturbideIndia2021-03-24Dorl, James J Esq PROPOSAL58Ivan Magalhaes
1010James ButtArgentina2021-03-27Chanay, Jeffrey A Esq PROPOSAL19Bernardo Dominic
1011Claire TollnerIndia2021-03-14Chanay, Jeffrey A Esq PROPOSAL15Ioni Bowcher
1012Wickens NestleFrance2021-03-24Benton, John B Jr PROPOSAL60Xuxue Feng
1013James ButtBrazil2021-04-04Morlong Associates RENEWAL97Elwin Sharvill
1014Salvatore StockhamCanada2021-04-06Truhlar And Truhlar Attys NEGOTIATION75Bernardo Dominic
1015Munro FerenczItaly2021-03-24Morlong Associates PROPOSAL13Asiya Javayant
1016Tony FollerCanada2021-03-31Feltz Printing Service RENEWAL29Xuxue Feng
1017Johnson SergiSpain2021-03-16Rousseaux, Michael Esq UNQUALIFIED24Onyama Limba
1018Julie StensethJapan2021-04-01Chemel, James L Cpa RENEWAL75Amy Elsner
1019Emily WhobreyGermany2021-03-24Dorl, James J Esq PROPOSAL48Xuxue Feng
1020Johnson SergiSpain2021-04-05Feltz Printing Service NEW16Onyama Limba
1021Deepesh ChuiItaly2021-04-06Chapman, Ross E Esq QUALIFIED14Anna Fali
1022Sinclair WaycottItaly2021-03-21Chanay, Jeffrey A Esq QUALIFIED86Amy Elsner
1023Rodrigues CampainSpain2021-04-05Buckley Miller Wright NEGOTIATION61Ivan Magalhaes
1024Julie StensethGermany2021-04-04Rangoni Of Florence NEW72Bernardo Dominic
1025Adams MorascaIndia2021-03-17King, Christopher A Esq NEGOTIATION48Elwin Sharvill
1026Octavia MaletGermany2021-04-10Morlong Associates QUALIFIED30Bernardo Dominic
1027Tony FollerFrance2021-04-02Benton, John B Jr RENEWAL72Amy Elsner
1028Isabel BowleyRussia2021-03-27Chemel, James L Cpa NEGOTIATION37Elwin Sharvill
1029Leja CaldareraRussia2021-03-28Commercial Press UNQUALIFIED41Amy Elsner
1030Ashley DoeAustralia2021-04-08Buckley Miller Wright NEGOTIATION84Onyama Limba
1031Alejandro PerinJapan2021-03-21Chapman, Ross E Esq QUALIFIED31Asiya Javayant
1032Darci PoquetteIndia2021-03-18King, Christopher A Esq PROPOSAL37Ivan Magalhaes
1033Tony FollerAustralia2021-03-28Printing Dimensions NEGOTIATION13Onyama Limba
1034Chavez BriddickAustralia2021-03-18Feiner Bros NEGOTIATION21Asiya Javayant
1035Silvio SlusarskiFrance2021-03-22Benton, John B Jr NEW71Asiya Javayant
1036Kadeem FlosiRussia2021-03-15Chapman, Ross E Esq NEW52Stephen Shaw
1037Darci PoquetteArgentina2021-04-07Printing Dimensions PROPOSAL21Ivan Magalhaes
1038Aditya KuskoUnited Kingdom2021-03-25Rousseaux, Michael Esq RENEWAL34Elwin Sharvill
1039Aditya KuskoArgentina2021-03-13Dorl, James J Esq PROPOSAL80Amy Elsner
1040Jefferson SchemmerAustralia2021-04-11Truhlar And Truhlar Attys UNQUALIFIED9Ioni Bowcher
1041Octavia MaletUnited Kingdom2021-04-04Truhlar And Truhlar Attys QUALIFIED72Ivan Magalhaes
1042Francesco ShinkoItaly2021-03-29Feiner Bros UNQUALIFIED56Asiya Javayant
1043Silvio SlusarskiCanada2021-04-11Commercial Press NEW59Asiya Javayant
1044Greenwood BologniaItaly2021-03-28Rousseaux, Michael Esq QUALIFIED97Elwin Sharvill
1045Costa DilliardGermany2021-04-11Truhlar And Truhlar Attys NEW25Amy Elsner
1046Maisha RulapaughRussia2021-04-06Benton, John B Jr NEGOTIATION22Onyama Limba
1047Julie StensethAustralia2021-03-22Printing Dimensions PROPOSAL43Anna Fali
1048Darci PoquetteGermany2021-04-04Chanay, Jeffrey A Esq NEGOTIATION72Amy Elsner
1049Rodrigues CampainFrance2021-03-15Chapman, Ross E Esq NEW77Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Silvio SlusarskiArgentinaAsiya Javayant RENEWAL
James ButtArgentinaAnna Fali QUALIFIED
Rodrigues CampainFranceAmy Elsner PROPOSAL
Clifford RimGermanyIvan Magalhaes NEGOTIATION
Murillo MaletItalyIvan Magalhaes RENEWAL
James ButtGermanyElwin Sharvill QUALIFIED
Francesco ShinkoArgentinaXuxue Feng RENEWAL
Misaki RoysterFranceIoni Bowcher RENEWAL
Smith GlickSpainIoni Bowcher QUALIFIED
Clifford RimFranceIvan Magalhaes PROPOSAL
Chavez BriddickFranceAmy Elsner UNQUALIFIED
James ButtJapanBernardo Dominic NEW
Jefferson SchemmerUnited KingdomIvan Magalhaes UNQUALIFIED
Wickens NestleSpainXuxue Feng NEW
Jeanfrancois VenereJapanIoni Bowcher UNQUALIFIED
Jennifer AmigonArgentinaOnyama Limba NEGOTIATION
James ButtGermanyAsiya Javayant NEW
Jeanfrancois VenereRussiaAmy Elsner NEGOTIATION
Jefferson SchemmerBrazilAsiya Javayant NEW
Murillo MaletCanadaOnyama Limba NEGOTIATION
Aika InouyeUnited KingdomAsiya Javayant NEGOTIATION
Chavez BriddickSpainXuxue Feng QUALIFIED
Rodrigues CampainUnited KingdomIvan Magalhaes NEW
Maisha RulapaughIndiaXuxue Feng UNQUALIFIED
Claire TollnerIndiaAnna Fali PROPOSAL
Sinclair WaycottItalyAnna Fali PROPOSAL
Leon OldroydJapanAnna Fali UNQUALIFIED
Jefferson SchemmerBrazilBernardo Dominic QUALIFIED
Jennifer AmigonIndiaAnna Fali NEGOTIATION
Claire TollnerUnited KingdomAsiya Javayant NEGOTIATION
Ivar PaprockiBrazilBernardo Dominic UNQUALIFIED
Murillo MaletSpainIoni Bowcher PROPOSAL
Octavia MaletFranceXuxue Feng PROPOSAL
Deepesh ChuiJapanIoni Bowcher QUALIFIED
Kadeem FlosiRussiaOnyama Limba NEGOTIATION
Deepesh ChuiIndiaIvan Magalhaes PROPOSAL
Ashley DoeIndiaIoni Bowcher NEW
Cody SaylorsIndiaAmy Elsner RENEWAL
Alejandro PerinArgentinaAmy Elsner UNQUALIFIED
Deepesh ChuiSpainXuxue Feng NEGOTIATION
Izzy GarufiJapanIvan Magalhaes UNQUALIFIED
Julie StensethAustraliaIvan Magalhaes RENEWAL
Faith GillianAustraliaXuxue Feng NEW
Aruna FigeroaAustraliaIvan Magalhaes NEW
Claire TollnerGermanyAnna Fali QUALIFIED
Darci PoquetteCanadaAsiya Javayant PROPOSAL
Jones VocelkaBrazilBernardo Dominic PROPOSAL
David DarakjyAustraliaBernardo Dominic NEW
Adams MorascaGermanyOnyama Limba UNQUALIFIED
Alejandro PerinJapanBernardo Dominic PROPOSAL
Frozen Columns
Name
Salvatore Stockham
Silvio Slusarski
Jennifer Amigon
Clifford Rim
Morrow Ruta
Salvatore Stockham
Jones Vocelka
Wickens Nestle
Jones Vocelka
Francesco Shinko
Julie Stenseth
Rodrigues Campain
Darci Poquette
Costa Dilliard
Stacey Maclead
Aika Inouye
Sinclair Waycott
Cody Saylors
Faith Gillian
Octavia Malet
Silvio Slusarski
Ricardo Gaucho
Isabel Bowley
Leon Oldroyd
Greenwood Bolognia
Izzy Garufi
Adams Morasca
Sinclair Waycott
Stacey Maclead
Morrow Ruta
Ivar Paprocki
Stacey Maclead
Adams Morasca
Cody Saylors
Emily Whobrey
Rodrigues Campain
Julie Stenseth
Stacey Maclead
Aika Inouye
Octavia Malet
Aditya Kusko
Leon Oldroyd
Costa Dilliard
Arvin Albares
Juan Wieser
Misaki Royster
Cody Saylors
Murillo Malet
Julie Stenseth
Kadeem Flosi
IdCountryDate
1000Canada2021-03-21
1001Spain2021-03-28
1002Canada2021-03-20
1003Italy2021-03-19
1004Germany2021-03-20
1005India2021-04-01
1006India2021-03-20
1007Spain2021-03-26
1008Canada2021-03-22
1009Germany2021-04-02
1010Russia2021-04-01
1011Brazil2021-04-04
1012Canada2021-03-31
1013Spain2021-03-25
1014Argentina2021-03-22
1015Australia2021-04-06
1016India2021-04-09
1017Italy2021-03-23
1018United Kingdom2021-04-03
1019Spain2021-04-10
1020Japan2021-03-15
1021France2021-03-28
1022Brazil2021-04-06
1023United Kingdom2021-03-21
1024Germany2021-03-17
1025Japan2021-03-15
1026Japan2021-04-02
1027Italy2021-03-25
1028Japan2021-03-24
1029Japan2021-03-19
1030Australia2021-03-31
1031Brazil2021-04-09
1032Japan2021-03-30
1033Russia2021-03-18
1034Brazil2021-03-16
1035Japan2021-03-13
1036Australia2021-03-17
1037Canada2021-04-11
1038Argentina2021-04-09
1039Australia2021-03-14
1040Japan2021-04-03
1041Brazil2021-03-24
1042Australia2021-04-05
1043India2021-03-17
1044Russia2021-03-16
1045Germany2021-03-27
1046Germany2021-04-06
1047India2021-03-15
1048Japan2021-03-13
1049Argentina2021-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaArgentinaIvan Magalhaes UNQUALIFIED
Smith GlickFranceElwin Sharvill NEGOTIATION
Aika InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Mayumi KolmetzRussiaOnyama Limba QUALIFIED
Clifford RimSpainIoni Bowcher NEGOTIATION
Jefferson SchemmerFranceAmy Elsner RENEWAL
Maria MarrierBrazilXuxue Feng NEW
Munro FerenczCanadaAsiya Javayant RENEWAL
Faith GillianFranceIvan Magalhaes NEW
Claire TollnerSpainStephen Shaw NEGOTIATION
Wickens NestleAustraliaElwin Sharvill UNQUALIFIED
Maria MarrierArgentinaAmy Elsner NEGOTIATION
Misaki RoysterItalyAsiya Javayant RENEWAL
Rodrigues CampainUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin OstroskyGermanyAmy Elsner PROPOSAL
Clifford RimCanadaAnna Fali NEGOTIATION
James ButtFranceBernardo Dominic UNQUALIFIED
Jennifer AmigonIndiaAmy Elsner PROPOSAL
Kaitlin OstroskyCanadaOnyama Limba NEW
Costa DilliardUnited KingdomOnyama Limba UNQUALIFIED
Leja CaldareraGermanyAmy Elsner UNQUALIFIED
Misaki RoysterGermanyIoni Bowcher NEGOTIATION
Tony FollerSpainAsiya Javayant PROPOSAL
Aditya KuskoJapanBernardo Dominic NEW
Izzy GarufiArgentinaOnyama Limba PROPOSAL
Mayumi KolmetzArgentinaIoni Bowcher NEW
Costa DilliardFranceIvan Magalhaes QUALIFIED
Aditya KuskoCanadaStephen Shaw RENEWAL
Costa DilliardGermanyStephen Shaw PROPOSAL
Maisha RulapaughJapanAsiya Javayant NEGOTIATION
Ashley DoeCanadaAsiya Javayant UNQUALIFIED
Johnson SergiArgentinaIoni Bowcher UNQUALIFIED
Jennifer AmigonRussiaStephen Shaw PROPOSAL
Antonio CaudyUnited KingdomOnyama Limba RENEWAL
Kaitlin OstroskyItalyXuxue Feng PROPOSAL
Francesco ShinkoIndiaIvan Magalhaes NEGOTIATION
Antonio CaudyBrazilAnna Fali PROPOSAL
Julie StensethAustraliaAsiya Javayant PROPOSAL
Smith GlickSpainIoni Bowcher NEW
Jeanfrancois VenereCanadaElwin 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>