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
Maisha RulapaughArgentinaXuxue Feng UNQUALIFIED
Chavez BriddickUnited KingdomOnyama Limba NEGOTIATION
Murillo MaletSpainAnna Fali PROPOSAL
Chavez BriddickRussiaIoni Bowcher NEGOTIATION
Greenwood BologniaItalyBernardo Dominic PROPOSAL
Leja CaldareraItalyIvan Magalhaes PROPOSAL
David DarakjyFranceStephen Shaw RENEWAL
Isabel BowleySpainAmy Elsner PROPOSAL
Salvatore StockhamCanadaIoni Bowcher UNQUALIFIED
Jones VocelkaUnited KingdomIvan Magalhaes PROPOSAL
Morrow RutaCanadaAsiya Javayant UNQUALIFIED
Deepesh ChuiItalyAmy Elsner NEW
Murillo MaletArgentinaElwin Sharvill NEW
David DarakjyCanadaAsiya Javayant QUALIFIED
Wickens NestleItalyOnyama Limba RENEWAL
Leon OldroydBrazilStephen Shaw UNQUALIFIED
Antonio CaudyRussiaBernardo Dominic PROPOSAL
Arvin AlbaresCanadaBernardo Dominic NEGOTIATION
Cody SaylorsGermanyIvan Magalhaes NEW
Antonio CaudyIndiaAmy Elsner RENEWAL
Leon OldroydArgentinaIoni Bowcher UNQUALIFIED
Leon OldroydItalyIoni Bowcher QUALIFIED
Julie StensethItalyAsiya Javayant QUALIFIED
Ricardo GauchoSpainBernardo Dominic QUALIFIED
Cody SaylorsBrazilAmy Elsner NEW
Mayumi KolmetzCanadaAmy Elsner RENEWAL
Munro FerenczRussiaStephen Shaw NEGOTIATION
Wickens NestleItalyElwin Sharvill PROPOSAL
Nicolas IturbideItalyIoni Bowcher PROPOSAL
Chavez BriddickUnited KingdomIoni Bowcher NEGOTIATION
Darci PoquetteCanadaXuxue Feng RENEWAL
Ashley DoeArgentinaXuxue Feng NEGOTIATION
Silvio SlusarskiRussiaIvan Magalhaes RENEWAL
Jones VocelkaJapanIoni Bowcher PROPOSAL
Silvio SlusarskiFranceStephen Shaw NEGOTIATION
Aditya KuskoCanadaElwin Sharvill RENEWAL
Salvatore StockhamAustraliaIvan Magalhaes NEW
Silvio SlusarskiFranceStephen Shaw QUALIFIED
Emily WhobreyFranceOnyama Limba NEW
Faith GillianFranceIoni Bowcher NEGOTIATION
Greenwood BologniaBrazilStephen Shaw NEW
Octavia MaletBrazilOnyama Limba PROPOSAL
Francesco ShinkoGermanyOnyama Limba QUALIFIED
David DarakjySpainAnna Fali NEW
Arvin AlbaresBrazilBernardo Dominic PROPOSAL
Antonio CaudyCanadaStephen Shaw QUALIFIED
Munro FerenczArgentinaXuxue Feng NEGOTIATION
Jones VocelkaJapanStephen Shaw UNQUALIFIED
Sinclair WaycottBrazilIoni Bowcher RENEWAL
Deepesh ChuiSpainElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Antonio CaudyItalyXuxue Feng PROPOSAL
Claire TollnerSpainAnna Fali PROPOSAL
Antonio CaudyCanadaAmy Elsner RENEWAL
Greenwood BologniaItalyStephen Shaw NEGOTIATION
Isabel BowleyItalyAnna Fali UNQUALIFIED
Munro FerenczCanadaBernardo Dominic UNQUALIFIED
James ButtBrazilAsiya Javayant RENEWAL
Arvin AlbaresSpainAnna Fali UNQUALIFIED
Cody SaylorsRussiaAsiya Javayant NEGOTIATION
Antonio CaudyFranceAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleItaly2021-09-05Dorl, James J Esq PROPOSAL17Bernardo Dominic
1001Francesco ShinkoArgentina2021-09-09Dorl, James J Esq QUALIFIED22Asiya Javayant
1002Smith GlickJapan2021-09-13Chanay, Jeffrey A Esq QUALIFIED32Onyama Limba
1003Costa DilliardArgentina2021-09-02Printing Dimensions RENEWAL1Anna Fali
1004Adams MorascaBrazil2021-09-07Chapman, Ross E Esq NEW12Elwin Sharvill
1005Cody SaylorsSpain2021-09-07Feiner Bros NEW64Xuxue Feng
1006Claire TollnerUnited Kingdom2021-09-10Benton, John B Jr NEW87Elwin Sharvill
1007Aika InouyeItaly2021-09-09Dorl, James J Esq NEW22Asiya Javayant
1008Francesco ShinkoGermany2021-09-20Benton, John B Jr NEGOTIATION78Asiya Javayant
1009Smith GlickBrazil2021-08-28Commercial Press NEW99Amy Elsner
1010James ButtBrazil2021-08-23Printing Dimensions RENEWAL10Xuxue Feng
1011Clifford RimJapan2021-09-04Dorl, James J Esq NEGOTIATION11Xuxue Feng
1012Kaitlin OstroskyJapan2021-09-14King, Christopher A Esq UNQUALIFIED13Anna Fali
1013Adams MorascaArgentina2021-08-26Feltz Printing Service QUALIFIED63Stephen Shaw
1014Jennifer AmigonItaly2021-09-15Chapman, Ross E Esq RENEWAL46Onyama Limba
1015Misaki RoysterUnited Kingdom2021-09-12Commercial Press RENEWAL73Bernardo Dominic
1016Cody SaylorsGermany2021-09-13Dorl, James J Esq NEW12Ioni Bowcher
1017Tony FollerIndia2021-08-30Rousseaux, Michael Esq RENEWAL7Stephen Shaw
1018Tony FollerJapan2021-09-16Chemel, James L Cpa RENEWAL12Onyama Limba
1019Darci PoquetteFrance2021-09-02Buckley Miller Wright RENEWAL76Asiya Javayant
1020Leja CaldareraGermany2021-08-29Feiner Bros PROPOSAL71Amy Elsner
1021Morrow RutaIndia2021-09-10Feltz Printing Service RENEWAL38Onyama Limba
1022Isabel BowleyJapan2021-08-26Benton, John B Jr NEW81Bernardo Dominic
1023Aditya KuskoGermany2021-08-27Truhlar And Truhlar Attys NEW42Ivan Magalhaes
1024Cody SaylorsRussia2021-08-24Morlong Associates RENEWAL82Elwin Sharvill
1025Darci PoquetteUnited Kingdom2021-09-06Feiner Bros PROPOSAL40Amy Elsner
1026Mayumi KolmetzUnited Kingdom2021-09-07Feiner Bros NEGOTIATION11Amy Elsner
1027Isabel BowleySpain2021-09-01Morlong Associates NEW34Elwin Sharvill
1028Faith GillianIndia2021-08-29Rousseaux, Michael Esq RENEWAL72Onyama Limba
1029Deepesh ChuiFrance2021-09-04Chapman, Ross E Esq PROPOSAL14Onyama Limba
1030Izzy GarufiArgentina2021-09-07Chanay, Jeffrey A Esq UNQUALIFIED89Onyama Limba
1031Leon OldroydBrazil2021-08-28Rangoni Of Florence RENEWAL72Asiya Javayant
1032Morrow RutaRussia2021-08-23Dorl, James J Esq QUALIFIED28Elwin Sharvill
1033Faith GillianSpain2021-08-24Feiner Bros UNQUALIFIED80Asiya Javayant
1034Faith GillianUnited Kingdom2021-09-08Commercial Press QUALIFIED67Xuxue Feng
1035Rodrigues CampainArgentina2021-09-12Truhlar And Truhlar Attys NEW76Stephen Shaw
1036Maria MarrierUnited Kingdom2021-08-30Rousseaux, Michael Esq PROPOSAL38Bernardo Dominic
1037Rodrigues CampainAustralia2021-09-07Morlong Associates NEGOTIATION58Amy Elsner
1038Maria MarrierIndia2021-09-07Rangoni Of Florence QUALIFIED9Bernardo Dominic
1039James ButtJapan2021-09-03Benton, John B Jr RENEWAL51Ioni Bowcher
1040Cody SaylorsIndia2021-08-30Rangoni Of Florence NEW73Bernardo Dominic
1041Octavia MaletItaly2021-08-25Feiner Bros RENEWAL0Onyama Limba
1042James ButtFrance2021-08-26Chanay, Jeffrey A Esq PROPOSAL89Ivan Magalhaes
1043Misaki RoysterFrance2021-08-31King, Christopher A Esq NEGOTIATION45Onyama Limba
1044Wickens NestleGermany2021-08-27Chanay, Jeffrey A Esq RENEWAL17Stephen Shaw
1045Jefferson SchemmerIndia2021-09-17Chapman, Ross E Esq NEW6Elwin Sharvill
1046Ivar PaprockiItaly2021-08-23Benton, John B Jr NEGOTIATION14Ivan Magalhaes
1047Aika InouyeFrance2021-08-31Feltz Printing Service PROPOSAL97Asiya Javayant
1048Aditya KuskoBrazil2021-09-11Buckley Miller Wright NEGOTIATION69Xuxue Feng
1049Aika InouyeIndia2021-09-19Buckley Miller Wright QUALIFIED27Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamAustraliaIoni Bowcher PROPOSAL
Misaki RoysterArgentinaIvan Magalhaes NEGOTIATION
Octavia MaletAustraliaXuxue Feng RENEWAL
Ashley DoeFranceIvan Magalhaes PROPOSAL
Sinclair WaycottItalyAnna Fali PROPOSAL
Greenwood BologniaRussiaXuxue Feng NEGOTIATION
Izzy GarufiGermanyBernardo Dominic NEGOTIATION
Mayumi KolmetzAustraliaBernardo Dominic NEGOTIATION
Nicolas IturbideUnited KingdomIoni Bowcher NEGOTIATION
Maisha RulapaughBrazilBernardo Dominic NEGOTIATION
Adams MorascaSpainStephen Shaw UNQUALIFIED
Murillo MaletBrazilAnna Fali UNQUALIFIED
Ivar PaprockiBrazilAnna Fali QUALIFIED
Sinclair WaycottIndiaOnyama Limba RENEWAL
Jennifer AmigonAustraliaIvan Magalhaes NEGOTIATION
Ashley DoeUnited KingdomStephen Shaw RENEWAL
Izzy GarufiGermanyXuxue Feng NEW
Maria MarrierFranceAsiya Javayant PROPOSAL
Jones VocelkaGermanyIoni Bowcher PROPOSAL
Kadeem FlosiIndiaAnna Fali UNQUALIFIED
Smith GlickItalyBernardo Dominic UNQUALIFIED
Maisha RulapaughBrazilAmy Elsner QUALIFIED
Jones VocelkaSpainElwin Sharvill QUALIFIED
Jeanfrancois VenereFranceAnna Fali NEW
Chavez BriddickArgentinaBernardo Dominic PROPOSAL
Ivar PaprockiJapanOnyama Limba RENEWAL
Octavia MaletCanadaStephen Shaw RENEWAL
Mujtaba NickaArgentinaAsiya Javayant QUALIFIED
Aditya KuskoItalyIoni Bowcher QUALIFIED
Tony FollerSpainXuxue Feng RENEWAL
Tony FollerIndiaAmy Elsner PROPOSAL
Kaitlin OstroskySpainStephen Shaw PROPOSAL
Claire TollnerGermanyAnna Fali PROPOSAL
Alejandro PerinAustraliaElwin Sharvill RENEWAL
Kadeem FlosiArgentinaXuxue Feng NEGOTIATION
Jones VocelkaSpainIoni Bowcher NEW
Jones VocelkaAustraliaIoni Bowcher NEGOTIATION
Mujtaba NickaArgentinaStephen Shaw NEW
Deepesh ChuiRussiaElwin Sharvill RENEWAL
Morrow RutaBrazilStephen Shaw NEGOTIATION
Mujtaba NickaJapanAmy Elsner QUALIFIED
Kadeem FlosiSpainAsiya Javayant RENEWAL
Morrow RutaItalyXuxue Feng PROPOSAL
Greenwood BologniaUnited KingdomStephen Shaw NEW
Morrow RutaFranceXuxue Feng NEGOTIATION
Antonio CaudyCanadaStephen Shaw RENEWAL
Morrow RutaUnited KingdomAsiya Javayant RENEWAL
Claire TollnerSpainAnna Fali NEW
Costa DilliardArgentinaXuxue Feng UNQUALIFIED
Leja CaldareraRussiaAmy Elsner NEW
Frozen Columns
Name
Misaki Royster
James Butt
Aditya Kusko
Jones Vocelka
Clifford Rim
Aditya Kusko
Costa Dilliard
Aditya Kusko
Faith Gillian
Munro Ferencz
Rodrigues Campain
Sinclair Waycott
Jefferson Schemmer
Faith Gillian
Aditya Kusko
Maria Marrier
Salvatore Stockham
Adams Morasca
Julie Stenseth
Juan Wieser
Mayumi Kolmetz
Cody Saylors
James Butt
Kaitlin Ostrosky
Cody Saylors
Aruna Figeroa
Chavez Briddick
David Darakjy
Chavez Briddick
Morrow Ruta
Julie Stenseth
Leja Caldarera
Morrow Ruta
Tony Foller
Costa Dilliard
Darci Poquette
Clifford Rim
Mujtaba Nicka
Aruna Figeroa
Juan Wieser
Costa Dilliard
Deepesh Chui
Jeanfrancois Venere
Morrow Ruta
Deepesh Chui
Mujtaba Nicka
Jeanfrancois Venere
Faith Gillian
Arvin Albares
Arvin Albares
IdCountryDate
1000Russia2021-09-13
1001Brazil2021-09-14
1002Germany2021-08-25
1003Canada2021-09-03
1004Japan2021-08-22
1005Italy2021-08-28
1006Italy2021-09-11
1007Japan2021-08-31
1008Canada2021-08-27
1009Italy2021-08-22
1010Australia2021-09-03
1011Spain2021-09-11
1012Canada2021-09-09
1013Spain2021-09-17
1014Italy2021-08-29
1015Russia2021-08-28
1016Italy2021-08-25
1017Italy2021-09-03
1018United Kingdom2021-09-06
1019Spain2021-08-23
1020Italy2021-09-19
1021Germany2021-09-18
1022Spain2021-09-17
1023Canada2021-08-26
1024Spain2021-09-01
1025Japan2021-08-22
1026France2021-09-12
1027Canada2021-09-19
1028Spain2021-08-23
1029France2021-09-14
1030Canada2021-08-30
1031Australia2021-08-24
1032France2021-09-20
1033Italy2021-09-03
1034Germany2021-08-22
1035Russia2021-09-03
1036Japan2021-09-15
1037Canada2021-09-15
1038Canada2021-09-11
1039France2021-09-05
1040Italy2021-08-26
1041Australia2021-09-14
1042Spain2021-09-18
1043Australia2021-09-15
1044India2021-09-18
1045Australia2021-08-26
1046Canada2021-08-24
1047Brazil2021-09-14
1048Germany2021-09-15
1049Canada2021-09-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria MarrierCanadaIvan Magalhaes UNQUALIFIED
Francesco ShinkoItalyIoni Bowcher PROPOSAL
Aika InouyeSpainAmy Elsner NEGOTIATION
Jennifer AmigonBrazilAnna Fali PROPOSAL
Isabel BowleyUnited KingdomXuxue Feng QUALIFIED
Ricardo GauchoBrazilAsiya Javayant PROPOSAL
Leon OldroydFranceBernardo Dominic QUALIFIED
Maria MarrierCanadaAmy Elsner UNQUALIFIED
Wickens NestleUnited KingdomAsiya Javayant RENEWAL
Jones VocelkaFranceStephen Shaw QUALIFIED
Julie StensethArgentinaBernardo Dominic RENEWAL
Leja CaldareraCanadaAsiya Javayant PROPOSAL
Rodrigues CampainArgentinaElwin Sharvill QUALIFIED
Maria MarrierItalyAnna Fali UNQUALIFIED
Kadeem FlosiIndiaAsiya Javayant RENEWAL
Salvatore StockhamItalyStephen Shaw NEGOTIATION
Salvatore StockhamItalyElwin Sharvill NEW
Octavia MaletAustraliaAmy Elsner NEGOTIATION
Francesco ShinkoFranceXuxue Feng NEW
Johnson SergiAustraliaIvan Magalhaes RENEWAL
Munro FerenczJapanElwin Sharvill RENEWAL
Chavez BriddickFranceAsiya Javayant PROPOSAL
Wickens NestleJapanBernardo Dominic RENEWAL
Clifford RimAustraliaIvan Magalhaes RENEWAL
Mujtaba NickaBrazilAmy Elsner PROPOSAL
Smith GlickBrazilXuxue Feng RENEWAL
Juan WieserBrazilAsiya Javayant RENEWAL
David DarakjyGermanyIvan Magalhaes PROPOSAL
Darci PoquetteUnited KingdomIoni Bowcher UNQUALIFIED
James ButtFranceAsiya Javayant PROPOSAL
Darci PoquetteSpainAnna Fali PROPOSAL
Morrow RutaRussiaIoni Bowcher QUALIFIED
Costa DilliardSpainXuxue Feng PROPOSAL
Smith GlickRussiaXuxue Feng NEGOTIATION
Aruna FigeroaRussiaAsiya Javayant PROPOSAL
Smith GlickUnited KingdomXuxue Feng PROPOSAL
Maria MarrierAustraliaAnna Fali NEGOTIATION
Chavez BriddickRussiaXuxue Feng QUALIFIED
Silvio SlusarskiJapanAnna Fali NEGOTIATION
Jefferson SchemmerItalyXuxue Feng 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>