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 StensethBrazilAnna Fali RENEWAL
Clifford RimAustraliaElwin Sharvill NEW
Izzy GarufiArgentinaBernardo Dominic NEGOTIATION
Ivar PaprockiGermanyOnyama Limba QUALIFIED
Cody SaylorsBrazilAnna Fali UNQUALIFIED
David DarakjyIndiaStephen Shaw PROPOSAL
Emily WhobreyCanadaIvan Magalhaes QUALIFIED
Wickens NestleUnited KingdomXuxue Feng RENEWAL
Leon OldroydUnited KingdomAmy Elsner PROPOSAL
James ButtSpainStephen Shaw QUALIFIED
Darci PoquetteGermanyIvan Magalhaes PROPOSAL
Jefferson SchemmerUnited KingdomAmy Elsner RENEWAL
Tony FollerSpainBernardo Dominic NEW
Leon OldroydAustraliaAnna Fali QUALIFIED
Chavez BriddickFranceAmy Elsner RENEWAL
Ivar PaprockiJapanAmy Elsner RENEWAL
Darci PoquetteSpainAsiya Javayant NEW
Johnson SergiArgentinaAnna Fali RENEWAL
Ivar PaprockiRussiaXuxue Feng UNQUALIFIED
James ButtFranceIvan Magalhaes UNQUALIFIED
Deepesh ChuiGermanyBernardo Dominic PROPOSAL
Octavia MaletAustraliaIvan Magalhaes UNQUALIFIED
Chavez BriddickArgentinaIvan Magalhaes NEGOTIATION
Tony FollerItalyBernardo Dominic QUALIFIED
David DarakjyBrazilIvan Magalhaes UNQUALIFIED
Darci PoquetteCanadaStephen Shaw QUALIFIED
Octavia MaletSpainAnna Fali NEW
Claire TollnerIndiaIvan Magalhaes QUALIFIED
Emily WhobreyItalyBernardo Dominic RENEWAL
Misaki RoysterItalyStephen Shaw NEGOTIATION
Mayumi KolmetzRussiaAmy Elsner NEW
Cody SaylorsUnited KingdomOnyama Limba QUALIFIED
Francesco ShinkoFranceAnna Fali RENEWAL
Greenwood BologniaJapanElwin Sharvill UNQUALIFIED
Leja CaldareraAustraliaAmy Elsner UNQUALIFIED
Ricardo GauchoRussiaAmy Elsner QUALIFIED
James ButtItalyBernardo Dominic PROPOSAL
Tony FollerGermanyIvan Magalhaes UNQUALIFIED
Octavia MaletJapanStephen Shaw UNQUALIFIED
Alejandro PerinFranceAsiya Javayant NEGOTIATION
Ivar PaprockiIndiaStephen Shaw RENEWAL
Maisha RulapaughRussiaElwin Sharvill NEGOTIATION
Adams MorascaRussiaIoni Bowcher RENEWAL
Antonio CaudySpainBernardo Dominic NEGOTIATION
Clifford RimRussiaAmy Elsner PROPOSAL
Jefferson SchemmerArgentinaAmy Elsner PROPOSAL
David DarakjyUnited KingdomXuxue Feng NEGOTIATION
Jeanfrancois VenereRussiaIvan Magalhaes UNQUALIFIED
Leon OldroydUnited KingdomIoni Bowcher NEGOTIATION
Salvatore StockhamAustraliaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia MaletBrazilAsiya Javayant QUALIFIED
Aruna FigeroaJapanAsiya Javayant NEW
Emily WhobreyItalyIvan Magalhaes NEW
Munro FerenczFranceIvan Magalhaes UNQUALIFIED
Aditya KuskoRussiaAnna Fali UNQUALIFIED
Greenwood BologniaFranceIoni Bowcher UNQUALIFIED
Murillo MaletRussiaIoni Bowcher RENEWAL
Maisha RulapaughBrazilBernardo Dominic RENEWAL
Mayumi KolmetzJapanBernardo Dominic RENEWAL
Francesco ShinkoArgentinaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleGermany2021-06-14Feiner Bros PROPOSAL99Ivan Magalhaes
1001Kadeem FlosiFrance2021-06-20Rousseaux, Michael Esq PROPOSAL64Asiya Javayant
1002Johnson SergiSpain2021-06-13Chapman, Ross E Esq RENEWAL60Anna Fali
1003Jones VocelkaCanada2021-06-12Morlong Associates RENEWAL79Anna Fali
1004Jones VocelkaArgentina2021-06-03Truhlar And Truhlar Attys NEGOTIATION71Anna Fali
1005Ashley DoeGermany2021-06-16Printing Dimensions NEW37Xuxue Feng
1006Nicolas IturbideSpain2021-06-21Dorl, James J Esq NEW45Elwin Sharvill
1007Maisha RulapaughArgentina2021-06-11Chanay, Jeffrey A Esq PROPOSAL17Bernardo Dominic
1008Wickens NestleRussia2021-06-16Morlong Associates RENEWAL52Ivan Magalhaes
1009Maisha RulapaughItaly2021-06-12Morlong Associates NEGOTIATION2Amy Elsner
1010Deepesh ChuiJapan2021-05-28Buckley Miller Wright NEGOTIATION58Xuxue Feng
1011Chavez BriddickGermany2021-06-14Feiner Bros RENEWAL38Stephen Shaw
1012Emily WhobreyIndia2021-06-10Chemel, James L Cpa PROPOSAL13Ioni Bowcher
1013Arvin AlbaresBrazil2021-06-03Rousseaux, Michael Esq PROPOSAL98Bernardo Dominic
1014Claire TollnerBrazil2021-06-14Truhlar And Truhlar Attys UNQUALIFIED94Xuxue Feng
1015Antonio CaudyItaly2021-06-11Feltz Printing Service NEW57Ioni Bowcher
1016Costa DilliardItaly2021-06-20Chapman, Ross E Esq RENEWAL46Amy Elsner
1017Julie StensethIndia2021-06-13Commercial Press PROPOSAL62Anna Fali
1018Claire TollnerFrance2021-05-29Dorl, James J Esq NEW90Onyama Limba
1019Munro FerenczJapan2021-06-04Truhlar And Truhlar Attys UNQUALIFIED92Xuxue Feng
1020Jeanfrancois VenereCanada2021-06-05Chapman, Ross E Esq UNQUALIFIED68Ivan Magalhaes
1021Kaitlin OstroskyRussia2021-06-07Chanay, Jeffrey A Esq QUALIFIED55Xuxue Feng
1022Sinclair WaycottItaly2021-06-18Truhlar And Truhlar Attys PROPOSAL96Onyama Limba
1023Julie StensethArgentina2021-06-19Commercial Press NEGOTIATION11Onyama Limba
1024Silvio SlusarskiRussia2021-06-06Printing Dimensions RENEWAL71Bernardo Dominic
1025Faith GillianUnited Kingdom2021-05-25Dorl, James J Esq NEW47Elwin Sharvill
1026Rodrigues CampainBrazil2021-06-06Printing Dimensions UNQUALIFIED48Elwin Sharvill
1027Jeanfrancois VenereRussia2021-06-06Chapman, Ross E Esq UNQUALIFIED98Xuxue Feng
1028Clifford RimGermany2021-06-11Buckley Miller Wright NEW5Xuxue Feng
1029Greenwood BologniaItaly2021-06-19Feiner Bros QUALIFIED86Stephen Shaw
1030Maisha RulapaughGermany2021-06-19Truhlar And Truhlar Attys PROPOSAL29Amy Elsner
1031Leja CaldareraBrazil2021-06-02Feltz Printing Service NEW47Anna Fali
1032Silvio SlusarskiFrance2021-06-05Buckley Miller Wright NEW61Onyama Limba
1033Izzy GarufiJapan2021-06-07Chanay, Jeffrey A Esq QUALIFIED79Ioni Bowcher
1034Emily WhobreyRussia2021-06-18Buckley Miller Wright PROPOSAL87Bernardo Dominic
1035Deepesh ChuiGermany2021-06-20Dorl, James J Esq UNQUALIFIED27Elwin Sharvill
1036James ButtGermany2021-06-03Feiner Bros RENEWAL27Elwin Sharvill
1037Darci PoquetteJapan2021-06-15Commercial Press UNQUALIFIED61Elwin Sharvill
1038Misaki RoysterItaly2021-05-27Printing Dimensions UNQUALIFIED9Amy Elsner
1039Claire TollnerRussia2021-05-31Feltz Printing Service NEGOTIATION31Anna Fali
1040Izzy GarufiSpain2021-06-22Feltz Printing Service RENEWAL17Amy Elsner
1041Juan WieserJapan2021-05-31Morlong Associates RENEWAL12Anna Fali
1042Adams MorascaUnited Kingdom2021-05-30Chemel, James L Cpa PROPOSAL97Asiya Javayant
1043Tony FollerSpain2021-06-03Benton, John B Jr RENEWAL60Onyama Limba
1044Wickens NestleBrazil2021-06-20Benton, John B Jr QUALIFIED1Bernardo Dominic
1045Claire TollnerIndia2021-06-03Commercial Press PROPOSAL19Stephen Shaw
1046Chavez BriddickUnited Kingdom2021-05-30Dorl, James J Esq PROPOSAL46Asiya Javayant
1047Izzy GarufiBrazil2021-06-16Chapman, Ross E Esq NEW47Ivan Magalhaes
1048Costa DilliardUnited Kingdom2021-05-31King, Christopher A Esq QUALIFIED9Stephen Shaw
1049Sinclair WaycottRussia2021-05-24Rangoni Of Florence UNQUALIFIED56Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Adams MorascaUnited KingdomIvan Magalhaes QUALIFIED
Aditya KuskoBrazilOnyama Limba QUALIFIED
Kadeem FlosiGermanyAmy Elsner NEGOTIATION
Mayumi KolmetzFranceAsiya Javayant UNQUALIFIED
James ButtSpainIvan Magalhaes NEGOTIATION
Wickens NestleIndiaAnna Fali PROPOSAL
Jeanfrancois VenereBrazilIoni Bowcher QUALIFIED
Munro FerenczRussiaIoni Bowcher NEW
Aruna FigeroaAustraliaAmy Elsner RENEWAL
Faith GillianUnited KingdomStephen Shaw RENEWAL
Deepesh ChuiRussiaOnyama Limba NEGOTIATION
Wickens NestleSpainIvan Magalhaes UNQUALIFIED
Costa DilliardGermanyBernardo Dominic NEGOTIATION
Mayumi KolmetzIndiaXuxue Feng PROPOSAL
Mujtaba NickaCanadaXuxue Feng NEGOTIATION
Faith GillianSpainAnna Fali QUALIFIED
Francesco ShinkoCanadaOnyama Limba NEW
Leon OldroydSpainIoni Bowcher NEW
Jeanfrancois VenereArgentinaBernardo Dominic NEGOTIATION
Jefferson SchemmerCanadaXuxue Feng NEW
Kadeem FlosiIndiaXuxue Feng UNQUALIFIED
Jennifer AmigonUnited KingdomElwin Sharvill NEW
Stacey MacleadItalyStephen Shaw NEGOTIATION
Alejandro PerinArgentinaAmy Elsner NEW
Maria MarrierCanadaIoni Bowcher NEGOTIATION
Ricardo GauchoSpainIvan Magalhaes PROPOSAL
Isabel BowleyArgentinaElwin Sharvill PROPOSAL
Rodrigues CampainJapanOnyama Limba NEW
Jeanfrancois VenereBrazilOnyama Limba RENEWAL
Emily WhobreyAustraliaElwin Sharvill UNQUALIFIED
Morrow RutaCanadaIvan Magalhaes PROPOSAL
Izzy GarufiItalyElwin Sharvill UNQUALIFIED
James ButtFranceIvan Magalhaes NEW
Cody SaylorsJapanXuxue Feng PROPOSAL
Claire TollnerGermanyXuxue Feng PROPOSAL
Munro FerenczItalyAsiya Javayant NEGOTIATION
Jennifer AmigonUnited KingdomStephen Shaw QUALIFIED
James ButtIndiaIoni Bowcher UNQUALIFIED
Octavia MaletBrazilIoni Bowcher NEGOTIATION
Izzy GarufiUnited KingdomAsiya Javayant PROPOSAL
Stacey MacleadItalyOnyama Limba RENEWAL
Antonio CaudyGermanyAsiya Javayant QUALIFIED
Arvin AlbaresSpainIoni Bowcher NEGOTIATION
Emily WhobreyArgentinaAnna Fali QUALIFIED
Jeanfrancois VenereItalyXuxue Feng NEW
Mujtaba NickaAustraliaAsiya Javayant UNQUALIFIED
Cody SaylorsJapanXuxue Feng UNQUALIFIED
Clifford RimIndiaAmy Elsner NEGOTIATION
Adams MorascaCanadaAnna Fali PROPOSAL
Jennifer AmigonIndiaXuxue Feng PROPOSAL
Frozen Columns
Name
Wickens Nestle
Salvatore Stockham
David Darakjy
Faith Gillian
David Darakjy
Aruna Figeroa
Cody Saylors
Jeanfrancois Venere
Adams Morasca
Costa Dilliard
Kaitlin Ostrosky
Stacey Maclead
Munro Ferencz
Jeanfrancois Venere
Emily Whobrey
Francesco Shinko
Aditya Kusko
Emily Whobrey
Murillo Malet
Jefferson Schemmer
Juan Wieser
Nicolas Iturbide
Kadeem Flosi
James Butt
Aika Inouye
Sinclair Waycott
Ashley Doe
James Butt
Maisha Rulapaugh
Kaitlin Ostrosky
Ricardo Gaucho
Deepesh Chui
Kadeem Flosi
Jennifer Amigon
Emily Whobrey
Sinclair Waycott
Tony Foller
Mayumi Kolmetz
Cody Saylors
Stacey Maclead
Leja Caldarera
Murillo Malet
Aruna Figeroa
Jeanfrancois Venere
James Butt
Mujtaba Nicka
Jefferson Schemmer
Leja Caldarera
Ivar Paprocki
Munro Ferencz
IdCountryDate
1000Germany2021-05-28
1001Brazil2021-05-28
1002Germany2021-06-03
1003United Kingdom2021-06-17
1004United Kingdom2021-06-08
1005Russia2021-06-12
1006United Kingdom2021-06-13
1007Spain2021-06-11
1008Germany2021-06-19
1009France2021-06-13
1010Argentina2021-05-31
1011Australia2021-05-29
1012France2021-06-01
1013Japan2021-05-30
1014Australia2021-06-07
1015Argentina2021-06-22
1016India2021-06-17
1017Italy2021-06-03
1018Brazil2021-06-13
1019Brazil2021-06-06
1020Canada2021-06-19
1021Canada2021-05-31
1022Russia2021-06-08
1023France2021-05-25
1024Spain2021-06-11
1025Brazil2021-06-20
1026Spain2021-06-08
1027India2021-06-20
1028Russia2021-05-24
1029United Kingdom2021-05-24
1030Spain2021-06-15
1031Japan2021-05-25
1032Japan2021-06-12
1033France2021-06-16
1034India2021-06-15
1035India2021-06-04
1036Australia2021-06-18
1037United Kingdom2021-06-13
1038Germany2021-06-12
1039Spain2021-06-11
1040Russia2021-06-18
1041United Kingdom2021-06-11
1042France2021-05-31
1043Russia2021-06-18
1044India2021-05-29
1045France2021-06-12
1046India2021-06-16
1047Brazil2021-06-12
1048Spain2021-05-28
1049United Kingdom2021-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottJapanAnna Fali NEGOTIATION
Faith GillianIndiaIvan Magalhaes PROPOSAL
Jeanfrancois VenereUnited KingdomAmy Elsner UNQUALIFIED
Darci PoquetteArgentinaElwin Sharvill PROPOSAL
Cody SaylorsAustraliaStephen Shaw QUALIFIED
Johnson SergiIndiaIoni Bowcher PROPOSAL
Chavez BriddickSpainIvan Magalhaes NEGOTIATION
Costa DilliardRussiaBernardo Dominic NEW
Antonio CaudyArgentinaXuxue Feng NEGOTIATION
Arvin AlbaresGermanyBernardo Dominic QUALIFIED
Clifford RimBrazilStephen Shaw UNQUALIFIED
Leon OldroydUnited KingdomXuxue Feng PROPOSAL
Maisha RulapaughBrazilAsiya Javayant UNQUALIFIED
Clifford RimGermanyElwin Sharvill UNQUALIFIED
Ashley DoeBrazilElwin Sharvill NEW
Jones VocelkaArgentinaAmy Elsner NEW
Leon OldroydRussiaAmy Elsner NEGOTIATION
Juan WieserItalyAsiya Javayant NEW
Murillo MaletUnited KingdomAsiya Javayant NEGOTIATION
Munro FerenczCanadaOnyama Limba QUALIFIED
David DarakjyItalyBernardo Dominic NEW
Adams MorascaCanadaOnyama Limba PROPOSAL
Costa DilliardUnited KingdomXuxue Feng NEW
Leja CaldareraArgentinaAnna Fali PROPOSAL
David DarakjyJapanAnna Fali NEW
Darci PoquetteItalyIvan Magalhaes QUALIFIED
Ivar PaprockiItalyIvan Magalhaes NEW
Jones VocelkaAustraliaStephen Shaw QUALIFIED
Ivar PaprockiRussiaElwin Sharvill RENEWAL
Wickens NestleFranceIvan Magalhaes PROPOSAL
Morrow RutaBrazilOnyama Limba PROPOSAL
Mujtaba NickaSpainAsiya Javayant NEGOTIATION
Claire TollnerSpainAmy Elsner QUALIFIED
David DarakjyItalyAmy Elsner NEW
Salvatore StockhamFranceAnna Fali NEGOTIATION
Aruna FigeroaAustraliaStephen Shaw NEGOTIATION
Tony FollerGermanyIvan Magalhaes NEGOTIATION
Clifford RimFranceAnna Fali PROPOSAL
Maria MarrierSpainAmy Elsner RENEWAL
Murillo MaletSpainAmy Elsner 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>