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
Darci PoquetteAustraliaAnna Fali NEW
Misaki RoysterBrazilAsiya Javayant RENEWAL
Kaitlin OstroskyArgentinaBernardo Dominic PROPOSAL
Aika InouyeAustraliaAmy Elsner NEGOTIATION
Rodrigues CampainGermanyOnyama Limba PROPOSAL
Jeanfrancois VenereGermanyStephen Shaw NEW
Smith GlickBrazilXuxue Feng NEW
Faith GillianItalyAmy Elsner QUALIFIED
Stacey MacleadJapanBernardo Dominic QUALIFIED
Nicolas IturbideAustraliaOnyama Limba RENEWAL
Aditya KuskoUnited KingdomElwin Sharvill UNQUALIFIED
Juan WieserAustraliaElwin Sharvill QUALIFIED
Clifford RimJapanOnyama Limba QUALIFIED
Chavez BriddickBrazilAnna Fali QUALIFIED
Kadeem FlosiGermanyAmy Elsner QUALIFIED
Alejandro PerinFranceAnna Fali NEGOTIATION
Julie StensethItalyAmy Elsner QUALIFIED
James ButtJapanAnna Fali RENEWAL
Johnson SergiCanadaElwin Sharvill PROPOSAL
Emily WhobreyItalyElwin Sharvill NEW
Kaitlin OstroskyCanadaAnna Fali QUALIFIED
Nicolas IturbideAustraliaAnna Fali QUALIFIED
Silvio SlusarskiAustraliaIvan Magalhaes RENEWAL
Sinclair WaycottUnited KingdomOnyama Limba QUALIFIED
Cody SaylorsArgentinaElwin Sharvill RENEWAL
Izzy GarufiFranceIoni Bowcher RENEWAL
Cody SaylorsRussiaAnna Fali PROPOSAL
Murillo MaletBrazilBernardo Dominic QUALIFIED
Isabel BowleyGermanyIoni Bowcher QUALIFIED
Aditya KuskoBrazilAsiya Javayant NEGOTIATION
Salvatore StockhamIndiaBernardo Dominic PROPOSAL
Stacey MacleadCanadaIvan Magalhaes PROPOSAL
Jennifer AmigonSpainStephen Shaw NEW
Jones VocelkaUnited KingdomStephen Shaw NEW
Clifford RimSpainBernardo Dominic NEGOTIATION
Chavez BriddickIndiaStephen Shaw PROPOSAL
Alejandro PerinGermanyAnna Fali PROPOSAL
Leja CaldareraItalyAmy Elsner UNQUALIFIED
Arvin AlbaresIndiaAmy Elsner PROPOSAL
Stacey MacleadRussiaAnna Fali RENEWAL
Faith GillianIndiaStephen Shaw UNQUALIFIED
Salvatore StockhamArgentinaXuxue Feng RENEWAL
Aruna FigeroaUnited KingdomAsiya Javayant RENEWAL
Sinclair WaycottRussiaXuxue Feng NEGOTIATION
Silvio SlusarskiAustraliaAmy Elsner PROPOSAL
Julie StensethIndiaElwin Sharvill NEW
Chavez BriddickIndiaIvan Magalhaes PROPOSAL
Clifford RimIndiaOnyama Limba NEGOTIATION
Ashley DoeSpainOnyama Limba PROPOSAL
Clifford RimUnited KingdomAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Octavia MaletSpainElwin Sharvill NEGOTIATION
Greenwood BologniaJapanXuxue Feng NEW
Kaitlin OstroskyRussiaXuxue Feng NEGOTIATION
Jones VocelkaJapanIvan Magalhaes NEGOTIATION
Ricardo GauchoRussiaXuxue Feng NEGOTIATION
Darci PoquetteSpainStephen Shaw NEW
Salvatore StockhamArgentinaElwin Sharvill RENEWAL
Francesco ShinkoArgentinaIoni Bowcher NEGOTIATION
Darci PoquetteArgentinaAmy Elsner PROPOSAL
Deepesh ChuiItalyStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith GlickCanada2021-10-12Buckley Miller Wright RENEWAL31Elwin Sharvill
1001Juan WieserSpain2021-09-24Chapman, Ross E Esq NEW88Stephen Shaw
1002Deepesh ChuiItaly2021-09-27Chanay, Jeffrey A Esq UNQUALIFIED63Onyama Limba
1003Maisha RulapaughItaly2021-09-29Printing Dimensions NEGOTIATION84Onyama Limba
1004Kaitlin OstroskyJapan2021-10-20Commercial Press NEGOTIATION87Elwin Sharvill
1005Darci PoquetteCanada2021-10-12Benton, John B Jr NEGOTIATION86Anna Fali
1006Chavez BriddickItaly2021-10-11Morlong Associates NEW69Ioni Bowcher
1007Stacey MacleadSpain2021-10-15Buckley Miller Wright RENEWAL99Asiya Javayant
1008Julie StensethCanada2021-09-28Feltz Printing Service PROPOSAL3Amy Elsner
1009Murillo MaletUnited Kingdom2021-10-15Feltz Printing Service NEW34Xuxue Feng
1010Isabel BowleyGermany2021-10-11Commercial Press UNQUALIFIED7Anna Fali
1011Cody SaylorsArgentina2021-10-04Feiner Bros RENEWAL10Onyama Limba
1012Deepesh ChuiArgentina2021-09-25Morlong Associates QUALIFIED79Anna Fali
1013Jones VocelkaGermany2021-09-30Truhlar And Truhlar Attys UNQUALIFIED95Ioni Bowcher
1014Mayumi KolmetzSpain2021-10-15Buckley Miller Wright RENEWAL86Ivan Magalhaes
1015Kaitlin OstroskySpain2021-09-25Benton, John B Jr UNQUALIFIED0Asiya Javayant
1016Izzy GarufiRussia2021-10-06Feltz Printing Service PROPOSAL1Xuxue Feng
1017Greenwood BologniaCanada2021-10-05King, Christopher A Esq RENEWAL56Amy Elsner
1018Chavez BriddickIndia2021-10-05Commercial Press RENEWAL19Stephen Shaw
1019Rodrigues CampainIndia2021-09-22Feltz Printing Service PROPOSAL85Amy Elsner
1020Aditya KuskoJapan2021-10-10Benton, John B Jr QUALIFIED40Xuxue Feng
1021Sinclair WaycottItaly2021-10-04Feltz Printing Service NEGOTIATION10Onyama Limba
1022Darci PoquetteSpain2021-10-13Rangoni Of Florence QUALIFIED37Stephen Shaw
1023Ivar PaprockiArgentina2021-10-01Morlong Associates UNQUALIFIED68Asiya Javayant
1024Darci PoquetteRussia2021-10-10Chemel, James L Cpa NEW78Xuxue Feng
1025Morrow RutaUnited Kingdom2021-09-27Benton, John B Jr QUALIFIED11Asiya Javayant
1026Aruna FigeroaUnited Kingdom2021-10-13Buckley Miller Wright NEGOTIATION96Asiya Javayant
1027Costa DilliardItaly2021-10-10Buckley Miller Wright RENEWAL3Onyama Limba
1028Chavez BriddickArgentina2021-09-26Morlong Associates UNQUALIFIED68Asiya Javayant
1029Kadeem FlosiRussia2021-09-28Benton, John B Jr UNQUALIFIED91Anna Fali
1030Silvio SlusarskiFrance2021-09-25Benton, John B Jr QUALIFIED20Stephen Shaw
1031Julie StensethUnited Kingdom2021-10-03Truhlar And Truhlar Attys QUALIFIED79Stephen Shaw
1032Costa DilliardRussia2021-09-23Chanay, Jeffrey A Esq UNQUALIFIED82Amy Elsner
1033Francesco ShinkoItaly2021-10-20Chanay, Jeffrey A Esq RENEWAL10Bernardo Dominic
1034Salvatore StockhamArgentina2021-10-01Chanay, Jeffrey A Esq RENEWAL30Onyama Limba
1035Tony FollerAustralia2021-10-01Rangoni Of Florence NEGOTIATION5Stephen Shaw
1036Murillo MaletUnited Kingdom2021-10-14Chapman, Ross E Esq NEGOTIATION66Elwin Sharvill
1037Ricardo GauchoIndia2021-10-18Commercial Press NEGOTIATION63Onyama Limba
1038Wickens NestleBrazil2021-10-07Commercial Press QUALIFIED80Ioni Bowcher
1039Wickens NestleFrance2021-10-11Dorl, James J Esq PROPOSAL37Xuxue Feng
1040Murillo MaletSpain2021-09-21Rangoni Of Florence PROPOSAL55Amy Elsner
1041Tony FollerAustralia2021-09-22Rousseaux, Michael Esq RENEWAL2Asiya Javayant
1042Isabel BowleyUnited Kingdom2021-10-05Chemel, James L Cpa NEGOTIATION51Amy Elsner
1043Mayumi KolmetzGermany2021-09-28Chanay, Jeffrey A Esq NEW93Stephen Shaw
1044Rodrigues CampainCanada2021-10-09Rousseaux, Michael Esq UNQUALIFIED60Bernardo Dominic
1045Faith GillianBrazil2021-09-22Truhlar And Truhlar Attys NEW69Elwin Sharvill
1046Adams MorascaIndia2021-10-20Feltz Printing Service PROPOSAL12Ivan Magalhaes
1047Jennifer AmigonFrance2021-10-04Chemel, James L Cpa NEW32Ioni Bowcher
1048Ashley DoeGermany2021-09-25Dorl, James J Esq QUALIFIED77Ioni Bowcher
1049Alejandro PerinGermany2021-10-17Morlong Associates PROPOSAL76Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jefferson SchemmerGermanyBernardo Dominic PROPOSAL
Stacey MacleadBrazilAnna Fali UNQUALIFIED
Salvatore StockhamArgentinaAsiya Javayant UNQUALIFIED
Antonio CaudyAustraliaStephen Shaw UNQUALIFIED
Tony FollerItalyAnna Fali UNQUALIFIED
James ButtJapanStephen Shaw QUALIFIED
Smith GlickGermanyIvan Magalhaes NEGOTIATION
Munro FerenczCanadaBernardo Dominic PROPOSAL
Francesco ShinkoGermanyOnyama Limba RENEWAL
Adams MorascaBrazilElwin Sharvill RENEWAL
Smith GlickFranceBernardo Dominic UNQUALIFIED
Adams MorascaJapanIoni Bowcher UNQUALIFIED
Julie StensethGermanyElwin Sharvill QUALIFIED
Morrow RutaIndiaElwin Sharvill RENEWAL
Johnson SergiUnited KingdomAnna Fali UNQUALIFIED
Leja CaldareraCanadaIvan Magalhaes QUALIFIED
Jennifer AmigonUnited KingdomAsiya Javayant RENEWAL
Stacey MacleadSpainAsiya Javayant QUALIFIED
Claire TollnerGermanyIvan Magalhaes RENEWAL
Aditya KuskoBrazilXuxue Feng UNQUALIFIED
Greenwood BologniaRussiaXuxue Feng NEGOTIATION
Aditya KuskoCanadaXuxue Feng UNQUALIFIED
Ashley DoeArgentinaIoni Bowcher NEGOTIATION
Leja CaldareraUnited KingdomStephen Shaw QUALIFIED
Kadeem FlosiJapanXuxue Feng QUALIFIED
Jefferson SchemmerItalyStephen Shaw PROPOSAL
Rodrigues CampainItalyAnna Fali RENEWAL
Alejandro PerinItalyAmy Elsner NEGOTIATION
Adams MorascaSpainIvan Magalhaes NEGOTIATION
Aditya KuskoArgentinaIvan Magalhaes NEGOTIATION
Silvio SlusarskiItalyXuxue Feng RENEWAL
Jeanfrancois VenereJapanStephen Shaw QUALIFIED
Costa DilliardGermanyIvan Magalhaes QUALIFIED
Julie StensethJapanAmy Elsner RENEWAL
Murillo MaletArgentinaAnna Fali QUALIFIED
Tony FollerGermanyOnyama Limba QUALIFIED
Clifford RimCanadaAnna Fali RENEWAL
Stacey MacleadBrazilElwin Sharvill UNQUALIFIED
Silvio SlusarskiAustraliaIvan Magalhaes QUALIFIED
Ivar PaprockiGermanyIvan Magalhaes NEGOTIATION
Mujtaba NickaGermanyBernardo Dominic NEGOTIATION
David DarakjyItalyAsiya Javayant NEW
Emily WhobreyGermanyElwin Sharvill PROPOSAL
Alejandro PerinUnited KingdomAmy Elsner PROPOSAL
Wickens NestleFranceIoni Bowcher NEGOTIATION
Wickens NestleItalyElwin Sharvill NEGOTIATION
Emily WhobreyIndiaIvan Magalhaes PROPOSAL
Wickens NestleArgentinaAmy Elsner NEW
Mujtaba NickaAustraliaXuxue Feng RENEWAL
Wickens NestleAustraliaXuxue Feng PROPOSAL
Frozen Columns
Name
Francesco Shinko
David Darakjy
Alejandro Perin
Ashley Doe
Faith Gillian
Emily Whobrey
Leja Caldarera
Aika Inouye
Murillo Malet
Ricardo Gaucho
Mujtaba Nicka
Jones Vocelka
Maisha Rulapaugh
Aruna Figeroa
Smith Glick
Costa Dilliard
Chavez Briddick
Jennifer Amigon
Julie Stenseth
Julie Stenseth
Mayumi Kolmetz
Misaki Royster
Aditya Kusko
Smith Glick
Stacey Maclead
Jefferson Schemmer
Smith Glick
Antonio Caudy
Misaki Royster
Misaki Royster
Leja Caldarera
Greenwood Bolognia
Kadeem Flosi
Ricardo Gaucho
Julie Stenseth
James Butt
Jones Vocelka
Cody Saylors
Clifford Rim
Adams Morasca
Rodrigues Campain
Octavia Malet
Kaitlin Ostrosky
Tony Foller
Ricardo Gaucho
Jones Vocelka
Isabel Bowley
Smith Glick
Alejandro Perin
James Butt
IdCountryDate
1000Italy2021-09-29
1001Brazil2021-10-09
1002Spain2021-10-10
1003Russia2021-10-15
1004Argentina2021-09-22
1005India2021-10-19
1006United Kingdom2021-10-17
1007Brazil2021-09-26
1008Brazil2021-09-28
1009Japan2021-09-23
1010France2021-10-17
1011Russia2021-10-04
1012Australia2021-10-12
1013Canada2021-10-14
1014Russia2021-10-12
1015Argentina2021-10-04
1016Italy2021-10-20
1017Italy2021-10-07
1018Russia2021-09-27
1019Italy2021-10-01
1020Japan2021-10-14
1021Canada2021-10-16
1022Argentina2021-10-18
1023Spain2021-10-02
1024India2021-09-22
1025Spain2021-09-25
1026Argentina2021-10-11
1027Argentina2021-10-01
1028India2021-09-26
1029Australia2021-10-10
1030Spain2021-10-02
1031Argentina2021-09-21
1032Italy2021-09-21
1033Germany2021-09-22
1034Germany2021-10-10
1035United Kingdom2021-10-12
1036India2021-10-14
1037Canada2021-10-08
1038Brazil2021-09-29
1039Brazil2021-09-23
1040Germany2021-10-04
1041Russia2021-10-12
1042Germany2021-10-15
1043India2021-10-09
1044Germany2021-09-26
1045Spain2021-10-07
1046Italy2021-09-23
1047Spain2021-10-20
1048Japan2021-10-15
1049Germany2021-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: