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
Faith GillianSpainIoni Bowcher RENEWAL
Darci PoquetteAustraliaIvan Magalhaes NEW
Leja CaldareraIndiaAnna Fali UNQUALIFIED
Emily WhobreyAustraliaIvan Magalhaes PROPOSAL
Salvatore StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Maria MarrierRussiaIvan Magalhaes RENEWAL
Salvatore StockhamItalyIoni Bowcher NEGOTIATION
Julie StensethGermanyElwin Sharvill NEW
Aditya KuskoItalyBernardo Dominic QUALIFIED
Chavez BriddickBrazilStephen Shaw NEGOTIATION
Tony FollerBrazilAsiya Javayant QUALIFIED
Izzy GarufiItalyOnyama Limba UNQUALIFIED
Alejandro PerinBrazilOnyama Limba UNQUALIFIED
Munro FerenczUnited KingdomAnna Fali PROPOSAL
Costa DilliardGermanyAnna Fali QUALIFIED
Isabel BowleyJapanIoni Bowcher NEW
Julie StensethAustraliaAmy Elsner NEGOTIATION
Jones VocelkaUnited KingdomStephen Shaw PROPOSAL
Smith GlickAustraliaIvan Magalhaes NEGOTIATION
Misaki RoysterCanadaAsiya Javayant QUALIFIED
Johnson SergiGermanyAsiya Javayant UNQUALIFIED
Aditya KuskoBrazilAsiya Javayant QUALIFIED
Maisha RulapaughIndiaElwin Sharvill RENEWAL
Kaitlin OstroskySpainIoni Bowcher RENEWAL
Jones VocelkaItalyAnna Fali RENEWAL
Costa DilliardFranceElwin Sharvill UNQUALIFIED
Smith GlickFranceStephen Shaw NEGOTIATION
Johnson SergiFranceOnyama Limba QUALIFIED
Chavez BriddickSpainStephen Shaw UNQUALIFIED
Leon OldroydJapanStephen Shaw RENEWAL
Octavia MaletSpainIvan Magalhaes NEW
Aruna FigeroaSpainStephen Shaw NEGOTIATION
Sinclair WaycottArgentinaStephen Shaw PROPOSAL
Tony FollerArgentinaXuxue Feng NEW
Greenwood BologniaRussiaAmy Elsner UNQUALIFIED
Aditya KuskoIndiaIvan Magalhaes UNQUALIFIED
Cody SaylorsJapanAmy Elsner NEW
Leon OldroydFranceElwin Sharvill RENEWAL
Greenwood BologniaArgentinaAmy Elsner UNQUALIFIED
Izzy GarufiCanadaBernardo Dominic NEGOTIATION
Murillo MaletIndiaBernardo Dominic NEW
Ricardo GauchoFranceAmy Elsner NEGOTIATION
Smith GlickIndiaAsiya Javayant RENEWAL
Isabel BowleyIndiaIoni Bowcher NEW
Aditya KuskoArgentinaAsiya Javayant NEGOTIATION
Arvin AlbaresGermanyBernardo Dominic NEGOTIATION
Mayumi KolmetzCanadaBernardo Dominic UNQUALIFIED
Jennifer AmigonJapanBernardo Dominic RENEWAL
Faith GillianItalyBernardo Dominic QUALIFIED
Ivar PaprockiUnited KingdomAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aditya KuskoIndiaAnna Fali PROPOSAL
Jeanfrancois VenereJapanBernardo Dominic RENEWAL
Morrow RutaJapanAnna Fali NEGOTIATION
Emily WhobreyJapanElwin Sharvill NEW
Aruna FigeroaFranceOnyama Limba QUALIFIED
Kaitlin OstroskyItalyBernardo Dominic RENEWAL
Jefferson SchemmerSpainIvan Magalhaes UNQUALIFIED
Juan WieserItalyAnna Fali NEGOTIATION
Clifford RimGermanyOnyama Limba PROPOSAL
Aika InouyeCanadaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow RutaGermany2021-08-29Commercial Press RENEWAL4Ivan Magalhaes
1001Leon OldroydFrance2021-09-17Rousseaux, Michael Esq PROPOSAL54Xuxue Feng
1002Kaitlin OstroskyJapan2021-09-22Dorl, James J Esq NEW51Onyama Limba
1003Munro FerenczBrazil2021-08-30Commercial Press QUALIFIED52Asiya Javayant
1004Jeanfrancois VenereGermany2021-09-20Feltz Printing Service NEW87Elwin Sharvill
1005Kadeem FlosiItaly2021-09-08Buckley Miller Wright NEW70Elwin Sharvill
1006David DarakjySpain2021-09-18King, Christopher A Esq QUALIFIED71Elwin Sharvill
1007Mujtaba NickaJapan2021-09-04Feltz Printing Service NEGOTIATION96Amy Elsner
1008Ashley DoeRussia2021-09-18Feiner Bros NEW17Bernardo Dominic
1009Mujtaba NickaItaly2021-08-30King, Christopher A Esq PROPOSAL79Amy Elsner
1010Ivar PaprockiFrance2021-09-22Rangoni Of Florence NEW63Xuxue Feng
1011Maria MarrierFrance2021-09-23Buckley Miller Wright QUALIFIED37Stephen Shaw
1012Darci PoquetteIndia2021-09-21Truhlar And Truhlar Attys NEGOTIATION99Asiya Javayant
1013Juan WieserFrance2021-09-22Chapman, Ross E Esq PROPOSAL28Stephen Shaw
1014Clifford RimItaly2021-09-01Truhlar And Truhlar Attys NEGOTIATION37Bernardo Dominic
1015Murillo MaletGermany2021-09-08Rousseaux, Michael Esq NEW16Asiya Javayant
1016Aditya KuskoCanada2021-09-04Rangoni Of Florence NEGOTIATION86Amy Elsner
1017Aika InouyeGermany2021-09-20Feltz Printing Service PROPOSAL53Asiya Javayant
1018Faith GillianGermany2021-09-07Buckley Miller Wright PROPOSAL9Asiya Javayant
1019Salvatore StockhamRussia2021-09-23Feltz Printing Service RENEWAL62Elwin Sharvill
1020Johnson SergiAustralia2021-09-17Printing Dimensions NEW19Onyama Limba
1021Cody SaylorsGermany2021-09-07King, Christopher A Esq UNQUALIFIED30Asiya Javayant
1022Juan WieserJapan2021-09-17Rousseaux, Michael Esq PROPOSAL30Bernardo Dominic
1023Francesco ShinkoBrazil2021-09-02Truhlar And Truhlar Attys RENEWAL87Ioni Bowcher
1024Stacey MacleadBrazil2021-09-24Printing Dimensions QUALIFIED82Elwin Sharvill
1025Deepesh ChuiUnited Kingdom2021-09-16Rangoni Of Florence NEGOTIATION33Stephen Shaw
1026Munro FerenczSpain2021-09-09Morlong Associates QUALIFIED49Amy Elsner
1027Aika InouyeUnited Kingdom2021-09-13Morlong Associates NEGOTIATION69Asiya Javayant
1028Kaitlin OstroskyIndia2021-09-24Commercial Press RENEWAL99Ioni Bowcher
1029Antonio CaudyJapan2021-09-09Commercial Press NEW39Ivan Magalhaes
1030Maria MarrierRussia2021-09-17Buckley Miller Wright QUALIFIED31Amy Elsner
1031Emily WhobreyBrazil2021-09-25Morlong Associates UNQUALIFIED35Onyama Limba
1032Leon OldroydUnited Kingdom2021-09-08Printing Dimensions NEW51Stephen Shaw
1033Claire TollnerGermany2021-09-11Buckley Miller Wright NEGOTIATION1Ioni Bowcher
1034Morrow RutaBrazil2021-08-31Feltz Printing Service NEGOTIATION24Anna Fali
1035Ivar PaprockiAustralia2021-09-26Commercial Press RENEWAL66Elwin Sharvill
1036Smith GlickAustralia2021-09-23Printing Dimensions UNQUALIFIED3Ivan Magalhaes
1037Munro FerenczSpain2021-09-11Printing Dimensions UNQUALIFIED28Ioni Bowcher
1038Maisha RulapaughUnited Kingdom2021-08-30Truhlar And Truhlar Attys PROPOSAL52Bernardo Dominic
1039Clifford RimItaly2021-09-10Commercial Press UNQUALIFIED67Asiya Javayant
1040Deepesh ChuiArgentina2021-09-08Chemel, James L Cpa NEW74Bernardo Dominic
1041Darci PoquetteGermany2021-09-02Dorl, James J Esq NEW88Bernardo Dominic
1042Chavez BriddickIndia2021-09-09Buckley Miller Wright NEGOTIATION61Xuxue Feng
1043Ashley DoeItaly2021-09-18Feiner Bros QUALIFIED14Ivan Magalhaes
1044Mayumi KolmetzIndia2021-09-17Feltz Printing Service NEGOTIATION49Anna Fali
1045Silvio SlusarskiJapan2021-09-03Feltz Printing Service RENEWAL8Onyama Limba
1046Johnson SergiArgentina2021-09-25King, Christopher A Esq PROPOSAL69Amy Elsner
1047Leon OldroydItaly2021-09-16Feiner Bros UNQUALIFIED51Onyama Limba
1048Misaki RoysterArgentina2021-09-17Benton, John B Jr UNQUALIFIED28Elwin Sharvill
1049Leja CaldareraSpain2021-09-26Buckley Miller Wright NEGOTIATION77Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Cody SaylorsBrazilStephen Shaw QUALIFIED
Leon OldroydRussiaIoni Bowcher UNQUALIFIED
Wickens NestleFranceElwin Sharvill QUALIFIED
Aika InouyeCanadaAsiya Javayant NEGOTIATION
Juan WieserJapanAnna Fali PROPOSAL
Wickens NestleFranceElwin Sharvill NEGOTIATION
Francesco ShinkoGermanyIvan Magalhaes QUALIFIED
Jennifer AmigonRussiaAsiya Javayant NEW
Clifford RimIndiaXuxue Feng NEGOTIATION
Munro FerenczItalyXuxue Feng NEGOTIATION
David DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Aditya KuskoCanadaAmy Elsner RENEWAL
Jefferson SchemmerArgentinaIoni Bowcher RENEWAL
Smith GlickAustraliaIoni Bowcher RENEWAL
Ricardo GauchoArgentinaXuxue Feng NEGOTIATION
Jennifer AmigonAustraliaOnyama Limba NEW
Munro FerenczIndiaStephen Shaw NEW
Jones VocelkaBrazilIvan Magalhaes UNQUALIFIED
Johnson SergiSpainOnyama Limba PROPOSAL
Isabel BowleyRussiaElwin Sharvill UNQUALIFIED
David DarakjyItalyAsiya Javayant PROPOSAL
Octavia MaletBrazilBernardo Dominic PROPOSAL
Maisha RulapaughAustraliaBernardo Dominic RENEWAL
Tony FollerUnited KingdomAnna Fali UNQUALIFIED
Darci PoquetteFranceOnyama Limba PROPOSAL
David DarakjyGermanyIvan Magalhaes UNQUALIFIED
Julie StensethBrazilIoni Bowcher NEGOTIATION
Jennifer AmigonIndiaOnyama Limba UNQUALIFIED
Tony FollerIndiaStephen Shaw NEW
Emily WhobreyUnited KingdomAsiya Javayant QUALIFIED
Ashley DoeCanadaOnyama Limba UNQUALIFIED
Leon OldroydArgentinaBernardo Dominic NEW
Sinclair WaycottGermanyAsiya Javayant NEW
Salvatore StockhamRussiaElwin Sharvill NEW
Jones VocelkaRussiaIvan Magalhaes UNQUALIFIED
Maisha RulapaughAustraliaOnyama Limba UNQUALIFIED
Darci PoquetteSpainAmy Elsner QUALIFIED
Sinclair WaycottJapanIoni Bowcher UNQUALIFIED
Francesco ShinkoJapanIvan Magalhaes PROPOSAL
Mayumi KolmetzFranceAmy Elsner RENEWAL
Wickens NestleAustraliaAmy Elsner NEGOTIATION
Jones VocelkaBrazilOnyama Limba NEW
Julie StensethItalyXuxue Feng RENEWAL
Mayumi KolmetzItalyXuxue Feng QUALIFIED
Octavia MaletJapanElwin Sharvill QUALIFIED
Ashley DoeAustraliaBernardo Dominic RENEWAL
Jennifer AmigonFranceBernardo Dominic UNQUALIFIED
Kadeem FlosiFranceIoni Bowcher NEW
Kadeem FlosiItalyIvan Magalhaes UNQUALIFIED
Johnson SergiFranceStephen Shaw RENEWAL
Frozen Columns
Name
Aika Inouye
Isabel Bowley
Deepesh Chui
Faith Gillian
Stacey Maclead
Maisha Rulapaugh
Antonio Caudy
Ricardo Gaucho
Misaki Royster
Cody Saylors
Maisha Rulapaugh
Costa Dilliard
Alejandro Perin
Sinclair Waycott
Mujtaba Nicka
Johnson Sergi
James Butt
Rodrigues Campain
Munro Ferencz
Murillo Malet
Morrow Ruta
Cody Saylors
Stacey Maclead
Wickens Nestle
Stacey Maclead
Aditya Kusko
Aditya Kusko
Maria Marrier
Izzy Garufi
Antonio Caudy
Antonio Caudy
Leja Caldarera
Julie Stenseth
Darci Poquette
Salvatore Stockham
Mayumi Kolmetz
Antonio Caudy
Francesco Shinko
Costa Dilliard
Stacey Maclead
Clifford Rim
Jones Vocelka
Deepesh Chui
Leon Oldroyd
Leja Caldarera
Arvin Albares
Claire Tollner
Juan Wieser
Wickens Nestle
Jones Vocelka
IdCountryDate
1000Russia2021-09-20
1001India2021-09-23
1002Italy2021-09-24
1003Australia2021-09-15
1004Spain2021-08-29
1005Germany2021-09-20
1006Spain2021-09-14
1007France2021-09-16
1008Brazil2021-08-30
1009Italy2021-09-23
1010Argentina2021-09-22
1011Italy2021-09-03
1012Spain2021-09-09
1013India2021-09-06
1014India2021-09-08
1015India2021-09-18
1016Brazil2021-09-20
1017Australia2021-09-08
1018India2021-09-21
1019Japan2021-08-28
1020United Kingdom2021-09-20
1021Germany2021-09-18
1022Italy2021-09-14
1023Italy2021-09-18
1024Brazil2021-09-04
1025India2021-09-01
1026Germany2021-09-15
1027Spain2021-09-20
1028United Kingdom2021-09-18
1029Brazil2021-09-17
1030Canada2021-09-14
1031Brazil2021-09-01
1032Italy2021-09-03
1033United Kingdom2021-08-31
1034Australia2021-09-03
1035Germany2021-08-31
1036Brazil2021-09-03
1037India2021-09-01
1038Australia2021-09-20
1039France2021-09-15
1040France2021-09-24
1041United Kingdom2021-09-24
1042Brazil2021-09-06
1043Italy2021-09-25
1044France2021-09-06
1045Russia2021-09-10
1046Australia2021-09-14
1047India2021-09-05
1048Germany2021-09-12
1049United Kingdom2021-09-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens NestleSpainAmy Elsner QUALIFIED
Arvin AlbaresCanadaXuxue Feng NEW
Johnson SergiAustraliaIoni Bowcher UNQUALIFIED
Alejandro PerinBrazilAmy Elsner QUALIFIED
Darci PoquetteJapanIvan Magalhaes QUALIFIED
Wickens NestleSpainAnna Fali QUALIFIED
Kadeem FlosiFranceAnna Fali NEW
Maria MarrierCanadaStephen Shaw RENEWAL
Juan WieserItalyAsiya Javayant NEW
Julie StensethJapanIvan Magalhaes QUALIFIED
Maria MarrierJapanAnna Fali PROPOSAL
Silvio SlusarskiAustraliaIoni Bowcher NEGOTIATION
Kaitlin OstroskyAustraliaOnyama Limba QUALIFIED
Greenwood BologniaFranceStephen Shaw PROPOSAL
Murillo MaletArgentinaElwin Sharvill PROPOSAL
Octavia MaletRussiaAmy Elsner RENEWAL
Jennifer AmigonFranceIvan Magalhaes UNQUALIFIED
Faith GillianUnited KingdomAnna Fali NEW
Faith GillianRussiaElwin Sharvill UNQUALIFIED
Chavez BriddickBrazilStephen Shaw NEW
Kaitlin OstroskyCanadaXuxue Feng NEGOTIATION
Mayumi KolmetzItalyOnyama Limba RENEWAL
Johnson SergiSpainAsiya Javayant UNQUALIFIED
Ashley DoeItalyAnna Fali RENEWAL
Murillo MaletUnited KingdomXuxue Feng UNQUALIFIED
Morrow RutaAustraliaStephen Shaw NEW
Jefferson SchemmerArgentinaXuxue Feng PROPOSAL
Johnson SergiSpainAsiya Javayant RENEWAL
Smith GlickFranceIoni Bowcher QUALIFIED
Kaitlin OstroskyCanadaIvan Magalhaes PROPOSAL
Johnson SergiGermanyStephen Shaw RENEWAL
Isabel BowleyCanadaAsiya Javayant UNQUALIFIED
David DarakjyCanadaAsiya Javayant RENEWAL
Ashley DoeArgentinaXuxue Feng NEGOTIATION
Antonio CaudyFranceOnyama Limba NEW
Mayumi KolmetzAustraliaAnna Fali QUALIFIED
Clifford RimCanadaStephen Shaw NEGOTIATION
Jefferson SchemmerUnited KingdomAnna Fali QUALIFIED
Leon OldroydArgentinaAnna Fali RENEWAL
Deepesh ChuiArgentinaAsiya Javayant 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>