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
Deepesh ChuiArgentinaAsiya Javayant NEGOTIATION
Murillo MaletBrazilAnna Fali NEW
Tony FollerItalyIvan Magalhaes PROPOSAL
Aika InouyeUnited KingdomIvan Magalhaes NEW
Aditya KuskoFranceBernardo Dominic PROPOSAL
James ButtArgentinaAnna Fali PROPOSAL
Greenwood BologniaFranceElwin Sharvill NEW
Kaitlin OstroskyFranceAmy Elsner NEW
Rodrigues CampainItalyAmy Elsner NEW
Rodrigues CampainRussiaIoni Bowcher PROPOSAL
Julie StensethFranceXuxue Feng RENEWAL
Jeanfrancois VenereFranceAnna Fali PROPOSAL
Aika InouyeRussiaBernardo Dominic PROPOSAL
Chavez BriddickArgentinaIvan Magalhaes NEW
Octavia MaletRussiaXuxue Feng UNQUALIFIED
Aruna FigeroaIndiaElwin Sharvill QUALIFIED
Chavez BriddickAustraliaXuxue Feng PROPOSAL
Emily WhobreyIndiaAnna Fali NEW
Isabel BowleyJapanOnyama Limba QUALIFIED
Francesco ShinkoUnited KingdomAsiya Javayant QUALIFIED
Maria MarrierJapanBernardo Dominic NEW
Mayumi KolmetzBrazilIoni Bowcher UNQUALIFIED
Rodrigues CampainFranceAnna Fali QUALIFIED
Mujtaba NickaArgentinaAnna Fali NEGOTIATION
Alejandro PerinRussiaElwin Sharvill NEGOTIATION
Darci PoquetteFranceAnna Fali PROPOSAL
Juan WieserAustraliaAsiya Javayant PROPOSAL
Ricardo GauchoRussiaAnna Fali UNQUALIFIED
Nicolas IturbideUnited KingdomAsiya Javayant RENEWAL
Jones VocelkaFranceAsiya Javayant QUALIFIED
Leon OldroydRussiaStephen Shaw PROPOSAL
Ashley DoeGermanyIvan Magalhaes RENEWAL
Julie StensethRussiaBernardo Dominic QUALIFIED
Jones VocelkaJapanBernardo Dominic QUALIFIED
Antonio CaudyAustraliaOnyama Limba NEGOTIATION
Sinclair WaycottUnited KingdomXuxue Feng RENEWAL
Adams MorascaJapanAmy Elsner UNQUALIFIED
Leon OldroydBrazilIoni Bowcher RENEWAL
Kaitlin OstroskyRussiaAsiya Javayant PROPOSAL
Clifford RimItalyXuxue Feng RENEWAL
Chavez BriddickIndiaIvan Magalhaes QUALIFIED
Kadeem FlosiBrazilAnna Fali QUALIFIED
David DarakjyItalyAmy Elsner NEGOTIATION
Arvin AlbaresGermanyBernardo Dominic PROPOSAL
Jennifer AmigonCanadaAmy Elsner NEGOTIATION
David DarakjyFranceIoni Bowcher PROPOSAL
Ricardo GauchoCanadaAmy Elsner NEW
Aditya KuskoGermanyAsiya Javayant QUALIFIED
Isabel BowleyJapanAmy Elsner UNQUALIFIED
Mujtaba NickaItalyAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Tony FollerArgentinaAsiya Javayant NEGOTIATION
Deepesh ChuiItalyElwin Sharvill UNQUALIFIED
Deepesh ChuiIndiaBernardo Dominic NEGOTIATION
Clifford RimGermanyOnyama Limba NEW
Tony FollerFranceXuxue Feng PROPOSAL
Wickens NestleIndiaOnyama Limba QUALIFIED
Aruna FigeroaIndiaOnyama Limba NEW
Murillo MaletIndiaAmy Elsner RENEWAL
Maria MarrierBrazilAmy Elsner UNQUALIFIED
Sinclair WaycottIndiaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas IturbideRussia2021-04-21Chapman, Ross E Esq RENEWAL47Ioni Bowcher
1001Salvatore StockhamCanada2021-04-10Morlong Associates PROPOSAL52Onyama Limba
1002Aditya KuskoJapan2021-04-16Commercial Press QUALIFIED74Xuxue Feng
1003Morrow RutaSpain2021-04-05Chanay, Jeffrey A Esq NEW69Elwin Sharvill
1004Juan WieserJapan2021-03-27Buckley Miller Wright RENEWAL29Ivan Magalhaes
1005Jefferson SchemmerJapan2021-04-12Chapman, Ross E Esq NEW47Ivan Magalhaes
1006Aruna FigeroaUnited Kingdom2021-04-20Feiner Bros UNQUALIFIED22Asiya Javayant
1007Johnson SergiIndia2021-04-17Printing Dimensions NEGOTIATION60Anna Fali
1008Jeanfrancois VenereArgentina2021-04-16Commercial Press NEGOTIATION56Onyama Limba
1009Sinclair WaycottJapan2021-04-17Rousseaux, Michael Esq QUALIFIED10Asiya Javayant
1010Tony FollerJapan2021-04-01Printing Dimensions NEW38Bernardo Dominic
1011Munro FerenczBrazil2021-04-20Buckley Miller Wright PROPOSAL5Bernardo Dominic
1012Nicolas IturbideJapan2021-04-12Feltz Printing Service QUALIFIED72Ivan Magalhaes
1013Deepesh ChuiArgentina2021-04-11Truhlar And Truhlar Attys NEGOTIATION76Anna Fali
1014Arvin AlbaresUnited Kingdom2021-03-25Feltz Printing Service PROPOSAL55Stephen Shaw
1015Jefferson SchemmerIndia2021-04-20Commercial Press PROPOSAL65Ivan Magalhaes
1016Wickens NestleArgentina2021-04-22Chapman, Ross E Esq NEW59Asiya Javayant
1017Aruna FigeroaCanada2021-04-22Feiner Bros QUALIFIED25Stephen Shaw
1018Mayumi KolmetzSpain2021-04-08Rangoni Of Florence PROPOSAL92Amy Elsner
1019Ashley DoeArgentina2021-04-18Rangoni Of Florence UNQUALIFIED21Bernardo Dominic
1020Octavia MaletArgentina2021-03-28Benton, John B Jr QUALIFIED51Anna Fali
1021Jones VocelkaGermany2021-04-05Commercial Press NEGOTIATION61Ioni Bowcher
1022Arvin AlbaresFrance2021-03-27Truhlar And Truhlar Attys UNQUALIFIED41Bernardo Dominic
1023Adams MorascaJapan2021-03-29Chapman, Ross E Esq PROPOSAL42Amy Elsner
1024Izzy GarufiIndia2021-04-22Chemel, James L Cpa PROPOSAL54Amy Elsner
1025Mujtaba NickaGermany2021-04-05Dorl, James J Esq QUALIFIED13Onyama Limba
1026Jennifer AmigonFrance2021-03-28Chapman, Ross E Esq NEGOTIATION39Amy Elsner
1027Maisha RulapaughCanada2021-04-11Chapman, Ross E Esq UNQUALIFIED46Elwin Sharvill
1028Kaitlin OstroskyIndia2021-04-09Truhlar And Truhlar Attys NEW28Bernardo Dominic
1029Greenwood BologniaSpain2021-04-03Chanay, Jeffrey A Esq RENEWAL36Stephen Shaw
1030Stacey MacleadAustralia2021-04-09Feltz Printing Service QUALIFIED57Onyama Limba
1031Isabel BowleyAustralia2021-03-26Chemel, James L Cpa PROPOSAL27Ivan Magalhaes
1032Nicolas IturbideAustralia2021-04-12Buckley Miller Wright PROPOSAL19Ioni Bowcher
1033Johnson SergiBrazil2021-04-15Feltz Printing Service QUALIFIED57Bernardo Dominic
1034Emily WhobreyAustralia2021-04-22Rousseaux, Michael Esq NEGOTIATION98Onyama Limba
1035Wickens NestleBrazil2021-04-20Printing Dimensions QUALIFIED51Ivan Magalhaes
1036Maria MarrierArgentina2021-04-15Rangoni Of Florence NEW42Elwin Sharvill
1037Claire TollnerIndia2021-04-02Dorl, James J Esq NEW69Stephen Shaw
1038Johnson SergiRussia2021-04-22Feiner Bros RENEWAL67Ioni Bowcher
1039Wickens NestleUnited Kingdom2021-04-18Rousseaux, Michael Esq RENEWAL31Anna Fali
1040Isabel BowleyGermany2021-03-25Buckley Miller Wright QUALIFIED98Ioni Bowcher
1041Deepesh ChuiCanada2021-04-15Feiner Bros NEGOTIATION9Amy Elsner
1042Nicolas IturbideFrance2021-03-28Commercial Press QUALIFIED14Bernardo Dominic
1043Faith GillianFrance2021-04-13Feiner Bros RENEWAL37Bernardo Dominic
1044Jefferson SchemmerCanada2021-03-25Truhlar And Truhlar Attys UNQUALIFIED49Amy Elsner
1045Costa DilliardArgentina2021-03-29Rangoni Of Florence NEW47Onyama Limba
1046Aditya KuskoIndia2021-04-11Dorl, James J Esq NEW43Stephen Shaw
1047Aditya KuskoFrance2021-04-07Feiner Bros NEGOTIATION53Ivan Magalhaes
1048Jones VocelkaRussia2021-04-04King, Christopher A Esq NEW49Elwin Sharvill
1049Ivar PaprockiFrance2021-04-09Benton, John B Jr PROPOSAL30Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadAustraliaStephen Shaw RENEWAL
Kadeem FlosiFranceIvan Magalhaes PROPOSAL
Ricardo GauchoFranceXuxue Feng NEW
Smith GlickSpainAmy Elsner NEW
Claire TollnerIndiaAsiya Javayant PROPOSAL
Greenwood BologniaFranceOnyama Limba NEW
Mujtaba NickaUnited KingdomXuxue Feng NEW
Aditya KuskoUnited KingdomAmy Elsner PROPOSAL
Munro FerenczAustraliaStephen Shaw RENEWAL
Kadeem FlosiCanadaStephen Shaw RENEWAL
Isabel BowleyFranceBernardo Dominic NEGOTIATION
Ivar PaprockiJapanAsiya Javayant NEGOTIATION
Kaitlin OstroskyAustraliaAsiya Javayant PROPOSAL
Aika InouyeSpainOnyama Limba UNQUALIFIED
Tony FollerBrazilAmy Elsner UNQUALIFIED
Ricardo GauchoItalyBernardo Dominic UNQUALIFIED
Faith GillianGermanyIoni Bowcher NEGOTIATION
Julie StensethJapanIvan Magalhaes NEW
Deepesh ChuiGermanyIoni Bowcher RENEWAL
Nicolas IturbideFranceAmy Elsner RENEWAL
Leja CaldareraBrazilBernardo Dominic PROPOSAL
Johnson SergiGermanyBernardo Dominic PROPOSAL
Johnson SergiIndiaStephen Shaw NEGOTIATION
Wickens NestleUnited KingdomElwin Sharvill UNQUALIFIED
Aika InouyeRussiaAsiya Javayant UNQUALIFIED
Arvin AlbaresCanadaIoni Bowcher QUALIFIED
Kaitlin OstroskyRussiaOnyama Limba PROPOSAL
Juan WieserRussiaIoni Bowcher RENEWAL
Jeanfrancois VenereArgentinaOnyama Limba NEW
Ivar PaprockiJapanAsiya Javayant QUALIFIED
Clifford RimGermanyOnyama Limba RENEWAL
Ivar PaprockiGermanyElwin Sharvill UNQUALIFIED
Julie StensethJapanOnyama Limba RENEWAL
Salvatore StockhamFranceBernardo Dominic UNQUALIFIED
Cody SaylorsJapanIoni Bowcher QUALIFIED
Ivar PaprockiRussiaXuxue Feng QUALIFIED
Aditya KuskoFranceStephen Shaw RENEWAL
Ashley DoeSpainAmy Elsner QUALIFIED
David DarakjyItalyAnna Fali NEW
Kaitlin OstroskyArgentinaAmy Elsner NEW
Jones VocelkaCanadaStephen Shaw RENEWAL
Aika InouyeGermanyAmy Elsner NEGOTIATION
Kaitlin OstroskyGermanyOnyama Limba PROPOSAL
Nicolas IturbideSpainAnna Fali UNQUALIFIED
Jeanfrancois VenereCanadaElwin Sharvill NEW
Faith GillianSpainIoni Bowcher QUALIFIED
Salvatore StockhamFranceXuxue Feng PROPOSAL
Greenwood BologniaItalyIoni Bowcher RENEWAL
Chavez BriddickArgentinaAmy Elsner QUALIFIED
Darci PoquetteRussiaIvan Magalhaes NEW
Frozen Columns
Name
Julie Stenseth
Aditya Kusko
Tony Foller
Salvatore Stockham
Morrow Ruta
Salvatore Stockham
Chavez Briddick
Greenwood Bolognia
Alejandro Perin
Kaitlin Ostrosky
Cody Saylors
Adams Morasca
Silvio Slusarski
Leja Caldarera
Sinclair Waycott
James Butt
Maisha Rulapaugh
Maisha Rulapaugh
Mayumi Kolmetz
Smith Glick
Murillo Malet
Emily Whobrey
Ivar Paprocki
Adams Morasca
Antonio Caudy
Julie Stenseth
Stacey Maclead
Murillo Malet
Deepesh Chui
Adams Morasca
Salvatore Stockham
Juan Wieser
Leja Caldarera
Murillo Malet
Aika Inouye
Kadeem Flosi
Smith Glick
Mayumi Kolmetz
David Darakjy
Ashley Doe
Alejandro Perin
Misaki Royster
Isabel Bowley
Stacey Maclead
Sinclair Waycott
James Butt
David Darakjy
Maisha Rulapaugh
Nicolas Iturbide
Nicolas Iturbide
IdCountryDate
1000Russia2021-03-29
1001Brazil2021-04-11
1002Russia2021-04-09
1003Australia2021-03-26
1004Australia2021-04-14
1005Italy2021-04-07
1006Russia2021-04-16
1007Japan2021-03-28
1008United Kingdom2021-04-07
1009France2021-04-06
1010Argentina2021-04-12
1011Australia2021-04-15
1012Japan2021-03-25
1013India2021-04-04
1014Brazil2021-03-24
1015Brazil2021-04-09
1016Brazil2021-03-31
1017United Kingdom2021-03-27
1018France2021-04-06
1019Japan2021-04-17
1020Spain2021-04-04
1021Australia2021-04-14
1022Brazil2021-03-30
1023Japan2021-03-25
1024Japan2021-04-08
1025Germany2021-04-08
1026Argentina2021-04-14
1027Brazil2021-03-25
1028United Kingdom2021-04-06
1029Canada2021-04-17
1030Brazil2021-03-27
1031Japan2021-04-04
1032Italy2021-04-17
1033Germany2021-04-12
1034Brazil2021-04-09
1035France2021-04-08
1036Australia2021-04-01
1037Brazil2021-04-04
1038Australia2021-04-18
1039Brazil2021-04-12
1040Germany2021-04-12
1041Germany2021-03-29
1042Spain2021-04-08
1043Germany2021-04-18
1044France2021-04-20
1045Japan2021-04-14
1046Argentina2021-03-27
1047Russia2021-04-04
1048Australia2021-03-29
1049Italy2021-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerArgentinaOnyama Limba PROPOSAL
Chavez BriddickAustraliaElwin Sharvill RENEWAL
Izzy GarufiAustraliaElwin Sharvill NEW
Leja CaldareraIndiaStephen Shaw QUALIFIED
Costa DilliardUnited KingdomIoni Bowcher PROPOSAL
Rodrigues CampainFranceStephen Shaw UNQUALIFIED
Murillo MaletItalyOnyama Limba PROPOSAL
Jones VocelkaBrazilBernardo Dominic PROPOSAL
Ricardo GauchoSpainStephen Shaw RENEWAL
Clifford RimGermanyOnyama Limba PROPOSAL
Kaitlin OstroskyGermanyElwin Sharvill RENEWAL
Leon OldroydAustraliaBernardo Dominic NEW
Kaitlin OstroskyItalyIoni Bowcher QUALIFIED
Jennifer AmigonJapanIvan Magalhaes PROPOSAL
Morrow RutaArgentinaIvan Magalhaes NEGOTIATION
Jones VocelkaIndiaElwin Sharvill RENEWAL
Juan WieserCanadaAsiya Javayant PROPOSAL
Antonio CaudyIndiaAmy Elsner NEGOTIATION
Juan WieserCanadaBernardo Dominic NEGOTIATION
Maisha RulapaughFranceAsiya Javayant RENEWAL
Cody SaylorsRussiaXuxue Feng NEW
Ricardo GauchoAustraliaAmy Elsner NEW
Maisha RulapaughRussiaIvan Magalhaes PROPOSAL
Alejandro PerinArgentinaElwin Sharvill NEGOTIATION
Mayumi KolmetzJapanIoni Bowcher NEGOTIATION
Greenwood BologniaItalyBernardo Dominic PROPOSAL
Wickens NestleCanadaIvan Magalhaes PROPOSAL
David DarakjyCanadaElwin Sharvill UNQUALIFIED
Leon OldroydSpainStephen Shaw NEW
Isabel BowleyRussiaOnyama Limba QUALIFIED
Sinclair WaycottFranceXuxue Feng QUALIFIED
Claire TollnerAustraliaIvan Magalhaes NEGOTIATION
Chavez BriddickIndiaXuxue Feng NEW
Clifford RimBrazilXuxue Feng PROPOSAL
Emily WhobreyUnited KingdomOnyama Limba RENEWAL
Kadeem FlosiRussiaStephen Shaw PROPOSAL
Antonio CaudyCanadaIoni Bowcher NEGOTIATION
Salvatore StockhamIndiaStephen Shaw RENEWAL
Kaitlin OstroskyUnited KingdomElwin Sharvill NEGOTIATION
Costa DilliardIndiaIoni Bowcher 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>