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
Tony FollerRussiaOnyama Limba UNQUALIFIED
Antonio CaudyCanadaIoni Bowcher QUALIFIED
Ricardo GauchoArgentinaIvan Magalhaes UNQUALIFIED
Kaitlin OstroskySpainElwin Sharvill RENEWAL
Aditya KuskoUnited KingdomElwin Sharvill RENEWAL
Claire TollnerItalyStephen Shaw NEGOTIATION
Greenwood BologniaSpainElwin Sharvill NEGOTIATION
Salvatore StockhamArgentinaElwin Sharvill PROPOSAL
Greenwood BologniaItalyOnyama Limba RENEWAL
Maria MarrierCanadaStephen Shaw UNQUALIFIED
Nicolas IturbideCanadaStephen Shaw NEGOTIATION
Juan WieserRussiaXuxue Feng QUALIFIED
Munro FerenczItalyBernardo Dominic NEGOTIATION
Rodrigues CampainItalyAmy Elsner NEGOTIATION
Aika InouyeRussiaXuxue Feng NEW
Ashley DoeBrazilOnyama Limba PROPOSAL
David DarakjyCanadaAsiya Javayant PROPOSAL
Silvio SlusarskiIndiaXuxue Feng PROPOSAL
Nicolas IturbideJapanAmy Elsner NEW
Mujtaba NickaBrazilStephen Shaw NEGOTIATION
Jones VocelkaJapanElwin Sharvill PROPOSAL
Misaki RoysterItalyXuxue Feng NEW
Cody SaylorsIndiaOnyama Limba RENEWAL
Julie StensethRussiaBernardo Dominic QUALIFIED
Chavez BriddickItalyXuxue Feng NEGOTIATION
Nicolas IturbideCanadaXuxue Feng UNQUALIFIED
Misaki RoysterRussiaAnna Fali RENEWAL
Leon OldroydItalyBernardo Dominic QUALIFIED
Jefferson SchemmerBrazilOnyama Limba NEGOTIATION
Octavia MaletRussiaAsiya Javayant NEGOTIATION
Alejandro PerinJapanStephen Shaw NEGOTIATION
Stacey MacleadAustraliaOnyama Limba QUALIFIED
Faith GillianArgentinaOnyama Limba RENEWAL
Maria MarrierCanadaAmy Elsner NEGOTIATION
Kaitlin OstroskyAustraliaIvan Magalhaes PROPOSAL
Murillo MaletUnited KingdomBernardo Dominic UNQUALIFIED
Greenwood BologniaJapanIvan Magalhaes RENEWAL
Greenwood BologniaUnited KingdomAmy Elsner UNQUALIFIED
Aika InouyeFranceAsiya Javayant RENEWAL
Izzy GarufiIndiaAnna Fali QUALIFIED
Deepesh ChuiGermanyAsiya Javayant NEW
Cody SaylorsJapanBernardo Dominic NEGOTIATION
Francesco ShinkoItalyElwin Sharvill NEW
Aruna FigeroaSpainElwin Sharvill RENEWAL
Kadeem FlosiFranceIoni Bowcher NEW
Faith GillianAustraliaIoni Bowcher RENEWAL
Aruna FigeroaGermanyAnna Fali PROPOSAL
Jefferson SchemmerSpainOnyama Limba NEGOTIATION
David DarakjyGermanyElwin Sharvill NEW
Ivar PaprockiFranceIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jones VocelkaIndiaStephen Shaw NEW
Jefferson SchemmerGermanyXuxue Feng UNQUALIFIED
Murillo MaletUnited KingdomAnna Fali QUALIFIED
Clifford RimArgentinaIvan Magalhaes NEW
Aditya KuskoCanadaAsiya Javayant UNQUALIFIED
Sinclair WaycottSpainXuxue Feng NEW
Adams MorascaRussiaStephen Shaw NEGOTIATION
Wickens NestleSpainIoni Bowcher NEGOTIATION
Jones VocelkaAustraliaXuxue Feng NEGOTIATION
Rodrigues CampainAustraliaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo GauchoArgentina2021-04-11Chemel, James L Cpa NEW5Anna Fali
1001Clifford RimFrance2021-04-09Morlong Associates QUALIFIED73Xuxue Feng
1002Mayumi KolmetzIndia2021-03-21Morlong Associates RENEWAL45Onyama Limba
1003Stacey MacleadGermany2021-03-23Rangoni Of Florence RENEWAL6Ivan Magalhaes
1004Misaki RoysterGermany2021-04-02Chanay, Jeffrey A Esq QUALIFIED17Amy Elsner
1005Sinclair WaycottAustralia2021-04-02Morlong Associates UNQUALIFIED6Anna Fali
1006David DarakjyBrazil2021-04-07Feiner Bros PROPOSAL39Ioni Bowcher
1007Emily WhobreyArgentina2021-03-29King, Christopher A Esq NEGOTIATION3Anna Fali
1008Faith GillianCanada2021-03-26King, Christopher A Esq NEW1Xuxue Feng
1009Jones VocelkaJapan2021-03-22Chanay, Jeffrey A Esq NEGOTIATION88Ioni Bowcher
1010Cody SaylorsUnited Kingdom2021-04-14Benton, John B Jr RENEWAL92Onyama Limba
1011Kaitlin OstroskyBrazil2021-04-14Rangoni Of Florence PROPOSAL7Ivan Magalhaes
1012Juan WieserArgentina2021-03-30King, Christopher A Esq NEGOTIATION2Asiya Javayant
1013Claire TollnerBrazil2021-04-01Chemel, James L Cpa UNQUALIFIED57Amy Elsner
1014Rodrigues CampainFrance2021-04-02Benton, John B Jr RENEWAL38Elwin Sharvill
1015Clifford RimArgentina2021-04-08Commercial Press RENEWAL39Bernardo Dominic
1016Morrow RutaArgentina2021-04-13Commercial Press RENEWAL82Stephen Shaw
1017Wickens NestleSpain2021-04-04Chanay, Jeffrey A Esq RENEWAL34Ioni Bowcher
1018Octavia MaletJapan2021-04-06Feiner Bros NEGOTIATION77Anna Fali
1019Jeanfrancois VenereJapan2021-03-31Feltz Printing Service NEGOTIATION54Elwin Sharvill
1020Jones VocelkaCanada2021-04-07Benton, John B Jr QUALIFIED99Ivan Magalhaes
1021Antonio CaudyUnited Kingdom2021-03-31Dorl, James J Esq NEW21Ivan Magalhaes
1022Misaki RoysterItaly2021-03-18Buckley Miller Wright QUALIFIED53Ioni Bowcher
1023Ivar PaprockiFrance2021-04-09Morlong Associates QUALIFIED89Xuxue Feng
1024Deepesh ChuiItaly2021-03-27Chanay, Jeffrey A Esq QUALIFIED63Stephen Shaw
1025Leja CaldareraCanada2021-03-28Dorl, James J Esq UNQUALIFIED45Bernardo Dominic
1026Alejandro PerinArgentina2021-03-18Feiner Bros NEW26Elwin Sharvill
1027Chavez BriddickGermany2021-04-13Benton, John B Jr UNQUALIFIED63Ivan Magalhaes
1028Octavia MaletAustralia2021-04-14Dorl, James J Esq UNQUALIFIED50Ioni Bowcher
1029Aditya KuskoRussia2021-03-26Buckley Miller Wright PROPOSAL82Stephen Shaw
1030Maisha RulapaughUnited Kingdom2021-04-05Benton, John B Jr QUALIFIED0Onyama Limba
1031Arvin AlbaresItaly2021-03-18Buckley Miller Wright QUALIFIED1Xuxue Feng
1032Leon OldroydSpain2021-03-29Printing Dimensions QUALIFIED48Bernardo Dominic
1033Emily WhobreyRussia2021-04-03Rousseaux, Michael Esq QUALIFIED14Anna Fali
1034Sinclair WaycottCanada2021-04-11Benton, John B Jr QUALIFIED21Amy Elsner
1035Izzy GarufiCanada2021-04-12Buckley Miller Wright RENEWAL24Anna Fali
1036Maria MarrierItaly2021-04-10Chapman, Ross E Esq NEGOTIATION10Asiya Javayant
1037Aditya KuskoJapan2021-03-30Dorl, James J Esq UNQUALIFIED59Onyama Limba
1038Nicolas IturbideFrance2021-04-10Commercial Press PROPOSAL67Stephen Shaw
1039Aika InouyeUnited Kingdom2021-03-22Truhlar And Truhlar Attys NEGOTIATION16Elwin Sharvill
1040Mayumi KolmetzBrazil2021-04-16Buckley Miller Wright RENEWAL44Asiya Javayant
1041Aruna FigeroaUnited Kingdom2021-04-11Buckley Miller Wright PROPOSAL76Onyama Limba
1042Darci PoquetteGermany2021-03-27Printing Dimensions NEGOTIATION81Bernardo Dominic
1043Julie StensethJapan2021-03-25Rousseaux, Michael Esq UNQUALIFIED21Amy Elsner
1044Clifford RimSpain2021-04-03Feiner Bros QUALIFIED25Stephen Shaw
1045Jennifer AmigonFrance2021-03-29Dorl, James J Esq QUALIFIED96Ivan Magalhaes
1046Morrow RutaArgentina2021-04-03Morlong Associates QUALIFIED42Xuxue Feng
1047Leja CaldareraAustralia2021-03-27Truhlar And Truhlar Attys QUALIFIED77Asiya Javayant
1048Izzy GarufiJapan2021-04-07Chemel, James L Cpa NEW13Bernardo Dominic
1049Rodrigues CampainItaly2021-04-04Feltz Printing Service NEGOTIATION81Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Isabel BowleyGermanyOnyama Limba UNQUALIFIED
Jefferson SchemmerFranceAsiya Javayant NEGOTIATION
Izzy GarufiIndiaStephen Shaw NEGOTIATION
Claire TollnerArgentinaOnyama Limba NEW
Claire TollnerUnited KingdomXuxue Feng PROPOSAL
Ashley DoeGermanyElwin Sharvill QUALIFIED
Kadeem FlosiCanadaBernardo Dominic RENEWAL
Leja CaldareraCanadaAnna Fali NEGOTIATION
Julie StensethArgentinaAsiya Javayant PROPOSAL
Jeanfrancois VenereFranceElwin Sharvill NEW
Mayumi KolmetzBrazilAsiya Javayant UNQUALIFIED
Leon OldroydFranceAnna Fali QUALIFIED
Aditya KuskoUnited KingdomStephen Shaw UNQUALIFIED
Maisha RulapaughAustraliaXuxue Feng NEW
Ricardo GauchoUnited KingdomStephen Shaw UNQUALIFIED
Aika InouyeJapanStephen Shaw QUALIFIED
Misaki RoysterFranceOnyama Limba PROPOSAL
Nicolas IturbideRussiaOnyama Limba UNQUALIFIED
Adams MorascaRussiaBernardo Dominic RENEWAL
Emily WhobreyCanadaAsiya Javayant NEGOTIATION
Jeanfrancois VenereItalyAnna Fali NEGOTIATION
Octavia MaletGermanyAsiya Javayant UNQUALIFIED
Munro FerenczBrazilIoni Bowcher NEW
Smith GlickFranceIoni Bowcher UNQUALIFIED
Claire TollnerBrazilAsiya Javayant PROPOSAL
Greenwood BologniaFranceBernardo Dominic NEW
Deepesh ChuiRussiaElwin Sharvill PROPOSAL
Munro FerenczUnited KingdomElwin Sharvill PROPOSAL
David DarakjyIndiaAnna Fali QUALIFIED
Stacey MacleadBrazilIvan Magalhaes UNQUALIFIED
Smith GlickFranceOnyama Limba RENEWAL
Cody SaylorsRussiaElwin Sharvill PROPOSAL
Leon OldroydCanadaIoni Bowcher NEGOTIATION
Sinclair WaycottIndiaIvan Magalhaes QUALIFIED
Julie StensethAustraliaAnna Fali QUALIFIED
Maria MarrierSpainXuxue Feng NEW
Johnson SergiJapanAnna Fali QUALIFIED
Leon OldroydArgentinaIoni Bowcher PROPOSAL
Faith GillianAustraliaIoni Bowcher UNQUALIFIED
Julie StensethAustraliaIoni Bowcher QUALIFIED
Izzy GarufiGermanyAnna Fali NEGOTIATION
Alejandro PerinSpainElwin Sharvill RENEWAL
Alejandro PerinFranceStephen Shaw UNQUALIFIED
Emily WhobreyIndiaIoni Bowcher UNQUALIFIED
Johnson SergiRussiaBernardo Dominic NEGOTIATION
Maisha RulapaughBrazilStephen Shaw NEW
Ivar PaprockiItalyAmy Elsner QUALIFIED
Leja CaldareraIndiaAnna Fali UNQUALIFIED
Antonio CaudyFranceAsiya Javayant PROPOSAL
James ButtGermanyBernardo Dominic NEW
Frozen Columns
Name
Claire Tollner
Cody Saylors
Juan Wieser
Leja Caldarera
Tony Foller
Darci Poquette
Aika Inouye
Greenwood Bolognia
Kaitlin Ostrosky
Kadeem Flosi
Alejandro Perin
Rodrigues Campain
Stacey Maclead
Johnson Sergi
Morrow Ruta
Antonio Caudy
Faith Gillian
Francesco Shinko
Aika Inouye
Tony Foller
Sinclair Waycott
Murillo Malet
Smith Glick
Ivar Paprocki
Aditya Kusko
Isabel Bowley
Arvin Albares
Aditya Kusko
Aika Inouye
Alejandro Perin
Salvatore Stockham
Octavia Malet
Izzy Garufi
Silvio Slusarski
Munro Ferencz
Greenwood Bolognia
Aruna Figeroa
Sinclair Waycott
Smith Glick
Julie Stenseth
Leja Caldarera
Adams Morasca
Jennifer Amigon
Arvin Albares
Ashley Doe
Arvin Albares
Aruna Figeroa
Stacey Maclead
Leon Oldroyd
Aika Inouye
IdCountryDate
1000Australia2021-04-04
1001Argentina2021-04-08
1002India2021-04-05
1003Argentina2021-04-07
1004Russia2021-04-01
1005Japan2021-03-21
1006Italy2021-04-06
1007Germany2021-03-31
1008Canada2021-03-23
1009United Kingdom2021-03-30
1010Russia2021-04-08
1011France2021-03-21
1012France2021-04-06
1013Italy2021-03-24
1014United Kingdom2021-04-11
1015Russia2021-03-29
1016Japan2021-04-08
1017Argentina2021-04-09
1018France2021-03-24
1019Germany2021-03-20
1020Brazil2021-03-26
1021India2021-04-03
1022Germany2021-04-16
1023India2021-03-18
1024Argentina2021-04-13
1025France2021-03-21
1026Russia2021-03-29
1027Australia2021-03-26
1028Brazil2021-03-18
1029Canada2021-04-07
1030Russia2021-04-09
1031Argentina2021-03-30
1032Italy2021-04-02
1033Argentina2021-03-22
1034Argentina2021-04-05
1035Spain2021-04-12
1036France2021-04-08
1037Brazil2021-04-04
1038France2021-04-13
1039Japan2021-03-23
1040Spain2021-03-18
1041Argentina2021-03-25
1042France2021-04-13
1043Germany2021-03-21
1044Canada2021-03-18
1045Italy2021-04-02
1046Spain2021-04-12
1047Italy2021-04-02
1048France2021-03-28
1049India2021-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow RutaArgentinaBernardo Dominic UNQUALIFIED
Leon OldroydCanadaStephen Shaw UNQUALIFIED
Chavez BriddickGermanyAsiya Javayant RENEWAL
Arvin AlbaresArgentinaElwin Sharvill UNQUALIFIED
Jones VocelkaBrazilAnna Fali RENEWAL
Smith GlickAustraliaBernardo Dominic NEW
Juan WieserArgentinaXuxue Feng PROPOSAL
Leja CaldareraSpainStephen Shaw NEGOTIATION
Cody SaylorsSpainElwin Sharvill RENEWAL
Octavia MaletIndiaStephen Shaw PROPOSAL
Aika InouyeIndiaAmy Elsner NEW
Arvin AlbaresItalyIoni Bowcher QUALIFIED
Munro FerenczArgentinaBernardo Dominic RENEWAL
Cody SaylorsCanadaAnna Fali QUALIFIED
Adams MorascaFranceAnna Fali UNQUALIFIED
Francesco ShinkoSpainIvan Magalhaes NEW
Jennifer AmigonItalyAnna Fali UNQUALIFIED
Jefferson SchemmerCanadaAnna Fali RENEWAL
Maria MarrierGermanyOnyama Limba RENEWAL
David DarakjyJapanIoni Bowcher RENEWAL
Rodrigues CampainBrazilAnna Fali PROPOSAL
Murillo MaletGermanyBernardo Dominic PROPOSAL
Juan WieserJapanStephen Shaw PROPOSAL
Costa DilliardUnited KingdomAnna Fali RENEWAL
James ButtIndiaIvan Magalhaes UNQUALIFIED
Wickens NestleArgentinaStephen Shaw UNQUALIFIED
Izzy GarufiFranceIvan Magalhaes PROPOSAL
Chavez BriddickItalyXuxue Feng PROPOSAL
Nicolas IturbideArgentinaElwin Sharvill QUALIFIED
Maria MarrierUnited KingdomXuxue Feng NEW
Salvatore StockhamItalyOnyama Limba UNQUALIFIED
Sinclair WaycottUnited KingdomAmy Elsner UNQUALIFIED
Antonio CaudyFranceAsiya Javayant QUALIFIED
Leon OldroydIndiaStephen Shaw PROPOSAL
Silvio SlusarskiGermanyOnyama Limba NEW
Kadeem FlosiCanadaIvan Magalhaes QUALIFIED
Stacey MacleadArgentinaOnyama Limba UNQUALIFIED
Izzy GarufiJapanAsiya Javayant NEW
Aruna FigeroaAustraliaAnna Fali PROPOSAL
Wickens NestleIndiaElwin Sharvill 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>