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
Francesco ShinkoIndiaAnna Fali NEGOTIATION
Aika InouyeGermanyAmy Elsner NEGOTIATION
Costa DilliardIndiaAnna Fali RENEWAL
Wickens NestleArgentinaXuxue Feng NEGOTIATION
Cody SaylorsUnited KingdomXuxue Feng UNQUALIFIED
Jennifer AmigonRussiaOnyama Limba RENEWAL
Salvatore StockhamCanadaStephen Shaw PROPOSAL
Sinclair WaycottArgentinaAsiya Javayant PROPOSAL
Nicolas IturbideCanadaStephen Shaw RENEWAL
Alejandro PerinIndiaElwin Sharvill NEW
Juan WieserArgentinaOnyama Limba NEW
Greenwood BologniaSpainElwin Sharvill RENEWAL
Francesco ShinkoItalyStephen Shaw UNQUALIFIED
Mayumi KolmetzSpainStephen Shaw QUALIFIED
Sinclair WaycottCanadaAnna Fali NEW
Ricardo GauchoAustraliaXuxue Feng QUALIFIED
Kaitlin OstroskyGermanyAsiya Javayant QUALIFIED
Izzy GarufiBrazilAnna Fali QUALIFIED
Adams MorascaSpainAsiya Javayant PROPOSAL
Antonio CaudyFranceAmy Elsner NEW
Aditya KuskoGermanyElwin Sharvill UNQUALIFIED
Costa DilliardSpainElwin Sharvill PROPOSAL
Smith GlickItalyOnyama Limba NEW
Octavia MaletItalyAmy Elsner QUALIFIED
Juan WieserBrazilStephen Shaw NEW
David DarakjyCanadaBernardo Dominic UNQUALIFIED
Faith GillianItalyIvan Magalhaes QUALIFIED
Jefferson SchemmerRussiaXuxue Feng QUALIFIED
Claire TollnerRussiaAnna Fali PROPOSAL
Smith GlickItalyIoni Bowcher UNQUALIFIED
Ivar PaprockiCanadaAnna Fali NEW
Johnson SergiAustraliaOnyama Limba NEGOTIATION
Costa DilliardIndiaStephen Shaw RENEWAL
Antonio CaudyGermanyAsiya Javayant QUALIFIED
Tony FollerIndiaIoni Bowcher NEW
Jefferson SchemmerArgentinaIvan Magalhaes NEW
Alejandro PerinIndiaIoni Bowcher PROPOSAL
Jones VocelkaIndiaXuxue Feng UNQUALIFIED
Arvin AlbaresAustraliaAnna Fali RENEWAL
Cody SaylorsFranceAnna Fali NEGOTIATION
Arvin AlbaresJapanStephen Shaw UNQUALIFIED
Jones VocelkaGermanyAmy Elsner NEGOTIATION
Johnson SergiArgentinaElwin Sharvill QUALIFIED
Octavia MaletRussiaIoni Bowcher NEGOTIATION
Ivar PaprockiArgentinaAsiya Javayant UNQUALIFIED
Adams MorascaRussiaAnna Fali UNQUALIFIED
Chavez BriddickRussiaOnyama Limba NEW
Deepesh ChuiBrazilStephen Shaw PROPOSAL
Misaki RoysterUnited KingdomXuxue Feng PROPOSAL
Ricardo GauchoGermanyXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Maria MarrierRussiaStephen Shaw RENEWAL
Greenwood BologniaCanadaBernardo Dominic QUALIFIED
Mayumi KolmetzBrazilAmy Elsner PROPOSAL
Tony FollerSpainIvan Magalhaes PROPOSAL
Johnson SergiAustraliaOnyama Limba PROPOSAL
Claire TollnerAustraliaOnyama Limba NEGOTIATION
Jefferson SchemmerFranceAsiya Javayant UNQUALIFIED
Salvatore StockhamItalyAsiya Javayant PROPOSAL
Maisha RulapaughGermanyIvan Magalhaes QUALIFIED
Jones VocelkaAustraliaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo GauchoFrance2021-03-26Commercial Press RENEWAL11Xuxue Feng
1001Aditya KuskoAustralia2021-03-27Feiner Bros PROPOSAL67Ioni Bowcher
1002Aruna FigeroaUnited Kingdom2021-03-26Chemel, James L Cpa PROPOSAL15Bernardo Dominic
1003James ButtGermany2021-03-29Truhlar And Truhlar Attys NEW78Ioni Bowcher
1004Arvin AlbaresUnited Kingdom2021-03-21Chanay, Jeffrey A Esq NEW17Asiya Javayant
1005Francesco ShinkoCanada2021-04-11Morlong Associates RENEWAL25Ioni Bowcher
1006Aika InouyeIndia2021-04-12Printing Dimensions NEW30Amy Elsner
1007Misaki RoysterUnited Kingdom2021-04-06Feltz Printing Service RENEWAL28Ivan Magalhaes
1008Adams MorascaJapan2021-03-26Morlong Associates QUALIFIED92Elwin Sharvill
1009Maria MarrierAustralia2021-04-04Chemel, James L Cpa PROPOSAL38Anna Fali
1010David DarakjyBrazil2021-04-08Benton, John B Jr UNQUALIFIED13Stephen Shaw
1011Leja CaldareraAustralia2021-04-08King, Christopher A Esq UNQUALIFIED50Bernardo Dominic
1012Jefferson SchemmerSpain2021-03-22King, Christopher A Esq NEGOTIATION35Onyama Limba
1013Johnson SergiRussia2021-03-28Rousseaux, Michael Esq RENEWAL37Elwin Sharvill
1014Darci PoquetteRussia2021-03-26Morlong Associates NEW80Amy Elsner
1015Antonio CaudySpain2021-04-04Morlong Associates QUALIFIED46Ivan Magalhaes
1016Wickens NestleIndia2021-04-13Buckley Miller Wright RENEWAL24Ioni Bowcher
1017Izzy GarufiJapan2021-04-05Truhlar And Truhlar Attys NEGOTIATION18Ioni Bowcher
1018Wickens NestleAustralia2021-04-07Benton, John B Jr RENEWAL79Onyama Limba
1019Darci PoquetteUnited Kingdom2021-03-30Truhlar And Truhlar Attys RENEWAL77Ivan Magalhaes
1020Misaki RoysterBrazil2021-03-30Chemel, James L Cpa NEW61Elwin Sharvill
1021James ButtAustralia2021-03-30King, Christopher A Esq RENEWAL98Anna Fali
1022David DarakjyArgentina2021-04-07Chemel, James L Cpa NEW66Asiya Javayant
1023Wickens NestleSpain2021-04-04Commercial Press QUALIFIED43Ioni Bowcher
1024Mujtaba NickaArgentina2021-03-30Feltz Printing Service RENEWAL17Anna Fali
1025Clifford RimArgentina2021-03-20Chanay, Jeffrey A Esq RENEWAL30Amy Elsner
1026Ricardo GauchoCanada2021-03-22Chapman, Ross E Esq RENEWAL95Elwin Sharvill
1027Mayumi KolmetzIndia2021-04-01Rangoni Of Florence NEW10Anna Fali
1028Izzy GarufiSpain2021-03-17Feltz Printing Service UNQUALIFIED60Asiya Javayant
1029Tony FollerIndia2021-03-27Chemel, James L Cpa UNQUALIFIED94Stephen Shaw
1030Ashley DoeSpain2021-04-11Morlong Associates UNQUALIFIED21Stephen Shaw
1031Cody SaylorsJapan2021-04-13Buckley Miller Wright UNQUALIFIED1Ioni Bowcher
1032Silvio SlusarskiJapan2021-04-03Chanay, Jeffrey A Esq QUALIFIED36Asiya Javayant
1033Rodrigues CampainAustralia2021-04-07Dorl, James J Esq QUALIFIED26Ioni Bowcher
1034Greenwood BologniaBrazil2021-04-09Chanay, Jeffrey A Esq UNQUALIFIED47Elwin Sharvill
1035Clifford RimRussia2021-03-22Morlong Associates PROPOSAL42Amy Elsner
1036Jones VocelkaCanada2021-03-21Commercial Press RENEWAL70Bernardo Dominic
1037Claire TollnerFrance2021-04-11Chemel, James L Cpa QUALIFIED48Ivan Magalhaes
1038Chavez BriddickCanada2021-04-05Commercial Press PROPOSAL5Onyama Limba
1039Juan WieserCanada2021-04-07Rangoni Of Florence RENEWAL95Bernardo Dominic
1040Jennifer AmigonSpain2021-03-27Chanay, Jeffrey A Esq NEGOTIATION77Ioni Bowcher
1041Greenwood BologniaJapan2021-03-17King, Christopher A Esq RENEWAL74Ioni Bowcher
1042Cody SaylorsRussia2021-04-03Dorl, James J Esq NEW13Stephen Shaw
1043Greenwood BologniaIndia2021-03-25Rangoni Of Florence NEW62Stephen Shaw
1044Jones VocelkaFrance2021-04-11Rangoni Of Florence QUALIFIED51Anna Fali
1045Ashley DoeGermany2021-03-18King, Christopher A Esq UNQUALIFIED90Ivan Magalhaes
1046Adams MorascaItaly2021-03-27Commercial Press RENEWAL48Ioni Bowcher
1047Francesco ShinkoCanada2021-04-12Feltz Printing Service QUALIFIED10Stephen Shaw
1048Deepesh ChuiArgentina2021-04-08Chemel, James L Cpa QUALIFIED67Ioni Bowcher
1049Cody SaylorsIndia2021-04-05Benton, John B Jr PROPOSAL42Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaJapanIoni Bowcher UNQUALIFIED
Alejandro PerinRussiaAnna Fali NEGOTIATION
Jeanfrancois VenereRussiaAsiya Javayant UNQUALIFIED
Smith GlickGermanyElwin Sharvill RENEWAL
Faith GillianIndiaBernardo Dominic NEGOTIATION
Cody SaylorsCanadaBernardo Dominic PROPOSAL
Wickens NestleCanadaAsiya Javayant PROPOSAL
Mujtaba NickaFranceBernardo Dominic NEGOTIATION
Octavia MaletArgentinaIoni Bowcher NEW
James ButtUnited KingdomStephen Shaw QUALIFIED
Tony FollerJapanOnyama Limba QUALIFIED
Izzy GarufiAustraliaIvan Magalhaes RENEWAL
David DarakjyUnited KingdomAmy Elsner UNQUALIFIED
Ivar PaprockiJapanOnyama Limba UNQUALIFIED
Munro FerenczUnited KingdomIvan Magalhaes PROPOSAL
Alejandro PerinUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba NickaJapanIoni Bowcher UNQUALIFIED
Claire TollnerIndiaXuxue Feng PROPOSAL
Kadeem FlosiIndiaAmy Elsner NEGOTIATION
Smith GlickUnited KingdomStephen Shaw QUALIFIED
Isabel BowleyAustraliaStephen Shaw PROPOSAL
Nicolas IturbideAustraliaIoni Bowcher QUALIFIED
Mujtaba NickaItalyIoni Bowcher NEW
Octavia MaletGermanyAnna Fali NEGOTIATION
Ivar PaprockiArgentinaAnna Fali NEGOTIATION
Claire TollnerAustraliaAmy Elsner QUALIFIED
Darci PoquetteBrazilAnna Fali NEGOTIATION
Emily WhobreySpainAnna Fali PROPOSAL
Ivar PaprockiArgentinaAnna Fali QUALIFIED
David DarakjyArgentinaAnna Fali QUALIFIED
Faith GillianJapanAnna Fali PROPOSAL
Kadeem FlosiJapanOnyama Limba QUALIFIED
Johnson SergiUnited KingdomStephen Shaw RENEWAL
Ricardo GauchoAustraliaBernardo Dominic NEGOTIATION
Silvio SlusarskiGermanyOnyama Limba QUALIFIED
Ivar PaprockiUnited KingdomAmy Elsner NEGOTIATION
Kaitlin OstroskyUnited KingdomIoni Bowcher QUALIFIED
Mujtaba NickaFranceAsiya Javayant UNQUALIFIED
Sinclair WaycottGermanyAsiya Javayant PROPOSAL
Alejandro PerinSpainAmy Elsner NEW
Adams MorascaIndiaAsiya Javayant RENEWAL
Darci PoquetteItalyBernardo Dominic NEGOTIATION
Ricardo GauchoBrazilStephen Shaw NEW
Jones VocelkaIndiaAmy Elsner PROPOSAL
Deepesh ChuiBrazilIvan Magalhaes QUALIFIED
Adams MorascaUnited KingdomOnyama Limba NEGOTIATION
Kaitlin OstroskyBrazilIoni Bowcher UNQUALIFIED
Maria MarrierItalyAnna Fali NEGOTIATION
Leja CaldareraCanadaOnyama Limba NEW
Johnson SergiBrazilStephen Shaw NEW
Frozen Columns
Name
Munro Ferencz
Ivar Paprocki
Wickens Nestle
James Butt
Mujtaba Nicka
Emily Whobrey
Antonio Caudy
Antonio Caudy
Costa Dilliard
Izzy Garufi
Maria Marrier
Aditya Kusko
Kaitlin Ostrosky
Jennifer Amigon
Maisha Rulapaugh
James Butt
Kaitlin Ostrosky
Juan Wieser
Jefferson Schemmer
David Darakjy
Leja Caldarera
Ashley Doe
Octavia Malet
Adams Morasca
Salvatore Stockham
Jefferson Schemmer
Chavez Briddick
Misaki Royster
Mayumi Kolmetz
Munro Ferencz
Misaki Royster
Aika Inouye
Emily Whobrey
Ricardo Gaucho
Octavia Malet
Faith Gillian
Tony Foller
Clifford Rim
Chavez Briddick
Ricardo Gaucho
Aika Inouye
Maria Marrier
Francesco Shinko
Ricardo Gaucho
Emily Whobrey
Greenwood Bolognia
Adams Morasca
Greenwood Bolognia
Morrow Ruta
Claire Tollner
IdCountryDate
1000Japan2021-03-30
1001Spain2021-03-28
1002Australia2021-03-19
1003Japan2021-03-23
1004India2021-04-09
1005Italy2021-04-11
1006Italy2021-03-23
1007Russia2021-04-09
1008Argentina2021-03-21
1009India2021-04-08
1010Spain2021-04-09
1011Canada2021-03-28
1012Italy2021-04-12
1013Argentina2021-04-02
1014Italy2021-04-02
1015Japan2021-03-19
1016Canada2021-04-10
1017Russia2021-03-24
1018Brazil2021-03-21
1019Spain2021-03-28
1020Canada2021-04-03
1021Germany2021-03-20
1022Argentina2021-03-27
1023Australia2021-03-15
1024United Kingdom2021-04-11
1025Brazil2021-03-23
1026Germany2021-04-12
1027India2021-04-09
1028Spain2021-04-04
1029India2021-03-20
1030Russia2021-03-18
1031India2021-03-15
1032Germany2021-04-12
1033India2021-03-29
1034Australia2021-04-12
1035United Kingdom2021-03-19
1036India2021-04-07
1037Argentina2021-04-05
1038Russia2021-03-23
1039United Kingdom2021-03-27
1040United Kingdom2021-03-31
1041Japan2021-03-21
1042Spain2021-03-22
1043France2021-04-01
1044Russia2021-03-20
1045Japan2021-04-04
1046Russia2021-03-21
1047Japan2021-03-29
1048India2021-04-12
1049Spain2021-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio SlusarskiRussiaXuxue Feng NEW
Wickens NestleIndiaBernardo Dominic RENEWAL
Salvatore StockhamItalyXuxue Feng PROPOSAL
Morrow RutaUnited KingdomIvan Magalhaes NEGOTIATION
Salvatore StockhamFranceStephen Shaw UNQUALIFIED
Jennifer AmigonFranceAnna Fali NEGOTIATION
Aruna FigeroaGermanyElwin Sharvill PROPOSAL
Aruna FigeroaFranceIvan Magalhaes NEW
Costa DilliardBrazilXuxue Feng UNQUALIFIED
Salvatore StockhamRussiaXuxue Feng PROPOSAL
Kadeem FlosiBrazilXuxue Feng NEW
David DarakjyIndiaAsiya Javayant NEGOTIATION
Jones VocelkaIndiaAnna Fali QUALIFIED
Adams MorascaIndiaIoni Bowcher PROPOSAL
Tony FollerGermanyAsiya Javayant UNQUALIFIED
Izzy GarufiItalyAsiya Javayant NEW
Clifford RimIndiaAsiya Javayant UNQUALIFIED
Leon OldroydRussiaIoni Bowcher PROPOSAL
Tony FollerJapanStephen Shaw NEW
Faith GillianJapanOnyama Limba QUALIFIED
David DarakjyArgentinaStephen Shaw NEGOTIATION
Kaitlin OstroskyFranceXuxue Feng UNQUALIFIED
Sinclair WaycottAustraliaAmy Elsner RENEWAL
Jones VocelkaSpainXuxue Feng NEW
Isabel BowleyUnited KingdomXuxue Feng UNQUALIFIED
Morrow RutaAustraliaOnyama Limba QUALIFIED
Ricardo GauchoIndiaOnyama Limba NEGOTIATION
Nicolas IturbideBrazilIoni Bowcher QUALIFIED
Ashley DoeRussiaAsiya Javayant RENEWAL
Ashley DoeJapanBernardo Dominic QUALIFIED
Silvio SlusarskiArgentinaXuxue Feng UNQUALIFIED
Rodrigues CampainUnited KingdomAsiya Javayant UNQUALIFIED
Mujtaba NickaGermanyElwin Sharvill RENEWAL
Rodrigues CampainJapanElwin Sharvill UNQUALIFIED
Deepesh ChuiFranceStephen Shaw NEW
Jeanfrancois VenereIndiaIoni Bowcher NEW
Ricardo GauchoSpainAnna Fali UNQUALIFIED
Claire TollnerGermanyBernardo Dominic NEW
Stacey MacleadRussiaOnyama Limba NEW
Stacey MacleadArgentinaIoni Bowcher RENEWAL

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