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
Julie StensethCanadaBernardo Dominic PROPOSAL
Aika InouyeUnited KingdomElwin Sharvill QUALIFIED
Ivar PaprockiAustraliaBernardo Dominic RENEWAL
James ButtIndiaAnna Fali QUALIFIED
Rodrigues CampainIndiaAmy Elsner RENEWAL
Silvio SlusarskiGermanyIoni Bowcher RENEWAL
Greenwood BologniaFranceXuxue Feng PROPOSAL
Misaki RoysterJapanElwin Sharvill NEW
Leon OldroydArgentinaAnna Fali NEGOTIATION
Octavia MaletBrazilBernardo Dominic QUALIFIED
Aika InouyeFranceIoni Bowcher RENEWAL
Leja CaldareraIndiaOnyama Limba QUALIFIED
Juan WieserCanadaStephen Shaw UNQUALIFIED
Jones VocelkaSpainAnna Fali NEW
Adams MorascaUnited KingdomBernardo Dominic NEGOTIATION
Mujtaba NickaArgentinaStephen Shaw UNQUALIFIED
Greenwood BologniaJapanElwin Sharvill UNQUALIFIED
Ricardo GauchoFranceIoni Bowcher RENEWAL
Deepesh ChuiAustraliaXuxue Feng RENEWAL
Jefferson SchemmerSpainIoni Bowcher NEW
Clifford RimFranceIoni Bowcher QUALIFIED
James ButtGermanyAnna Fali UNQUALIFIED
Stacey MacleadIndiaElwin Sharvill UNQUALIFIED
Mujtaba NickaUnited KingdomBernardo Dominic RENEWAL
Salvatore StockhamAustraliaIoni Bowcher PROPOSAL
Juan WieserItalyAmy Elsner PROPOSAL
Adams MorascaItalyXuxue Feng NEW
Ivar PaprockiBrazilXuxue Feng NEW
Costa DilliardRussiaIoni Bowcher UNQUALIFIED
Adams MorascaUnited KingdomOnyama Limba QUALIFIED
Misaki RoysterJapanXuxue Feng PROPOSAL
Sinclair WaycottUnited KingdomOnyama Limba QUALIFIED
Leja CaldareraUnited KingdomAsiya Javayant NEW
Ashley DoeAustraliaOnyama Limba NEW
Maisha RulapaughRussiaXuxue Feng RENEWAL
Munro FerenczItalyIvan Magalhaes PROPOSAL
Isabel BowleyGermanyElwin Sharvill UNQUALIFIED
Wickens NestleUnited KingdomIoni Bowcher NEW
James ButtRussiaAmy Elsner RENEWAL
Ricardo GauchoBrazilAmy Elsner UNQUALIFIED
Chavez BriddickItalyStephen Shaw UNQUALIFIED
Greenwood BologniaItalyAmy Elsner NEW
Octavia MaletGermanyIvan Magalhaes UNQUALIFIED
Cody SaylorsArgentinaAmy Elsner NEGOTIATION
Johnson SergiIndiaAnna Fali QUALIFIED
Johnson SergiCanadaStephen Shaw RENEWAL
Aika InouyeUnited KingdomStephen Shaw NEW
Maisha RulapaughAustraliaOnyama Limba QUALIFIED
David DarakjyCanadaIvan Magalhaes PROPOSAL
Kaitlin OstroskyIndiaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Isabel BowleyFranceIoni Bowcher PROPOSAL
Silvio SlusarskiRussiaAnna Fali NEGOTIATION
Emily WhobreyArgentinaBernardo Dominic NEGOTIATION
David DarakjySpainAmy Elsner NEGOTIATION
Kaitlin OstroskyGermanyBernardo Dominic QUALIFIED
Greenwood BologniaFranceIvan Magalhaes NEW
Ivar PaprockiRussiaAsiya Javayant RENEWAL
Aditya KuskoFranceBernardo Dominic RENEWAL
Morrow RutaAustraliaIoni Bowcher RENEWAL
Silvio SlusarskiAustraliaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy GarufiJapan2021-04-21Benton, John B Jr NEGOTIATION41Amy Elsner
1001Tony FollerItaly2021-04-01Rousseaux, Michael Esq QUALIFIED61Stephen Shaw
1002Ashley DoeUnited Kingdom2021-04-19Feltz Printing Service NEW27Ivan Magalhaes
1003Alejandro PerinFrance2021-04-13Rangoni Of Florence NEGOTIATION16Asiya Javayant
1004Juan WieserJapan2021-04-19Rousseaux, Michael Esq QUALIFIED97Onyama Limba
1005Kadeem FlosiItaly2021-04-11Morlong Associates RENEWAL57Asiya Javayant
1006Cody SaylorsGermany2021-04-10Buckley Miller Wright NEGOTIATION98Elwin Sharvill
1007Mujtaba NickaGermany2021-04-05Dorl, James J Esq NEW7Onyama Limba
1008Murillo MaletIndia2021-04-06Dorl, James J Esq QUALIFIED52Bernardo Dominic
1009Misaki RoysterArgentina2021-03-25Printing Dimensions NEGOTIATION23Asiya Javayant
1010Aruna FigeroaCanada2021-04-20Buckley Miller Wright QUALIFIED28Amy Elsner
1011Izzy GarufiBrazil2021-04-22Feiner Bros UNQUALIFIED20Amy Elsner
1012Adams MorascaFrance2021-04-17King, Christopher A Esq NEGOTIATION6Anna Fali
1013Octavia MaletGermany2021-03-26Dorl, James J Esq NEGOTIATION64Asiya Javayant
1014Murillo MaletBrazil2021-04-21Chapman, Ross E Esq NEW41Xuxue Feng
1015Octavia MaletGermany2021-04-08Rousseaux, Michael Esq NEW1Stephen Shaw
1016Ricardo GauchoJapan2021-04-07Rangoni Of Florence RENEWAL73Ioni Bowcher
1017Kaitlin OstroskyCanada2021-04-18Chapman, Ross E Esq NEW47Ioni Bowcher
1018Kaitlin OstroskySpain2021-04-19Rangoni Of Florence RENEWAL19Ivan Magalhaes
1019Julie StensethArgentina2021-04-03Dorl, James J Esq NEGOTIATION13Ioni Bowcher
1020Adams MorascaIndia2021-03-26King, Christopher A Esq RENEWAL23Amy Elsner
1021Jennifer AmigonUnited Kingdom2021-03-28Truhlar And Truhlar Attys NEGOTIATION34Xuxue Feng
1022Murillo MaletAustralia2021-04-20Feltz Printing Service UNQUALIFIED63Ivan Magalhaes
1023Octavia MaletCanada2021-04-18King, Christopher A Esq UNQUALIFIED98Ivan Magalhaes
1024Deepesh ChuiFrance2021-03-31Chanay, Jeffrey A Esq UNQUALIFIED40Anna Fali
1025Francesco ShinkoJapan2021-03-24Chapman, Ross E Esq NEGOTIATION93Asiya Javayant
1026Munro FerenczJapan2021-03-28Truhlar And Truhlar Attys NEGOTIATION22Xuxue Feng
1027Nicolas IturbideCanada2021-04-13Feltz Printing Service PROPOSAL65Anna Fali
1028Adams MorascaSpain2021-04-21Morlong Associates QUALIFIED87Ioni Bowcher
1029Ricardo GauchoGermany2021-04-02Feltz Printing Service UNQUALIFIED88Ivan Magalhaes
1030Ricardo GauchoFrance2021-04-15Buckley Miller Wright QUALIFIED61Elwin Sharvill
1031Arvin AlbaresUnited Kingdom2021-03-30Chemel, James L Cpa QUALIFIED38Elwin Sharvill
1032Juan WieserGermany2021-04-18Morlong Associates QUALIFIED5Xuxue Feng
1033Kaitlin OstroskyIndia2021-04-11Buckley Miller Wright QUALIFIED73Onyama Limba
1034Jefferson SchemmerFrance2021-04-19Chapman, Ross E Esq NEGOTIATION8Amy Elsner
1035Mujtaba NickaIndia2021-03-27Feltz Printing Service RENEWAL92Ivan Magalhaes
1036Greenwood BologniaCanada2021-04-18Truhlar And Truhlar Attys NEW14Anna Fali
1037Juan WieserSpain2021-04-12Dorl, James J Esq RENEWAL58Stephen Shaw
1038James ButtFrance2021-03-24Chapman, Ross E Esq RENEWAL82Xuxue Feng
1039Kadeem FlosiAustralia2021-04-11Printing Dimensions QUALIFIED53Anna Fali
1040Chavez BriddickUnited Kingdom2021-04-03Feltz Printing Service QUALIFIED95Amy Elsner
1041Chavez BriddickSpain2021-04-07Chapman, Ross E Esq UNQUALIFIED90Xuxue Feng
1042Juan WieserRussia2021-04-05Printing Dimensions UNQUALIFIED38Onyama Limba
1043Emily WhobreyIndia2021-04-07Printing Dimensions UNQUALIFIED85Asiya Javayant
1044Antonio CaudyRussia2021-04-11Benton, John B Jr UNQUALIFIED44Elwin Sharvill
1045Ivar PaprockiItaly2021-04-20Chemel, James L Cpa NEGOTIATION15Stephen Shaw
1046Chavez BriddickBrazil2021-04-08King, Christopher A Esq NEW14Xuxue Feng
1047Wickens NestleGermany2021-04-18King, Christopher A Esq UNQUALIFIED15Anna Fali
1048Costa DilliardSpain2021-03-24Chapman, Ross E Esq RENEWAL25Stephen Shaw
1049Juan WieserIndia2021-03-30Printing Dimensions UNQUALIFIED62Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Darci PoquetteJapanIoni Bowcher UNQUALIFIED
Kadeem FlosiCanadaAsiya Javayant QUALIFIED
Smith GlickRussiaIvan Magalhaes NEW
Leja CaldareraJapanElwin Sharvill NEW
Leja CaldareraCanadaOnyama Limba NEW
Wickens NestleGermanyXuxue Feng UNQUALIFIED
Munro FerenczSpainIoni Bowcher QUALIFIED
Nicolas IturbideBrazilAnna Fali PROPOSAL
Rodrigues CampainJapanXuxue Feng UNQUALIFIED
Maria MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Mayumi KolmetzCanadaAsiya Javayant NEGOTIATION
Jeanfrancois VenereUnited KingdomIvan Magalhaes NEGOTIATION
Aditya KuskoCanadaOnyama Limba NEGOTIATION
Claire TollnerArgentinaStephen Shaw UNQUALIFIED
Rodrigues CampainIndiaOnyama Limba UNQUALIFIED
Greenwood BologniaCanadaIoni Bowcher NEW
Maria MarrierBrazilAmy Elsner PROPOSAL
Juan WieserJapanIvan Magalhaes UNQUALIFIED
Aditya KuskoArgentinaElwin Sharvill RENEWAL
Nicolas IturbideGermanyAmy Elsner NEGOTIATION
Alejandro PerinUnited KingdomStephen Shaw NEW
Chavez BriddickFranceStephen Shaw UNQUALIFIED
Aruna FigeroaBrazilXuxue Feng UNQUALIFIED
Julie StensethCanadaIvan Magalhaes UNQUALIFIED
Costa DilliardRussiaElwin Sharvill PROPOSAL
Costa DilliardFranceIvan Magalhaes NEGOTIATION
Isabel BowleyUnited KingdomAnna Fali NEGOTIATION
Francesco ShinkoArgentinaAmy Elsner RENEWAL
Wickens NestleAustraliaIoni Bowcher RENEWAL
Francesco ShinkoBrazilXuxue Feng RENEWAL
Munro FerenczUnited KingdomAmy Elsner RENEWAL
Cody SaylorsRussiaAsiya Javayant QUALIFIED
Chavez BriddickFranceXuxue Feng PROPOSAL
Arvin AlbaresAustraliaIoni Bowcher PROPOSAL
Deepesh ChuiAustraliaOnyama Limba QUALIFIED
Rodrigues CampainUnited KingdomAmy Elsner QUALIFIED
Rodrigues CampainFranceElwin Sharvill QUALIFIED
Aruna FigeroaFranceIoni Bowcher QUALIFIED
Isabel BowleyAustraliaBernardo Dominic PROPOSAL
James ButtBrazilOnyama Limba UNQUALIFIED
Wickens NestleRussiaIvan Magalhaes NEW
Jeanfrancois VenereCanadaXuxue Feng RENEWAL
Mayumi KolmetzArgentinaAnna Fali NEW
Kadeem FlosiUnited KingdomIoni Bowcher RENEWAL
Isabel BowleyCanadaElwin Sharvill UNQUALIFIED
James ButtSpainOnyama Limba PROPOSAL
Murillo MaletGermanyIoni Bowcher PROPOSAL
Jefferson SchemmerItalyIvan Magalhaes UNQUALIFIED
Alejandro PerinCanadaAsiya Javayant NEW
Leja CaldareraFranceAnna Fali RENEWAL
Frozen Columns
Name
Arvin Albares
Mayumi Kolmetz
Aditya Kusko
Sinclair Waycott
Ricardo Gaucho
Aditya Kusko
Jennifer Amigon
Johnson Sergi
Jones Vocelka
Salvatore Stockham
Chavez Briddick
Misaki Royster
Ricardo Gaucho
Jennifer Amigon
Sinclair Waycott
Clifford Rim
Octavia Malet
Aika Inouye
Mujtaba Nicka
Cody Saylors
Ricardo Gaucho
Ivar Paprocki
Adams Morasca
Arvin Albares
Maisha Rulapaugh
Aruna Figeroa
Ivar Paprocki
Alejandro Perin
Chavez Briddick
Leon Oldroyd
Mujtaba Nicka
Juan Wieser
Arvin Albares
Julie Stenseth
Ivar Paprocki
Darci Poquette
Antonio Caudy
Clifford Rim
Morrow Ruta
Costa Dilliard
Faith Gillian
Kaitlin Ostrosky
Morrow Ruta
Wickens Nestle
Leja Caldarera
Murillo Malet
Maria Marrier
Jefferson Schemmer
Ivar Paprocki
Silvio Slusarski
IdCountryDate
1000Spain2021-04-05
1001Japan2021-03-27
1002Spain2021-03-27
1003Brazil2021-03-26
1004Spain2021-04-09
1005Brazil2021-04-18
1006India2021-04-03
1007Russia2021-04-22
1008Italy2021-04-20
1009United Kingdom2021-04-22
1010Japan2021-03-31
1011United Kingdom2021-04-22
1012Brazil2021-04-11
1013Canada2021-04-21
1014Brazil2021-04-12
1015Brazil2021-03-30
1016Spain2021-03-31
1017India2021-03-27
1018Canada2021-04-10
1019Australia2021-03-29
1020United Kingdom2021-04-12
1021Japan2021-04-04
1022India2021-03-28
1023India2021-04-20
1024Australia2021-03-25
1025Argentina2021-03-31
1026Canada2021-04-01
1027Russia2021-03-31
1028Spain2021-04-13
1029Spain2021-04-14
1030India2021-04-14
1031Spain2021-04-03
1032Russia2021-04-19
1033Russia2021-04-05
1034United Kingdom2021-04-16
1035Canada2021-04-14
1036India2021-04-03
1037Germany2021-04-18
1038Australia2021-04-12
1039Spain2021-04-14
1040Russia2021-03-29
1041Argentina2021-04-04
1042Australia2021-04-17
1043Australia2021-04-13
1044Spain2021-04-14
1045Japan2021-04-22
1046Italy2021-04-08
1047Argentina2021-03-26
1048Spain2021-03-28
1049Spain2021-03-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore StockhamAustraliaAmy Elsner NEW
Kaitlin OstroskyBrazilAmy Elsner UNQUALIFIED
Aditya KuskoFranceAsiya Javayant PROPOSAL
Salvatore StockhamBrazilAmy Elsner UNQUALIFIED
Rodrigues CampainFranceXuxue Feng RENEWAL
Izzy GarufiArgentinaAmy Elsner NEGOTIATION
Silvio SlusarskiRussiaIvan Magalhaes UNQUALIFIED
Francesco ShinkoIndiaIoni Bowcher NEGOTIATION
Adams MorascaSpainAsiya Javayant NEGOTIATION
David DarakjyArgentinaIvan Magalhaes NEW
Claire TollnerRussiaAnna Fali NEW
Ivar PaprockiUnited KingdomXuxue Feng NEW
Costa DilliardItalyBernardo Dominic PROPOSAL
Jefferson SchemmerItalyIvan Magalhaes QUALIFIED
Darci PoquetteJapanOnyama Limba QUALIFIED
Salvatore StockhamSpainAmy Elsner QUALIFIED
Ricardo GauchoArgentinaStephen Shaw UNQUALIFIED
Aditya KuskoItalyOnyama Limba NEW
Greenwood BologniaGermanyAnna Fali PROPOSAL
Nicolas IturbideAustraliaStephen Shaw UNQUALIFIED
Alejandro PerinRussiaAmy Elsner NEW
Aditya KuskoCanadaAnna Fali NEW
Leja CaldareraRussiaElwin Sharvill UNQUALIFIED
Claire TollnerSpainIvan Magalhaes NEGOTIATION
Octavia MaletSpainOnyama Limba RENEWAL
Ashley DoeFranceAnna Fali RENEWAL
Murillo MaletUnited KingdomElwin Sharvill NEW
Izzy GarufiUnited KingdomXuxue Feng NEGOTIATION
Tony FollerItalyAnna Fali RENEWAL
Deepesh ChuiAustraliaAsiya Javayant PROPOSAL
Darci PoquetteIndiaAmy Elsner UNQUALIFIED
Jeanfrancois VenereItalyXuxue Feng QUALIFIED
James ButtSpainBernardo Dominic NEGOTIATION
Mayumi KolmetzGermanyStephen Shaw NEW
Aruna FigeroaGermanyStephen Shaw RENEWAL
Costa DilliardFranceAnna Fali PROPOSAL
Mayumi KolmetzCanadaIvan Magalhaes NEGOTIATION
Kaitlin OstroskyItalyXuxue Feng PROPOSAL
Darci PoquetteItalyElwin Sharvill PROPOSAL
Jennifer AmigonItalyXuxue Feng RENEWAL

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