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
Misaki RoysterGermanyStephen Shaw NEGOTIATION
Ashley DoeAustraliaStephen Shaw QUALIFIED
Rodrigues CampainFranceAmy Elsner UNQUALIFIED
Arvin AlbaresFranceIoni Bowcher UNQUALIFIED
Aditya KuskoJapanXuxue Feng UNQUALIFIED
Jefferson SchemmerFranceAnna Fali UNQUALIFIED
Johnson SergiBrazilOnyama Limba NEGOTIATION
Murillo MaletIndiaStephen Shaw PROPOSAL
Maisha RulapaughUnited KingdomAsiya Javayant PROPOSAL
Jennifer AmigonGermanyAmy Elsner UNQUALIFIED
Arvin AlbaresItalyAnna Fali PROPOSAL
Mujtaba NickaAustraliaStephen Shaw QUALIFIED
Nicolas IturbideSpainAmy Elsner QUALIFIED
Munro FerenczUnited KingdomXuxue Feng UNQUALIFIED
Murillo MaletSpainBernardo Dominic QUALIFIED
Costa DilliardUnited KingdomAmy Elsner QUALIFIED
Deepesh ChuiCanadaAnna Fali NEW
Nicolas IturbideArgentinaXuxue Feng UNQUALIFIED
Smith GlickSpainStephen Shaw UNQUALIFIED
Ivar PaprockiFranceElwin Sharvill UNQUALIFIED
Leja CaldareraSpainStephen Shaw UNQUALIFIED
James ButtSpainOnyama Limba NEW
Aika InouyeAustraliaOnyama Limba NEGOTIATION
Stacey MacleadRussiaIoni Bowcher NEW
Leja CaldareraSpainAmy Elsner PROPOSAL
Wickens NestleIndiaIvan Magalhaes NEGOTIATION
Izzy GarufiGermanyAnna Fali QUALIFIED
Aika InouyeItalyXuxue Feng UNQUALIFIED
Deepesh ChuiCanadaBernardo Dominic QUALIFIED
Sinclair WaycottJapanAnna Fali RENEWAL
Kadeem FlosiUnited KingdomAmy Elsner NEGOTIATION
Aruna FigeroaIndiaAsiya Javayant QUALIFIED
Maria MarrierArgentinaBernardo Dominic UNQUALIFIED
Jeanfrancois VenereUnited KingdomBernardo Dominic RENEWAL
Salvatore StockhamIndiaIoni Bowcher QUALIFIED
Salvatore StockhamAustraliaOnyama Limba UNQUALIFIED
Rodrigues CampainArgentinaOnyama Limba QUALIFIED
James ButtBrazilAsiya Javayant NEGOTIATION
Rodrigues CampainAustraliaAnna Fali QUALIFIED
Tony FollerJapanAnna Fali NEGOTIATION
Claire TollnerItalyIvan Magalhaes PROPOSAL
Jefferson SchemmerBrazilOnyama Limba UNQUALIFIED
Mujtaba NickaUnited KingdomOnyama Limba NEW
Aika InouyeItalyOnyama Limba QUALIFIED
Leja CaldareraItalyXuxue Feng NEW
Octavia MaletArgentinaAsiya Javayant NEW
Izzy GarufiIndiaXuxue Feng NEW
Chavez BriddickItalyIvan Magalhaes RENEWAL
Rodrigues CampainArgentinaAnna Fali NEGOTIATION
Leja CaldareraArgentinaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresAustraliaIvan Magalhaes UNQUALIFIED
Izzy GarufiBrazilElwin Sharvill RENEWAL
Isabel BowleyCanadaIoni Bowcher NEW
Kadeem FlosiRussiaXuxue Feng RENEWAL
Salvatore StockhamJapanOnyama Limba UNQUALIFIED
Mujtaba NickaAustraliaIvan Magalhaes RENEWAL
Stacey MacleadFranceStephen Shaw RENEWAL
James ButtUnited KingdomAmy Elsner NEW
Silvio SlusarskiSpainElwin Sharvill NEGOTIATION
Johnson SergiRussiaElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy GarufiSpain2021-10-01Buckley Miller Wright QUALIFIED85Onyama Limba
1001Antonio CaudyRussia2021-10-06Buckley Miller Wright UNQUALIFIED64Ivan Magalhaes
1002Aruna FigeroaRussia2021-10-10Chanay, Jeffrey A Esq PROPOSAL15Stephen Shaw
1003Deepesh ChuiGermany2021-10-13Dorl, James J Esq NEW69Xuxue Feng
1004Octavia MaletArgentina2021-10-25Printing Dimensions QUALIFIED13Ivan Magalhaes
1005Maria MarrierFrance2021-10-11Feiner Bros RENEWAL51Anna Fali
1006Leon OldroydUnited Kingdom2021-10-16Buckley Miller Wright UNQUALIFIED12Ioni Bowcher
1007Francesco ShinkoArgentina2021-10-24Rangoni Of Florence PROPOSAL92Elwin Sharvill
1008Jeanfrancois VenereJapan2021-10-08Truhlar And Truhlar Attys PROPOSAL92Anna Fali
1009Arvin AlbaresBrazil2021-10-19Chemel, James L Cpa NEW72Ioni Bowcher
1010Deepesh ChuiUnited Kingdom2021-09-30Rangoni Of Florence NEW46Onyama Limba
1011Aditya KuskoJapan2021-10-06Rousseaux, Michael Esq RENEWAL16Asiya Javayant
1012Clifford RimJapan2021-10-07Chemel, James L Cpa PROPOSAL36Elwin Sharvill
1013Tony FollerItaly2021-10-24Truhlar And Truhlar Attys UNQUALIFIED71Bernardo Dominic
1014Mujtaba NickaAustralia2021-10-13Rousseaux, Michael Esq NEGOTIATION53Ioni Bowcher
1015David DarakjyCanada2021-10-27Dorl, James J Esq QUALIFIED11Xuxue Feng
1016Faith GillianSpain2021-10-18Feltz Printing Service UNQUALIFIED30Onyama Limba
1017Aditya KuskoCanada2021-10-05Rangoni Of Florence QUALIFIED62Stephen Shaw
1018Cody SaylorsUnited Kingdom2021-10-15King, Christopher A Esq NEW15Anna Fali
1019Mujtaba NickaFrance2021-09-30Rangoni Of Florence UNQUALIFIED60Ivan Magalhaes
1020Jeanfrancois VenereItaly2021-10-11Printing Dimensions NEW36Xuxue Feng
1021Munro FerenczFrance2021-10-13Chemel, James L Cpa PROPOSAL41Asiya Javayant
1022Adams MorascaIndia2021-10-12Chapman, Ross E Esq NEGOTIATION21Onyama Limba
1023Aditya KuskoGermany2021-10-12Morlong Associates NEGOTIATION92Elwin Sharvill
1024Jefferson SchemmerGermany2021-10-10Feltz Printing Service PROPOSAL5Stephen Shaw
1025Cody SaylorsGermany2021-10-25Dorl, James J Esq NEGOTIATION3Stephen Shaw
1026Jeanfrancois VenereArgentina2021-10-27Printing Dimensions NEW61Asiya Javayant
1027Wickens NestleFrance2021-10-23Rousseaux, Michael Esq NEW29Anna Fali
1028Mayumi KolmetzCanada2021-09-29Benton, John B Jr QUALIFIED88Xuxue Feng
1029Deepesh ChuiGermany2021-10-03Buckley Miller Wright RENEWAL53Asiya Javayant
1030Wickens NestleArgentina2021-10-17Dorl, James J Esq PROPOSAL14Bernardo Dominic
1031Greenwood BologniaSpain2021-10-03King, Christopher A Esq PROPOSAL40Ioni Bowcher
1032Aika InouyeBrazil2021-10-25Buckley Miller Wright UNQUALIFIED42Anna Fali
1033Jennifer AmigonGermany2021-10-20Feltz Printing Service RENEWAL24Ioni Bowcher
1034Faith GillianAustralia2021-10-27Chapman, Ross E Esq PROPOSAL9Ivan Magalhaes
1035Faith GillianAustralia2021-10-17Benton, John B Jr QUALIFIED13Ioni Bowcher
1036Leja CaldareraBrazil2021-10-25Printing Dimensions NEGOTIATION16Ioni Bowcher
1037Antonio CaudyBrazil2021-10-10Feltz Printing Service QUALIFIED89Amy Elsner
1038Jeanfrancois VenereUnited Kingdom2021-10-06Commercial Press NEW37Anna Fali
1039Jefferson SchemmerCanada2021-10-03Printing Dimensions UNQUALIFIED14Ivan Magalhaes
1040Leon OldroydSpain2021-10-14Truhlar And Truhlar Attys UNQUALIFIED16Anna Fali
1041Murillo MaletAustralia2021-10-17Rangoni Of Florence RENEWAL86Onyama Limba
1042Johnson SergiArgentina2021-10-24Rousseaux, Michael Esq PROPOSAL7Asiya Javayant
1043Tony FollerArgentina2021-10-22Commercial Press RENEWAL52Ioni Bowcher
1044Chavez BriddickUnited Kingdom2021-10-13Truhlar And Truhlar Attys UNQUALIFIED17Amy Elsner
1045Maisha RulapaughUnited Kingdom2021-10-16Feiner Bros RENEWAL65Asiya Javayant
1046Aruna FigeroaSpain2021-09-30Commercial Press PROPOSAL59Ivan Magalhaes
1047Juan WieserAustralia2021-10-27Chemel, James L Cpa RENEWAL32Ioni Bowcher
1048Clifford RimJapan2021-10-16Benton, John B Jr NEGOTIATION50Amy Elsner
1049Kadeem FlosiCanada2021-10-22Feltz Printing Service RENEWAL51Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaIndiaOnyama Limba PROPOSAL
Alejandro PerinRussiaIoni Bowcher NEGOTIATION
Ricardo GauchoJapanAmy Elsner RENEWAL
Greenwood BologniaGermanyIoni Bowcher PROPOSAL
Deepesh ChuiArgentinaStephen Shaw PROPOSAL
Nicolas IturbideSpainIoni Bowcher RENEWAL
James ButtArgentinaXuxue Feng QUALIFIED
Antonio CaudyUnited KingdomXuxue Feng NEW
James ButtItalyIoni Bowcher PROPOSAL
Jefferson SchemmerJapanOnyama Limba RENEWAL
Aditya KuskoRussiaAmy Elsner RENEWAL
Francesco ShinkoUnited KingdomAmy Elsner QUALIFIED
James ButtRussiaXuxue Feng NEW
Isabel BowleyAustraliaIoni Bowcher NEGOTIATION
Maria MarrierItalyBernardo Dominic NEW
Clifford RimBrazilAsiya Javayant NEW
Murillo MaletFranceXuxue Feng RENEWAL
Leon OldroydAustraliaXuxue Feng PROPOSAL
James ButtFranceAnna Fali NEGOTIATION
Jones VocelkaUnited KingdomIvan Magalhaes NEW
Morrow RutaGermanyElwin Sharvill UNQUALIFIED
Tony FollerArgentinaStephen Shaw NEGOTIATION
Clifford RimUnited KingdomAsiya Javayant QUALIFIED
Aika InouyeCanadaAsiya Javayant QUALIFIED
Izzy GarufiGermanyAsiya Javayant PROPOSAL
Leja CaldareraJapanIoni Bowcher NEW
Jennifer AmigonItalyXuxue Feng PROPOSAL
Johnson SergiAustraliaXuxue Feng RENEWAL
Kadeem FlosiUnited KingdomOnyama Limba NEW
Ricardo GauchoAustraliaAnna Fali QUALIFIED
Deepesh ChuiSpainIoni Bowcher RENEWAL
Salvatore StockhamIndiaAsiya Javayant PROPOSAL
Faith GillianRussiaAsiya Javayant RENEWAL
Salvatore StockhamUnited KingdomBernardo Dominic UNQUALIFIED
Emily WhobreyArgentinaStephen Shaw NEW
Leja CaldareraBrazilAmy Elsner PROPOSAL
Julie StensethJapanIvan Magalhaes NEW
Leja CaldareraSpainAsiya Javayant UNQUALIFIED
Leja CaldareraFranceAmy Elsner RENEWAL
Maisha RulapaughSpainXuxue Feng QUALIFIED
Jones VocelkaArgentinaAmy Elsner PROPOSAL
Greenwood BologniaIndiaAsiya Javayant NEW
Izzy GarufiArgentinaStephen Shaw NEW
Ricardo GauchoUnited KingdomIoni Bowcher QUALIFIED
Isabel BowleyArgentinaXuxue Feng RENEWAL
Rodrigues CampainGermanyXuxue Feng UNQUALIFIED
Octavia MaletIndiaAnna Fali PROPOSAL
Juan WieserSpainAsiya Javayant NEGOTIATION
Alejandro PerinAustraliaAmy Elsner QUALIFIED
Octavia MaletArgentinaStephen Shaw QUALIFIED
Frozen Columns
Name
Mayumi Kolmetz
Costa Dilliard
Cody Saylors
Johnson Sergi
Stacey Maclead
Aika Inouye
Kaitlin Ostrosky
Mujtaba Nicka
Izzy Garufi
Jefferson Schemmer
Jefferson Schemmer
Jefferson Schemmer
Adams Morasca
Kadeem Flosi
Julie Stenseth
Ashley Doe
Maria Marrier
Misaki Royster
Deepesh Chui
Ivar Paprocki
Claire Tollner
Alejandro Perin
Aruna Figeroa
James Butt
Antonio Caudy
Mayumi Kolmetz
James Butt
Kadeem Flosi
Juan Wieser
Tony Foller
Greenwood Bolognia
Nicolas Iturbide
Emily Whobrey
Ashley Doe
Morrow Ruta
Alejandro Perin
Ricardo Gaucho
Claire Tollner
Sinclair Waycott
Arvin Albares
Costa Dilliard
Jefferson Schemmer
Antonio Caudy
Maisha Rulapaugh
Ivar Paprocki
Maria Marrier
Sinclair Waycott
Misaki Royster
James Butt
Izzy Garufi
IdCountryDate
1000Spain2021-10-10
1001Canada2021-09-29
1002Italy2021-10-24
1003Australia2021-10-11
1004Italy2021-10-18
1005Germany2021-10-01
1006Argentina2021-10-06
1007Italy2021-10-22
1008France2021-10-15
1009United Kingdom2021-10-15
1010United Kingdom2021-10-06
1011Spain2021-10-27
1012France2021-10-20
1013Italy2021-10-15
1014France2021-10-23
1015India2021-09-29
1016Italy2021-10-06
1017Canada2021-10-12
1018Japan2021-10-20
1019Spain2021-10-11
1020Japan2021-09-28
1021Russia2021-10-17
1022Argentina2021-10-06
1023Argentina2021-10-22
1024Argentina2021-10-13
1025Germany2021-10-10
1026Canada2021-10-11
1027United Kingdom2021-10-05
1028Germany2021-09-28
1029Japan2021-10-08
1030Spain2021-10-19
1031France2021-10-07
1032Italy2021-10-15
1033Italy2021-10-20
1034United Kingdom2021-10-24
1035France2021-10-10
1036Japan2021-10-22
1037Germany2021-10-10
1038Australia2021-10-01
1039France2021-10-07
1040Japan2021-10-22
1041Brazil2021-10-11
1042Japan2021-10-15
1043Australia2021-10-25
1044Canada2021-10-05
1045Germany2021-09-28
1046Brazil2021-09-29
1047Brazil2021-10-08
1048Russia2021-10-02
1049India2021-10-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
No records found.

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

Session expired

Reloading page

Message:
StackTrace: