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
James ButtGermanyAmy Elsner UNQUALIFIED
Aruna FigeroaJapanOnyama Limba NEGOTIATION
Smith GlickUnited KingdomOnyama Limba RENEWAL
Stacey MacleadAustraliaAmy Elsner RENEWAL
Leon OldroydArgentinaXuxue Feng NEGOTIATION
Costa DilliardJapanBernardo Dominic NEW
Leja CaldareraFranceBernardo Dominic QUALIFIED
Wickens NestleIndiaStephen Shaw PROPOSAL
Costa DilliardUnited KingdomStephen Shaw NEGOTIATION
Alejandro PerinArgentinaAsiya Javayant QUALIFIED
Julie StensethGermanyIoni Bowcher RENEWAL
Sinclair WaycottBrazilOnyama Limba PROPOSAL
Francesco ShinkoUnited KingdomStephen Shaw UNQUALIFIED
Wickens NestleJapanOnyama Limba NEGOTIATION
Rodrigues CampainArgentinaStephen Shaw PROPOSAL
Aditya KuskoGermanyElwin Sharvill QUALIFIED
Darci PoquetteCanadaIvan Magalhaes QUALIFIED
Jones VocelkaFranceIvan Magalhaes RENEWAL
Costa DilliardRussiaElwin Sharvill NEW
Murillo MaletGermanyIvan Magalhaes RENEWAL
Jefferson SchemmerArgentinaAnna Fali NEW
Jeanfrancois VenereRussiaXuxue Feng UNQUALIFIED
Mujtaba NickaItalyBernardo Dominic PROPOSAL
Aruna FigeroaBrazilOnyama Limba NEW
Ashley DoeAustraliaAsiya Javayant RENEWAL
Nicolas IturbideGermanyAnna Fali RENEWAL
Wickens NestleUnited KingdomXuxue Feng RENEWAL
Aika InouyeUnited KingdomOnyama Limba NEW
Greenwood BologniaGermanyIoni Bowcher PROPOSAL
Maisha RulapaughJapanXuxue Feng NEW
Jefferson SchemmerArgentinaAnna Fali PROPOSAL
Ivar PaprockiSpainElwin Sharvill NEGOTIATION
Octavia MaletRussiaOnyama Limba NEW
Francesco ShinkoGermanyAmy Elsner UNQUALIFIED
Costa DilliardUnited KingdomIvan Magalhaes UNQUALIFIED
Sinclair WaycottFranceXuxue Feng PROPOSAL
Maisha RulapaughFranceAmy Elsner RENEWAL
Morrow RutaItalyOnyama Limba RENEWAL
Cody SaylorsJapanAsiya Javayant NEW
Aditya KuskoAustraliaOnyama Limba UNQUALIFIED
Smith GlickRussiaOnyama Limba QUALIFIED
Alejandro PerinSpainOnyama Limba PROPOSAL
Smith GlickCanadaOnyama Limba PROPOSAL
Cody SaylorsFranceBernardo Dominic QUALIFIED
Deepesh ChuiSpainAmy Elsner PROPOSAL
Mujtaba NickaAustraliaOnyama Limba PROPOSAL
Clifford RimUnited KingdomStephen Shaw RENEWAL
Ricardo GauchoUnited KingdomAnna Fali NEW
James ButtFranceAmy Elsner NEW
Octavia MaletAustraliaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
James ButtIndiaOnyama Limba QUALIFIED
Salvatore StockhamUnited KingdomOnyama Limba UNQUALIFIED
Deepesh ChuiAustraliaAsiya Javayant PROPOSAL
Nicolas IturbideRussiaXuxue Feng PROPOSAL
Costa DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Ashley DoeArgentinaIoni Bowcher NEW
Tony FollerCanadaBernardo Dominic RENEWAL
Nicolas IturbideFranceIoni Bowcher RENEWAL
Aditya KuskoSpainBernardo Dominic NEGOTIATION
Munro FerenczCanadaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony FollerCanada2021-06-07Truhlar And Truhlar Attys NEW98Asiya Javayant
1001Misaki RoysterAustralia2021-06-11Chapman, Ross E Esq PROPOSAL53Xuxue Feng
1002Aditya KuskoAustralia2021-05-22Morlong Associates RENEWAL45Asiya Javayant
1003Octavia MaletUnited Kingdom2021-05-24Chemel, James L Cpa PROPOSAL48Xuxue Feng
1004Smith GlickGermany2021-06-06Benton, John B Jr QUALIFIED71Xuxue Feng
1005Jeanfrancois VenereUnited Kingdom2021-05-24Chemel, James L Cpa PROPOSAL18Bernardo Dominic
1006Emily WhobreySpain2021-05-24Chanay, Jeffrey A Esq UNQUALIFIED96Ivan Magalhaes
1007Mujtaba NickaGermany2021-06-02Commercial Press QUALIFIED14Stephen Shaw
1008Stacey MacleadArgentina2021-06-03Chanay, Jeffrey A Esq QUALIFIED64Asiya Javayant
1009Adams MorascaItaly2021-06-10Commercial Press UNQUALIFIED94Asiya Javayant
1010Emily WhobreyBrazil2021-05-29Rousseaux, Michael Esq PROPOSAL83Amy Elsner
1011Chavez BriddickAustralia2021-05-28Rangoni Of Florence UNQUALIFIED69Onyama Limba
1012Murillo MaletUnited Kingdom2021-06-11Commercial Press UNQUALIFIED19Onyama Limba
1013Juan WieserUnited Kingdom2021-06-06Chemel, James L Cpa QUALIFIED17Elwin Sharvill
1014Ivar PaprockiAustralia2021-06-06Commercial Press QUALIFIED16Ivan Magalhaes
1015Maria MarrierSpain2021-05-25Chemel, James L Cpa RENEWAL95Anna Fali
1016Deepesh ChuiSpain2021-06-11Chanay, Jeffrey A Esq RENEWAL80Onyama Limba
1017Rodrigues CampainIndia2021-05-19Feiner Bros NEW34Anna Fali
1018Chavez BriddickAustralia2021-06-06Truhlar And Truhlar Attys QUALIFIED64Elwin Sharvill
1019Ivar PaprockiBrazil2021-05-30Dorl, James J Esq UNQUALIFIED84Stephen Shaw
1020Adams MorascaArgentina2021-06-12Commercial Press NEW45Ioni Bowcher
1021Clifford RimFrance2021-06-11Rangoni Of Florence QUALIFIED31Onyama Limba
1022Tony FollerAustralia2021-06-03Commercial Press UNQUALIFIED41Xuxue Feng
1023Kaitlin OstroskyIndia2021-05-26Rousseaux, Michael Esq NEGOTIATION59Anna Fali
1024Ashley DoeAustralia2021-05-31King, Christopher A Esq RENEWAL87Asiya Javayant
1025James ButtArgentina2021-05-28Chapman, Ross E Esq PROPOSAL44Asiya Javayant
1026Darci PoquetteArgentina2021-06-01Dorl, James J Esq QUALIFIED94Amy Elsner
1027Aditya KuskoGermany2021-05-22Benton, John B Jr RENEWAL35Anna Fali
1028Smith GlickFrance2021-05-16Rousseaux, Michael Esq NEW75Onyama Limba
1029Maisha RulapaughSpain2021-06-07King, Christopher A Esq PROPOSAL37Anna Fali
1030Jeanfrancois VenereArgentina2021-06-02Dorl, James J Esq RENEWAL94Ivan Magalhaes
1031Claire TollnerAustralia2021-05-27Dorl, James J Esq NEGOTIATION25Stephen Shaw
1032Ivar PaprockiBrazil2021-06-07Chanay, Jeffrey A Esq NEGOTIATION45Ioni Bowcher
1033David DarakjyRussia2021-05-28Chanay, Jeffrey A Esq UNQUALIFIED2Bernardo Dominic
1034Arvin AlbaresGermany2021-05-18Chapman, Ross E Esq RENEWAL64Ioni Bowcher
1035Morrow RutaRussia2021-05-30King, Christopher A Esq RENEWAL95Asiya Javayant
1036Jennifer AmigonRussia2021-05-25Feltz Printing Service NEW23Xuxue Feng
1037Claire TollnerUnited Kingdom2021-05-15Truhlar And Truhlar Attys UNQUALIFIED68Anna Fali
1038Deepesh ChuiArgentina2021-05-28Rangoni Of Florence QUALIFIED84Ivan Magalhaes
1039Rodrigues CampainFrance2021-05-18Rousseaux, Michael Esq NEW4Ioni Bowcher
1040Juan WieserJapan2021-05-28Chemel, James L Cpa QUALIFIED64Bernardo Dominic
1041Ashley DoeItaly2021-06-07King, Christopher A Esq UNQUALIFIED74Asiya Javayant
1042Francesco ShinkoItaly2021-05-15Chemel, James L Cpa RENEWAL44Ioni Bowcher
1043Emily WhobreyFrance2021-05-27Chapman, Ross E Esq NEW64Onyama Limba
1044Jones VocelkaIndia2021-05-29Feiner Bros QUALIFIED51Onyama Limba
1045Chavez BriddickAustralia2021-06-05Buckley Miller Wright PROPOSAL69Stephen Shaw
1046Faith GillianFrance2021-05-30King, Christopher A Esq UNQUALIFIED96Onyama Limba
1047Munro FerenczJapan2021-05-23Feltz Printing Service RENEWAL23Xuxue Feng
1048Francesco ShinkoAustralia2021-06-03Buckley Miller Wright NEGOTIATION82Bernardo Dominic
1049Aditya KuskoAustralia2021-05-27Buckley Miller Wright UNQUALIFIED61Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Darci PoquetteFranceAnna Fali NEW
Wickens NestleUnited KingdomAmy Elsner PROPOSAL
Chavez BriddickIndiaAnna Fali RENEWAL
Jefferson SchemmerIndiaAsiya Javayant UNQUALIFIED
Johnson SergiArgentinaAsiya Javayant RENEWAL
Juan WieserIndiaAsiya Javayant RENEWAL
Johnson SergiFranceStephen Shaw RENEWAL
Sinclair WaycottJapanXuxue Feng PROPOSAL
Alejandro PerinAustraliaBernardo Dominic PROPOSAL
Ashley DoeItalyElwin Sharvill NEW
Smith GlickFranceOnyama Limba NEW
Chavez BriddickJapanOnyama Limba QUALIFIED
Aditya KuskoJapanAsiya Javayant UNQUALIFIED
Rodrigues CampainCanadaXuxue Feng RENEWAL
Ricardo GauchoArgentinaStephen Shaw UNQUALIFIED
Mayumi KolmetzCanadaAmy Elsner RENEWAL
Leon OldroydRussiaXuxue Feng UNQUALIFIED
Jefferson SchemmerGermanyIoni Bowcher RENEWAL
Faith GillianGermanyStephen Shaw QUALIFIED
Claire TollnerCanadaIoni Bowcher RENEWAL
Costa DilliardUnited KingdomBernardo Dominic NEGOTIATION
Morrow RutaSpainXuxue Feng RENEWAL
Francesco ShinkoUnited KingdomIoni Bowcher NEW
Tony FollerAustraliaElwin Sharvill PROPOSAL
Jennifer AmigonFranceIvan Magalhaes PROPOSAL
Chavez BriddickJapanElwin Sharvill UNQUALIFIED
Murillo MaletItalyAsiya Javayant QUALIFIED
Smith GlickRussiaAmy Elsner NEGOTIATION
Faith GillianRussiaBernardo Dominic QUALIFIED
Aditya KuskoCanadaIvan Magalhaes PROPOSAL
Leon OldroydBrazilAsiya Javayant UNQUALIFIED
Stacey MacleadFranceElwin Sharvill PROPOSAL
Munro FerenczUnited KingdomAnna Fali PROPOSAL
Arvin AlbaresJapanIoni Bowcher PROPOSAL
Emily WhobreyArgentinaIvan Magalhaes NEW
Jones VocelkaIndiaAsiya Javayant QUALIFIED
Jefferson SchemmerUnited KingdomStephen Shaw NEW
Chavez BriddickCanadaIvan Magalhaes QUALIFIED
Ashley DoeUnited KingdomAsiya Javayant RENEWAL
Costa DilliardFranceIvan Magalhaes PROPOSAL
Izzy GarufiItalyXuxue Feng UNQUALIFIED
Antonio CaudyIndiaOnyama Limba RENEWAL
Nicolas IturbideBrazilElwin Sharvill QUALIFIED
Jeanfrancois VenereSpainElwin Sharvill NEGOTIATION
Mujtaba NickaFranceBernardo Dominic UNQUALIFIED
Maria MarrierArgentinaStephen Shaw NEGOTIATION
Isabel BowleyArgentinaIoni Bowcher UNQUALIFIED
Maisha RulapaughUnited KingdomStephen Shaw QUALIFIED
Emily WhobreyGermanyAmy Elsner NEW
Jefferson SchemmerJapanAnna Fali NEW
Frozen Columns
Name
Izzy Garufi
Julie Stenseth
Deepesh Chui
Clifford Rim
Clifford Rim
Mujtaba Nicka
Deepesh Chui
Leon Oldroyd
Greenwood Bolognia
Mayumi Kolmetz
Sinclair Waycott
Claire Tollner
Smith Glick
Nicolas Iturbide
Murillo Malet
Misaki Royster
Salvatore Stockham
Deepesh Chui
Ivar Paprocki
Johnson Sergi
Stacey Maclead
Chavez Briddick
Misaki Royster
Tony Foller
James Butt
Antonio Caudy
Antonio Caudy
Sinclair Waycott
Aruna Figeroa
Ricardo Gaucho
David Darakjy
Aditya Kusko
Smith Glick
Izzy Garufi
Sinclair Waycott
Darci Poquette
Tony Foller
Costa Dilliard
Wickens Nestle
Antonio Caudy
Leja Caldarera
Izzy Garufi
Jennifer Amigon
Chavez Briddick
Claire Tollner
Jones Vocelka
Salvatore Stockham
Munro Ferencz
Mayumi Kolmetz
Izzy Garufi
IdCountryDate
1000Argentina2021-06-13
1001France2021-05-29
1002Brazil2021-06-10
1003Russia2021-06-01
1004Spain2021-05-28
1005Canada2021-05-23
1006Germany2021-05-20
1007Canada2021-05-28
1008United Kingdom2021-06-11
1009Australia2021-05-23
1010Russia2021-06-11
1011Japan2021-06-07
1012Russia2021-05-30
1013France2021-06-04
1014Japan2021-06-02
1015Canada2021-06-04
1016Australia2021-06-13
1017Argentina2021-06-05
1018Germany2021-06-13
1019Brazil2021-05-22
1020Australia2021-05-31
1021Argentina2021-06-11
1022Russia2021-06-12
1023Russia2021-05-19
1024Italy2021-06-01
1025France2021-06-06
1026Spain2021-06-05
1027France2021-05-23
1028Russia2021-05-29
1029Russia2021-06-02
1030Spain2021-05-22
1031Japan2021-05-30
1032Canada2021-05-21
1033Australia2021-06-11
1034Russia2021-05-19
1035Russia2021-06-07
1036Argentina2021-06-06
1037United Kingdom2021-05-16
1038Brazil2021-05-21
1039Argentina2021-05-26
1040Brazil2021-05-26
1041Spain2021-05-23
1042France2021-06-02
1043Russia2021-06-09
1044Japan2021-05-27
1045Germany2021-06-08
1046Argentina2021-06-02
1047Japan2021-06-04
1048Brazil2021-05-16
1049India2021-05-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerBrazilIvan Magalhaes NEW
Leja CaldareraGermanyBernardo Dominic NEW
Jeanfrancois VenereJapanOnyama Limba RENEWAL
Smith GlickCanadaStephen Shaw RENEWAL
Octavia MaletFranceOnyama Limba NEW
Leja CaldareraAustraliaAnna Fali NEGOTIATION
Kadeem FlosiGermanyIoni Bowcher RENEWAL
Wickens NestleCanadaIoni Bowcher QUALIFIED
Sinclair WaycottCanadaAmy Elsner QUALIFIED
Clifford RimAustraliaAmy Elsner RENEWAL
Francesco ShinkoFranceAmy Elsner NEW
Stacey MacleadGermanyAnna Fali NEW
Arvin AlbaresRussiaAnna Fali UNQUALIFIED
Maria MarrierJapanOnyama Limba RENEWAL
Ashley DoeUnited KingdomOnyama Limba PROPOSAL
Sinclair WaycottAustraliaAnna Fali NEW
Mayumi KolmetzArgentinaXuxue Feng NEW
Murillo MaletAustraliaIvan Magalhaes NEGOTIATION
James ButtIndiaIvan Magalhaes NEW
Izzy GarufiBrazilOnyama Limba QUALIFIED
Maria MarrierGermanyStephen Shaw UNQUALIFIED
Alejandro PerinJapanAnna Fali NEGOTIATION
Leja CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Ricardo GauchoUnited KingdomStephen Shaw RENEWAL
Jones VocelkaAustraliaBernardo Dominic UNQUALIFIED
Jones VocelkaArgentinaStephen Shaw PROPOSAL
David DarakjyCanadaBernardo Dominic NEGOTIATION
Julie StensethUnited KingdomBernardo Dominic QUALIFIED
Costa DilliardItalyBernardo Dominic NEW
Leon OldroydAustraliaStephen Shaw QUALIFIED
Octavia MaletSpainIoni Bowcher PROPOSAL
Faith GillianIndiaAsiya Javayant RENEWAL
Rodrigues CampainSpainStephen Shaw UNQUALIFIED
Ivar PaprockiIndiaAnna Fali QUALIFIED
Clifford RimCanadaAsiya Javayant NEW
David DarakjyArgentinaIvan Magalhaes RENEWAL
Faith GillianGermanyAmy Elsner QUALIFIED
Emily WhobreyGermanyAnna Fali RENEWAL
Stacey MacleadBrazilIoni Bowcher UNQUALIFIED
Jones VocelkaUnited KingdomAnna Fali PROPOSAL

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