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
David DarakjySpainIoni Bowcher QUALIFIED
Kaitlin OstroskyUnited KingdomXuxue Feng QUALIFIED
Salvatore StockhamUnited KingdomElwin Sharvill NEGOTIATION
Ricardo GauchoRussiaBernardo Dominic RENEWAL
Greenwood BologniaBrazilIvan Magalhaes UNQUALIFIED
Costa DilliardArgentinaAsiya Javayant RENEWAL
Aika InouyeRussiaBernardo Dominic RENEWAL
Aika InouyeGermanyElwin Sharvill NEGOTIATION
Tony FollerItalyBernardo Dominic PROPOSAL
Mujtaba NickaSpainAnna Fali PROPOSAL
Faith GillianBrazilOnyama Limba NEGOTIATION
Kadeem FlosiCanadaAnna Fali QUALIFIED
Jones VocelkaIndiaOnyama Limba PROPOSAL
Deepesh ChuiItalyIvan Magalhaes NEW
James ButtArgentinaOnyama Limba NEW
Emily WhobreyCanadaAmy Elsner QUALIFIED
Smith GlickBrazilXuxue Feng RENEWAL
Jeanfrancois VenereUnited KingdomAnna Fali QUALIFIED
Salvatore StockhamAustraliaBernardo Dominic PROPOSAL
Juan WieserSpainStephen Shaw UNQUALIFIED
Aditya KuskoArgentinaAmy Elsner NEW
Greenwood BologniaAustraliaElwin Sharvill NEW
Izzy GarufiGermanyAsiya Javayant NEW
Ricardo GauchoJapanAnna Fali RENEWAL
Ivar PaprockiAustraliaStephen Shaw RENEWAL
Salvatore StockhamBrazilIoni Bowcher NEW
Aruna FigeroaFranceElwin Sharvill NEGOTIATION
Morrow RutaJapanElwin Sharvill NEW
Aditya KuskoGermanyElwin Sharvill NEW
Adams MorascaIndiaAnna Fali PROPOSAL
Francesco ShinkoIndiaBernardo Dominic QUALIFIED
Alejandro PerinSpainOnyama Limba NEGOTIATION
Faith GillianUnited KingdomAmy Elsner NEW
Antonio CaudyJapanAmy Elsner UNQUALIFIED
Aditya KuskoFranceXuxue Feng NEGOTIATION
Costa DilliardIndiaAmy Elsner UNQUALIFIED
Juan WieserRussiaIvan Magalhaes NEGOTIATION
James ButtBrazilOnyama Limba RENEWAL
Morrow RutaArgentinaAmy Elsner PROPOSAL
Smith GlickFranceAsiya Javayant NEW
Greenwood BologniaRussiaStephen Shaw NEW
Greenwood BologniaAustraliaOnyama Limba UNQUALIFIED
Wickens NestleRussiaElwin Sharvill NEW
Octavia MaletCanadaBernardo Dominic NEW
Isabel BowleyFranceIvan Magalhaes UNQUALIFIED
Izzy GarufiRussiaBernardo Dominic NEW
Ricardo GauchoRussiaBernardo Dominic QUALIFIED
Jennifer AmigonAustraliaAmy Elsner PROPOSAL
Isabel BowleyBrazilAsiya Javayant NEGOTIATION
Jones VocelkaSpainIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideGermanyXuxue Feng QUALIFIED
Darci PoquetteJapanIvan Magalhaes UNQUALIFIED
Emily WhobreyItalyElwin Sharvill PROPOSAL
Sinclair WaycottRussiaIvan Magalhaes QUALIFIED
Kaitlin OstroskyCanadaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereGermanyAnna Fali PROPOSAL
Aruna FigeroaFranceStephen Shaw NEW
Kadeem FlosiSpainXuxue Feng NEW
Isabel BowleyJapanOnyama Limba RENEWAL
Leja CaldareraBrazilAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletItaly2021-03-21Feltz Printing Service UNQUALIFIED88Stephen Shaw
1001James ButtIndia2021-04-02Chemel, James L Cpa UNQUALIFIED6Ivan Magalhaes
1002Stacey MacleadBrazil2021-03-14Rousseaux, Michael Esq UNQUALIFIED19Amy Elsner
1003Cody SaylorsAustralia2021-04-03Chanay, Jeffrey A Esq PROPOSAL72Bernardo Dominic
1004Claire TollnerSpain2021-03-14Benton, John B Jr QUALIFIED7Amy Elsner
1005Mayumi KolmetzAustralia2021-04-02Benton, John B Jr PROPOSAL38Ioni Bowcher
1006Clifford RimRussia2021-04-10Feiner Bros PROPOSAL4Ioni Bowcher
1007Jennifer AmigonSpain2021-04-01Commercial Press UNQUALIFIED6Anna Fali
1008Claire TollnerCanada2021-04-10Chemel, James L Cpa QUALIFIED29Ioni Bowcher
1009Jeanfrancois VenereBrazil2021-04-12Feiner Bros UNQUALIFIED34Amy Elsner
1010Greenwood BologniaIndia2021-04-11Printing Dimensions PROPOSAL10Anna Fali
1011Salvatore StockhamCanada2021-03-24Benton, John B Jr UNQUALIFIED7Ioni Bowcher
1012Chavez BriddickRussia2021-03-28Rousseaux, Michael Esq PROPOSAL1Onyama Limba
1013Johnson SergiAustralia2021-03-28Printing Dimensions NEGOTIATION89Anna Fali
1014Morrow RutaAustralia2021-04-10Buckley Miller Wright UNQUALIFIED24Xuxue Feng
1015David DarakjyGermany2021-03-29Dorl, James J Esq PROPOSAL32Ivan Magalhaes
1016Arvin AlbaresArgentina2021-04-02Benton, John B Jr PROPOSAL31Xuxue Feng
1017Chavez BriddickJapan2021-03-17Chemel, James L Cpa PROPOSAL1Ivan Magalhaes
1018Julie StensethAustralia2021-03-26Chemel, James L Cpa UNQUALIFIED99Amy Elsner
1019Johnson SergiGermany2021-03-27Rousseaux, Michael Esq RENEWAL48Asiya Javayant
1020Wickens NestleUnited Kingdom2021-04-04Benton, John B Jr NEGOTIATION18Ivan Magalhaes
1021James ButtSpain2021-03-25Chanay, Jeffrey A Esq RENEWAL75Bernardo Dominic
1022Alejandro PerinAustralia2021-04-11Buckley Miller Wright PROPOSAL85Onyama Limba
1023Mujtaba NickaAustralia2021-03-28Truhlar And Truhlar Attys NEW83Anna Fali
1024Jones VocelkaArgentina2021-03-17Printing Dimensions RENEWAL88Elwin Sharvill
1025Clifford RimCanada2021-03-24Truhlar And Truhlar Attys QUALIFIED92Asiya Javayant
1026Juan WieserGermany2021-04-10Benton, John B Jr UNQUALIFIED1Amy Elsner
1027Cody SaylorsBrazil2021-03-27King, Christopher A Esq UNQUALIFIED57Onyama Limba
1028Juan WieserArgentina2021-03-17Printing Dimensions QUALIFIED1Ivan Magalhaes
1029Rodrigues CampainFrance2021-03-27Rousseaux, Michael Esq PROPOSAL41Stephen Shaw
1030Ivar PaprockiGermany2021-04-09Morlong Associates RENEWAL28Anna Fali
1031Mayumi KolmetzAustralia2021-03-29Chemel, James L Cpa QUALIFIED55Onyama Limba
1032Tony FollerArgentina2021-04-06Commercial Press PROPOSAL31Anna Fali
1033Mujtaba NickaGermany2021-04-02Buckley Miller Wright PROPOSAL44Elwin Sharvill
1034Smith GlickIndia2021-03-25Chapman, Ross E Esq NEGOTIATION86Bernardo Dominic
1035Adams MorascaCanada2021-04-05Chanay, Jeffrey A Esq NEW95Elwin Sharvill
1036Cody SaylorsUnited Kingdom2021-03-14Truhlar And Truhlar Attys RENEWAL95Amy Elsner
1037Antonio CaudyBrazil2021-04-09Morlong Associates PROPOSAL21Onyama Limba
1038Chavez BriddickIndia2021-04-09Printing Dimensions NEW41Ivan Magalhaes
1039Francesco ShinkoBrazil2021-03-27Feiner Bros NEW85Anna Fali
1040Isabel BowleyAustralia2021-04-04Rangoni Of Florence UNQUALIFIED97Amy Elsner
1041Sinclair WaycottArgentina2021-03-14King, Christopher A Esq RENEWAL99Anna Fali
1042Munro FerenczBrazil2021-03-17Chemel, James L Cpa NEW27Bernardo Dominic
1043Mujtaba NickaIndia2021-03-30Commercial Press QUALIFIED72Stephen Shaw
1044Mujtaba NickaItaly2021-03-26Printing Dimensions QUALIFIED9Elwin Sharvill
1045Aruna FigeroaGermany2021-04-10Chanay, Jeffrey A Esq NEGOTIATION79Asiya Javayant
1046Maria MarrierSpain2021-03-21Feltz Printing Service NEGOTIATION2Amy Elsner
1047Mujtaba NickaRussia2021-03-31Benton, John B Jr PROPOSAL31Asiya Javayant
1048Jefferson SchemmerUnited Kingdom2021-03-22Buckley Miller Wright RENEWAL19Ioni Bowcher
1049Alejandro PerinJapan2021-03-28Feiner Bros RENEWAL53Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Izzy GarufiCanadaElwin Sharvill RENEWAL
Smith GlickGermanyAmy Elsner UNQUALIFIED
Jones VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Sinclair WaycottFranceElwin Sharvill UNQUALIFIED
Kaitlin OstroskyItalyAsiya Javayant PROPOSAL
Francesco ShinkoGermanyAmy Elsner PROPOSAL
Chavez BriddickCanadaOnyama Limba PROPOSAL
Jeanfrancois VenereItalyIvan Magalhaes NEGOTIATION
Maisha RulapaughJapanAmy Elsner UNQUALIFIED
Leja CaldareraBrazilIvan Magalhaes PROPOSAL
Izzy GarufiCanadaStephen Shaw QUALIFIED
Jeanfrancois VenereArgentinaXuxue Feng UNQUALIFIED
Aruna FigeroaIndiaOnyama Limba QUALIFIED
Faith GillianArgentinaAmy Elsner QUALIFIED
Kadeem FlosiRussiaStephen Shaw NEGOTIATION
Arvin AlbaresSpainAnna Fali NEW
Johnson SergiIndiaXuxue Feng NEGOTIATION
Maisha RulapaughItalyIoni Bowcher QUALIFIED
Jennifer AmigonArgentinaAmy Elsner QUALIFIED
Jones VocelkaUnited KingdomOnyama Limba NEGOTIATION
Kaitlin OstroskyJapanAsiya Javayant NEW
Munro FerenczJapanElwin Sharvill RENEWAL
Kadeem FlosiSpainXuxue Feng QUALIFIED
Wickens NestleBrazilIoni Bowcher UNQUALIFIED
Costa DilliardFranceBernardo Dominic RENEWAL
Jennifer AmigonBrazilXuxue Feng PROPOSAL
Jefferson SchemmerJapanIoni Bowcher RENEWAL
Faith GillianUnited KingdomElwin Sharvill RENEWAL
Ivar PaprockiItalyBernardo Dominic NEW
Misaki RoysterCanadaElwin Sharvill NEW
Julie StensethBrazilOnyama Limba NEW
Jefferson SchemmerAustraliaStephen Shaw RENEWAL
Tony FollerFranceAmy Elsner PROPOSAL
Nicolas IturbideArgentinaAnna Fali UNQUALIFIED
Wickens NestleRussiaBernardo Dominic NEGOTIATION
Darci PoquetteIndiaElwin Sharvill QUALIFIED
Greenwood BologniaJapanIvan Magalhaes QUALIFIED
Izzy GarufiSpainXuxue Feng RENEWAL
Rodrigues CampainArgentinaIvan Magalhaes QUALIFIED
David DarakjyUnited KingdomAmy Elsner NEGOTIATION
Maisha RulapaughAustraliaIvan Magalhaes QUALIFIED
Emily WhobreyCanadaIvan Magalhaes NEW
Alejandro PerinAustraliaStephen Shaw QUALIFIED
Greenwood BologniaItalyXuxue Feng QUALIFIED
Isabel BowleyGermanyAsiya Javayant UNQUALIFIED
Claire TollnerArgentinaBernardo Dominic QUALIFIED
Ricardo GauchoGermanyIoni Bowcher QUALIFIED
Arvin AlbaresUnited KingdomElwin Sharvill NEGOTIATION
Greenwood BologniaAustraliaOnyama Limba PROPOSAL
Wickens NestleGermanyStephen Shaw NEGOTIATION
Frozen Columns
Name
Salvatore Stockham
Wickens Nestle
Octavia Malet
Izzy Garufi
Stacey Maclead
Sinclair Waycott
Jones Vocelka
Antonio Caudy
Adams Morasca
Cody Saylors
Kadeem Flosi
Alejandro Perin
Isabel Bowley
Cody Saylors
Morrow Ruta
Rodrigues Campain
Claire Tollner
Octavia Malet
Aika Inouye
Nicolas Iturbide
Misaki Royster
Nicolas Iturbide
Greenwood Bolognia
Tony Foller
Sinclair Waycott
Silvio Slusarski
Johnson Sergi
Arvin Albares
Murillo Malet
Rodrigues Campain
Clifford Rim
Smith Glick
Munro Ferencz
Costa Dilliard
Greenwood Bolognia
Julie Stenseth
Adams Morasca
Kaitlin Ostrosky
Costa Dilliard
Kadeem Flosi
Arvin Albares
Aruna Figeroa
Aika Inouye
Adams Morasca
Maisha Rulapaugh
Francesco Shinko
Darci Poquette
Costa Dilliard
Costa Dilliard
Jones Vocelka
IdCountryDate
1000France2021-04-07
1001Brazil2021-04-02
1002Argentina2021-03-24
1003Germany2021-04-04
1004Italy2021-03-14
1005Brazil2021-03-29
1006United Kingdom2021-03-21
1007Germany2021-04-06
1008Canada2021-03-16
1009Australia2021-03-18
1010Argentina2021-03-23
1011Australia2021-04-01
1012Brazil2021-03-21
1013Australia2021-04-11
1014India2021-04-05
1015France2021-04-01
1016Spain2021-03-22
1017Spain2021-04-12
1018Brazil2021-03-27
1019Italy2021-03-25
1020Japan2021-03-28
1021India2021-04-04
1022Spain2021-04-09
1023Russia2021-03-22
1024Spain2021-04-03
1025Argentina2021-03-19
1026Australia2021-04-06
1027Italy2021-04-02
1028Germany2021-03-29
1029Canada2021-03-19
1030Germany2021-03-21
1031Australia2021-03-16
1032Germany2021-04-07
1033Germany2021-04-04
1034Australia2021-03-22
1035Brazil2021-04-08
1036Spain2021-04-05
1037Argentina2021-03-25
1038Russia2021-03-25
1039Australia2021-03-14
1040Australia2021-03-14
1041Brazil2021-04-01
1042Italy2021-04-02
1043Germany2021-03-31
1044Russia2021-04-11
1045Japan2021-04-09
1046Spain2021-04-12
1047Russia2021-04-08
1048Australia2021-04-11
1049India2021-03-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonSpainAnna Fali PROPOSAL
Deepesh ChuiFranceOnyama Limba NEGOTIATION
Emily WhobreyCanadaBernardo Dominic NEGOTIATION
Sinclair WaycottJapanAmy Elsner PROPOSAL
Misaki RoysterIndiaAsiya Javayant UNQUALIFIED
Aruna FigeroaUnited KingdomAsiya Javayant NEGOTIATION
Mayumi KolmetzArgentinaAmy Elsner RENEWAL
Aruna FigeroaRussiaAsiya Javayant NEGOTIATION
Alejandro PerinGermanyStephen Shaw UNQUALIFIED
Smith GlickGermanyStephen Shaw NEGOTIATION
Jefferson SchemmerGermanyOnyama Limba RENEWAL
Antonio CaudyGermanyOnyama Limba NEGOTIATION
Julie StensethFranceOnyama Limba QUALIFIED
Cody SaylorsFranceAsiya Javayant PROPOSAL
Juan WieserIndiaStephen Shaw RENEWAL
Jennifer AmigonSpainIvan Magalhaes NEW
Leja CaldareraAustraliaIoni Bowcher RENEWAL
Jeanfrancois VenereIndiaAnna Fali RENEWAL
Greenwood BologniaFranceIoni Bowcher NEGOTIATION
Sinclair WaycottSpainOnyama Limba NEGOTIATION
Clifford RimJapanStephen Shaw NEGOTIATION
Francesco ShinkoSpainOnyama Limba NEW
Kaitlin OstroskyArgentinaBernardo Dominic NEW
Arvin AlbaresSpainAnna Fali NEGOTIATION
Munro FerenczGermanyAnna Fali NEGOTIATION
Claire TollnerGermanyElwin Sharvill RENEWAL
Faith GillianRussiaAnna Fali NEGOTIATION
Ashley DoeUnited KingdomAmy Elsner PROPOSAL
James ButtItalyStephen Shaw QUALIFIED
Maisha RulapaughFranceBernardo Dominic RENEWAL
Greenwood BologniaItalyXuxue Feng PROPOSAL
Faith GillianUnited KingdomAsiya Javayant NEW
Wickens NestleItalyStephen Shaw NEW
James ButtJapanAmy Elsner RENEWAL
Jones VocelkaUnited KingdomElwin Sharvill NEW
Deepesh ChuiIndiaOnyama Limba NEW
Francesco ShinkoArgentinaXuxue Feng PROPOSAL
Darci PoquetteBrazilStephen Shaw NEW
Aika InouyeArgentinaAmy Elsner NEW
Costa DilliardBrazilBernardo Dominic 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>