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
Clifford RimAustraliaStephen Shaw UNQUALIFIED
Leja CaldareraBrazilXuxue Feng PROPOSAL
Mujtaba NickaUnited KingdomXuxue Feng RENEWAL
Octavia MaletJapanAmy Elsner NEW
Stacey MacleadGermanyAmy Elsner NEW
Rodrigues CampainArgentinaOnyama Limba NEW
Isabel BowleyFranceAmy Elsner UNQUALIFIED
Costa DilliardJapanElwin Sharvill PROPOSAL
Sinclair WaycottSpainAnna Fali UNQUALIFIED
Ashley DoeArgentinaAmy Elsner RENEWAL
Octavia MaletUnited KingdomElwin Sharvill NEW
Greenwood BologniaItalyBernardo Dominic UNQUALIFIED
Jennifer AmigonBrazilIoni Bowcher NEW
Alejandro PerinUnited KingdomOnyama Limba PROPOSAL
Jefferson SchemmerFranceIvan Magalhaes NEW
Silvio SlusarskiUnited KingdomIoni Bowcher RENEWAL
Maisha RulapaughRussiaBernardo Dominic PROPOSAL
Izzy GarufiArgentinaStephen Shaw NEW
Emily WhobreyCanadaStephen Shaw QUALIFIED
Mujtaba NickaGermanyAsiya Javayant PROPOSAL
Cody SaylorsAustraliaAnna Fali UNQUALIFIED
Adams MorascaRussiaAmy Elsner PROPOSAL
Greenwood BologniaArgentinaOnyama Limba NEW
David DarakjyGermanyStephen Shaw RENEWAL
Juan WieserRussiaElwin Sharvill PROPOSAL
Johnson SergiArgentinaAsiya Javayant PROPOSAL
Silvio SlusarskiItalyStephen Shaw QUALIFIED
Stacey MacleadJapanAnna Fali RENEWAL
David DarakjyIndiaElwin Sharvill NEGOTIATION
Murillo MaletSpainElwin Sharvill RENEWAL
Cody SaylorsIndiaIoni Bowcher PROPOSAL
Smith GlickSpainStephen Shaw NEW
Cody SaylorsFranceAsiya Javayant RENEWAL
Faith GillianJapanAnna Fali NEW
Antonio CaudySpainIoni Bowcher NEW
Aika InouyeSpainAmy Elsner PROPOSAL
Costa DilliardAustraliaAsiya Javayant NEGOTIATION
Antonio CaudyArgentinaOnyama Limba RENEWAL
Julie StensethItalyStephen Shaw NEGOTIATION
Greenwood BologniaBrazilAnna Fali UNQUALIFIED
Rodrigues CampainSpainBernardo Dominic PROPOSAL
Izzy GarufiCanadaAmy Elsner QUALIFIED
Octavia MaletUnited KingdomIvan Magalhaes RENEWAL
Jones VocelkaUnited KingdomOnyama Limba NEW
Ashley DoeGermanyStephen Shaw UNQUALIFIED
Tony FollerUnited KingdomStephen Shaw NEW
Darci PoquetteBrazilIoni Bowcher NEW
Stacey MacleadIndiaAnna Fali PROPOSAL
Rodrigues CampainIndiaIvan Magalhaes UNQUALIFIED
Leon OldroydUnited KingdomElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Murillo MaletIndiaXuxue Feng PROPOSAL
Leon OldroydCanadaOnyama Limba QUALIFIED
Cody SaylorsArgentinaAnna Fali NEGOTIATION
Kaitlin OstroskySpainIvan Magalhaes NEW
Leja CaldareraGermanyStephen Shaw NEW
Jefferson SchemmerRussiaStephen Shaw NEW
Smith GlickRussiaIoni Bowcher PROPOSAL
Jennifer AmigonArgentinaIvan Magalhaes NEW
David DarakjyCanadaBernardo Dominic UNQUALIFIED
Antonio CaudyJapanXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Alejandro PerinIndia2021-08-27Buckley Miller Wright RENEWAL67Asiya Javayant
1001Antonio CaudyAustralia2021-08-21Buckley Miller Wright NEW34Stephen Shaw
1002Kadeem FlosiIndia2021-08-28Chanay, Jeffrey A Esq PROPOSAL40Stephen Shaw
1003Cody SaylorsJapan2021-09-12Printing Dimensions QUALIFIED92Asiya Javayant
1004Sinclair WaycottAustralia2021-09-16Feiner Bros QUALIFIED80Onyama Limba
1005Julie StensethItaly2021-08-24Printing Dimensions PROPOSAL71Anna Fali
1006Greenwood BologniaItaly2021-09-13Morlong Associates NEGOTIATION17Asiya Javayant
1007Ashley DoeItaly2021-09-08Rousseaux, Michael Esq UNQUALIFIED57Ivan Magalhaes
1008Jefferson SchemmerIndia2021-08-27Truhlar And Truhlar Attys UNQUALIFIED48Onyama Limba
1009Jennifer AmigonJapan2021-09-09Chanay, Jeffrey A Esq UNQUALIFIED51Stephen Shaw
1010Ashley DoeUnited Kingdom2021-08-31Rousseaux, Michael Esq PROPOSAL62Onyama Limba
1011Deepesh ChuiFrance2021-09-10Chemel, James L Cpa NEGOTIATION91Stephen Shaw
1012Stacey MacleadRussia2021-09-17Chanay, Jeffrey A Esq NEW42Ivan Magalhaes
1013Stacey MacleadUnited Kingdom2021-09-12Feltz Printing Service NEGOTIATION17Xuxue Feng
1014Chavez BriddickIndia2021-08-21Chanay, Jeffrey A Esq NEGOTIATION3Xuxue Feng
1015Smith GlickUnited Kingdom2021-09-13Chanay, Jeffrey A Esq UNQUALIFIED55Ivan Magalhaes
1016Nicolas IturbideIndia2021-09-02Printing Dimensions NEGOTIATION49Onyama Limba
1017Jefferson SchemmerGermany2021-08-21Rousseaux, Michael Esq NEGOTIATION13Amy Elsner
1018Salvatore StockhamIndia2021-08-23Truhlar And Truhlar Attys QUALIFIED34Asiya Javayant
1019Isabel BowleyItaly2021-09-11Rousseaux, Michael Esq NEGOTIATION90Stephen Shaw
1020Emily WhobreyIndia2021-09-10Rangoni Of Florence PROPOSAL97Ivan Magalhaes
1021Darci PoquetteUnited Kingdom2021-09-14Commercial Press RENEWAL60Anna Fali
1022Alejandro PerinGermany2021-08-29Truhlar And Truhlar Attys NEW97Onyama Limba
1023Salvatore StockhamArgentina2021-08-28Feltz Printing Service UNQUALIFIED57Xuxue Feng
1024Isabel BowleyRussia2021-08-21Chapman, Ross E Esq RENEWAL20Bernardo Dominic
1025Murillo MaletCanada2021-08-28Buckley Miller Wright NEW38Onyama Limba
1026Wickens NestleIndia2021-09-07Chanay, Jeffrey A Esq QUALIFIED92Bernardo Dominic
1027Cody SaylorsGermany2021-09-17Rousseaux, Michael Esq UNQUALIFIED53Anna Fali
1028Tony FollerCanada2021-09-11Morlong Associates NEGOTIATION81Xuxue Feng
1029Deepesh ChuiSpain2021-08-21Commercial Press NEGOTIATION23Bernardo Dominic
1030Aruna FigeroaUnited Kingdom2021-08-22Dorl, James J Esq PROPOSAL20Elwin Sharvill
1031Jones VocelkaIndia2021-08-29Dorl, James J Esq NEW49Amy Elsner
1032Jeanfrancois VenereFrance2021-08-29Rousseaux, Michael Esq PROPOSAL8Elwin Sharvill
1033Costa DilliardCanada2021-08-21King, Christopher A Esq NEGOTIATION84Amy Elsner
1034Jones VocelkaBrazil2021-09-08Commercial Press NEW44Elwin Sharvill
1035Johnson SergiCanada2021-09-02Chapman, Ross E Esq UNQUALIFIED61Ioni Bowcher
1036Maria MarrierItaly2021-08-29King, Christopher A Esq UNQUALIFIED72Onyama Limba
1037Morrow RutaUnited Kingdom2021-09-17Chemel, James L Cpa PROPOSAL58Stephen Shaw
1038Kaitlin OstroskyFrance2021-09-17Printing Dimensions NEW23Anna Fali
1039Jennifer AmigonItaly2021-09-01Feltz Printing Service NEW23Amy Elsner
1040Cody SaylorsItaly2021-08-26Commercial Press PROPOSAL65Ivan Magalhaes
1041Ivar PaprockiArgentina2021-09-11Chapman, Ross E Esq NEW33Anna Fali
1042Stacey MacleadArgentina2021-09-16Feiner Bros RENEWAL17Anna Fali
1043Tony FollerIndia2021-08-21Truhlar And Truhlar Attys UNQUALIFIED57Anna Fali
1044Jeanfrancois VenereCanada2021-08-21Rangoni Of Florence NEW97Ivan Magalhaes
1045Cody SaylorsItaly2021-09-05Rousseaux, Michael Esq PROPOSAL61Amy Elsner
1046David DarakjyItaly2021-09-01Commercial Press QUALIFIED68Bernardo Dominic
1047Alejandro PerinGermany2021-08-28King, Christopher A Esq QUALIFIED61Anna Fali
1048Deepesh ChuiCanada2021-09-18Truhlar And Truhlar Attys RENEWAL7Stephen Shaw
1049Adams MorascaAustralia2021-09-08Chemel, James L Cpa RENEWAL65Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maisha RulapaughArgentinaElwin Sharvill QUALIFIED
Costa DilliardGermanyIoni Bowcher NEW
Izzy GarufiIndiaStephen Shaw QUALIFIED
Morrow RutaSpainAmy Elsner UNQUALIFIED
Jennifer AmigonBrazilAnna Fali PROPOSAL
Stacey MacleadCanadaIoni Bowcher NEW
Sinclair WaycottArgentinaOnyama Limba QUALIFIED
Faith GillianIndiaXuxue Feng UNQUALIFIED
Leon OldroydRussiaAsiya Javayant NEGOTIATION
Wickens NestleGermanyAmy Elsner NEGOTIATION
Kaitlin OstroskySpainAmy Elsner NEW
Mujtaba NickaAustraliaBernardo Dominic PROPOSAL
Greenwood BologniaBrazilXuxue Feng QUALIFIED
Munro FerenczCanadaElwin Sharvill QUALIFIED
Ricardo GauchoSpainAmy Elsner PROPOSAL
Aditya KuskoUnited KingdomIvan Magalhaes RENEWAL
Costa DilliardItalyOnyama Limba QUALIFIED
Ricardo GauchoAustraliaAmy Elsner QUALIFIED
Stacey MacleadBrazilIvan Magalhaes PROPOSAL
Rodrigues CampainJapanIvan Magalhaes PROPOSAL
Stacey MacleadCanadaBernardo Dominic NEW
Misaki RoysterFranceAnna Fali NEW
Maria MarrierGermanyIvan Magalhaes PROPOSAL
Jeanfrancois VenereItalyElwin Sharvill NEGOTIATION
Alejandro PerinSpainAsiya Javayant RENEWAL
Arvin AlbaresAustraliaAmy Elsner UNQUALIFIED
David DarakjySpainXuxue Feng NEGOTIATION
Leon OldroydGermanyElwin Sharvill NEW
Ashley DoeAustraliaIvan Magalhaes UNQUALIFIED
Julie StensethCanadaAnna Fali NEGOTIATION
Jones VocelkaSpainAmy Elsner UNQUALIFIED
Kaitlin OstroskySpainStephen Shaw NEGOTIATION
Costa DilliardJapanBernardo Dominic NEW
Faith GillianJapanElwin Sharvill NEW
Chavez BriddickItalyAnna Fali PROPOSAL
Costa DilliardCanadaIoni Bowcher PROPOSAL
Claire TollnerRussiaAnna Fali RENEWAL
Ricardo GauchoFranceXuxue Feng UNQUALIFIED
Isabel BowleyFranceAsiya Javayant QUALIFIED
Stacey MacleadArgentinaAsiya Javayant NEGOTIATION
Jefferson SchemmerAustraliaAsiya Javayant QUALIFIED
Julie StensethUnited KingdomAnna Fali UNQUALIFIED
Sinclair WaycottRussiaIvan Magalhaes NEW
Ricardo GauchoBrazilAnna Fali NEW
Wickens NestleIndiaIoni Bowcher PROPOSAL
Salvatore StockhamCanadaAnna Fali UNQUALIFIED
Cody SaylorsCanadaIoni Bowcher UNQUALIFIED
Arvin AlbaresCanadaBernardo Dominic RENEWAL
David DarakjyBrazilStephen Shaw NEW
Arvin AlbaresBrazilAsiya Javayant PROPOSAL
Frozen Columns
Name
Chavez Briddick
Salvatore Stockham
Jones Vocelka
Leon Oldroyd
Ricardo Gaucho
Kaitlin Ostrosky
Emily Whobrey
Smith Glick
Munro Ferencz
Misaki Royster
Arvin Albares
Rodrigues Campain
Wickens Nestle
Claire Tollner
Jones Vocelka
David Darakjy
David Darakjy
Sinclair Waycott
Clifford Rim
Ivar Paprocki
Leon Oldroyd
Nicolas Iturbide
Wickens Nestle
Adams Morasca
Cody Saylors
Smith Glick
Misaki Royster
Munro Ferencz
Juan Wieser
David Darakjy
Jennifer Amigon
Munro Ferencz
Izzy Garufi
Smith Glick
Sinclair Waycott
Salvatore Stockham
Maisha Rulapaugh
Jones Vocelka
Julie Stenseth
Nicolas Iturbide
Leja Caldarera
Murillo Malet
Cody Saylors
Jeanfrancois Venere
Morrow Ruta
Costa Dilliard
David Darakjy
Jefferson Schemmer
James Butt
Stacey Maclead
IdCountryDate
1000Canada2021-09-09
1001Italy2021-09-19
1002Russia2021-08-26
1003Argentina2021-09-13
1004Russia2021-08-21
1005Germany2021-08-23
1006Spain2021-08-24
1007Russia2021-09-08
1008Argentina2021-08-21
1009Russia2021-08-28
1010Italy2021-09-16
1011Argentina2021-08-30
1012Brazil2021-09-13
1013Japan2021-09-16
1014Spain2021-08-25
1015Russia2021-08-29
1016Spain2021-08-26
1017France2021-09-18
1018Argentina2021-08-31
1019Italy2021-08-21
1020France2021-09-07
1021Australia2021-09-09
1022Brazil2021-09-01
1023France2021-09-01
1024United Kingdom2021-08-28
1025Germany2021-09-19
1026Japan2021-08-29
1027United Kingdom2021-09-17
1028Argentina2021-08-22
1029Spain2021-09-12
1030Germany2021-09-14
1031France2021-08-29
1032Brazil2021-08-30
1033Argentina2021-08-28
1034Brazil2021-08-28
1035Canada2021-08-29
1036Australia2021-09-10
1037Russia2021-08-30
1038Canada2021-09-16
1039Russia2021-08-26
1040Australia2021-09-05
1041Argentina2021-09-11
1042Argentina2021-09-08
1043United Kingdom2021-09-08
1044Spain2021-08-31
1045Spain2021-09-03
1046Brazil2021-09-07
1047Brazil2021-09-06
1048Argentina2021-08-28
1049Italy2021-08-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David DarakjyUnited KingdomIoni Bowcher PROPOSAL
Emily WhobreyItalyStephen Shaw NEW
Faith GillianAustraliaBernardo Dominic NEGOTIATION
Jennifer AmigonBrazilStephen Shaw UNQUALIFIED
Aika InouyeIndiaStephen Shaw QUALIFIED
Stacey MacleadSpainIoni Bowcher PROPOSAL
Stacey MacleadJapanIoni Bowcher UNQUALIFIED
David DarakjyAustraliaIoni Bowcher RENEWAL
Leja CaldareraArgentinaElwin Sharvill NEGOTIATION
Kadeem FlosiCanadaAnna Fali PROPOSAL
Julie StensethAustraliaAnna Fali PROPOSAL
Izzy GarufiIndiaAmy Elsner PROPOSAL
Juan WieserCanadaOnyama Limba QUALIFIED
Chavez BriddickIndiaStephen Shaw PROPOSAL
Isabel BowleyItalyIoni Bowcher PROPOSAL
Jeanfrancois VenereAustraliaOnyama Limba RENEWAL
Arvin AlbaresAustraliaElwin Sharvill PROPOSAL
Faith GillianAustraliaAmy Elsner PROPOSAL
Greenwood BologniaGermanyStephen Shaw UNQUALIFIED
Aruna FigeroaGermanyStephen Shaw NEGOTIATION
Juan WieserCanadaAnna Fali NEW
Leon OldroydItalyXuxue Feng RENEWAL
Julie StensethBrazilXuxue Feng RENEWAL
Izzy GarufiFranceIvan Magalhaes UNQUALIFIED
Aditya KuskoIndiaStephen Shaw UNQUALIFIED
Maisha RulapaughIndiaAsiya Javayant UNQUALIFIED
Smith GlickItalyXuxue Feng UNQUALIFIED
Clifford RimJapanXuxue Feng PROPOSAL
Johnson SergiIndiaAnna Fali NEW
Arvin AlbaresFranceOnyama Limba RENEWAL
Salvatore StockhamGermanyElwin Sharvill UNQUALIFIED
Emily WhobreyCanadaBernardo Dominic NEGOTIATION
Octavia MaletAustraliaAmy Elsner RENEWAL
Tony FollerCanadaAnna Fali PROPOSAL
Johnson SergiJapanXuxue Feng NEGOTIATION
Chavez BriddickItalyOnyama Limba QUALIFIED
Octavia MaletRussiaBernardo Dominic NEGOTIATION
Stacey MacleadIndiaElwin Sharvill UNQUALIFIED
Isabel BowleyItalyAmy Elsner RENEWAL
Chavez BriddickJapanElwin Sharvill 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>