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
Greenwood BologniaAustraliaAsiya Javayant UNQUALIFIED
James ButtItalyOnyama Limba NEW
Adams MorascaGermanyBernardo Dominic RENEWAL
Ashley DoeArgentinaElwin Sharvill PROPOSAL
Isabel BowleyCanadaXuxue Feng PROPOSAL
Alejandro PerinGermanyAmy Elsner PROPOSAL
James ButtRussiaAnna Fali QUALIFIED
Antonio CaudyIndiaStephen Shaw PROPOSAL
Stacey MacleadGermanyXuxue Feng NEGOTIATION
Maria MarrierFranceIvan Magalhaes UNQUALIFIED
Smith GlickBrazilAsiya Javayant RENEWAL
Mayumi KolmetzCanadaElwin Sharvill NEGOTIATION
Smith GlickGermanyAsiya Javayant RENEWAL
Faith GillianCanadaIoni Bowcher NEGOTIATION
Jones VocelkaArgentinaOnyama Limba NEW
Isabel BowleyUnited KingdomOnyama Limba QUALIFIED
Jeanfrancois VenereSpainIvan Magalhaes NEW
Clifford RimFranceStephen Shaw QUALIFIED
Alejandro PerinFranceBernardo Dominic NEW
Juan WieserJapanIvan Magalhaes NEW
Julie StensethJapanXuxue Feng NEGOTIATION
Clifford RimJapanElwin Sharvill UNQUALIFIED
Claire TollnerGermanyOnyama Limba NEW
Aruna FigeroaIndiaAsiya Javayant NEGOTIATION
Claire TollnerCanadaElwin Sharvill NEW
Faith GillianItalyIoni Bowcher UNQUALIFIED
Mujtaba NickaAustraliaAmy Elsner UNQUALIFIED
Salvatore StockhamAustraliaAnna Fali PROPOSAL
Julie StensethCanadaBernardo Dominic RENEWAL
Francesco ShinkoJapanAsiya Javayant QUALIFIED
Faith GillianBrazilStephen Shaw PROPOSAL
Jennifer AmigonRussiaAnna Fali UNQUALIFIED
Leon OldroydAustraliaIvan Magalhaes RENEWAL
Rodrigues CampainCanadaOnyama Limba NEW
Johnson SergiJapanXuxue Feng QUALIFIED
Leon OldroydBrazilElwin Sharvill NEW
Morrow RutaCanadaBernardo Dominic RENEWAL
Ashley DoeSpainAnna Fali UNQUALIFIED
Greenwood BologniaAustraliaStephen Shaw UNQUALIFIED
Johnson SergiIndiaStephen Shaw RENEWAL
Kaitlin OstroskyRussiaXuxue Feng QUALIFIED
Octavia MaletGermanyAsiya Javayant NEW
Misaki RoysterIndiaStephen Shaw QUALIFIED
Deepesh ChuiAustraliaBernardo Dominic UNQUALIFIED
Claire TollnerIndiaBernardo Dominic RENEWAL
Kadeem FlosiIndiaBernardo Dominic UNQUALIFIED
Jones VocelkaRussiaStephen Shaw PROPOSAL
Clifford RimItalyElwin Sharvill NEW
Silvio SlusarskiCanadaIvan Magalhaes RENEWAL
Emily WhobreyCanadaXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Morrow RutaBrazilStephen Shaw NEGOTIATION
Morrow RutaItalyAnna Fali QUALIFIED
Sinclair WaycottAustraliaXuxue Feng UNQUALIFIED
Octavia MaletGermanyBernardo Dominic NEGOTIATION
Antonio CaudyArgentinaElwin Sharvill RENEWAL
Johnson SergiRussiaAnna Fali NEW
Smith GlickUnited KingdomXuxue Feng PROPOSAL
Rodrigues CampainRussiaOnyama Limba NEGOTIATION
Murillo MaletJapanOnyama Limba PROPOSAL
Sinclair WaycottArgentinaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyItaly2021-03-26Buckley Miller Wright RENEWAL14Anna Fali
1001Mujtaba NickaBrazil2021-04-14Truhlar And Truhlar Attys RENEWAL53Onyama Limba
1002Misaki RoysterSpain2021-04-02Chanay, Jeffrey A Esq QUALIFIED74Ivan Magalhaes
1003Leja CaldareraAustralia2021-04-20Rangoni Of Florence QUALIFIED57Anna Fali
1004Mayumi KolmetzIndia2021-04-21Commercial Press RENEWAL48Onyama Limba
1005Maisha RulapaughUnited Kingdom2021-04-05Feltz Printing Service UNQUALIFIED27Asiya Javayant
1006Arvin AlbaresAustralia2021-04-01Commercial Press PROPOSAL42Amy Elsner
1007Emily WhobreyCanada2021-03-26Printing Dimensions NEGOTIATION41Bernardo Dominic
1008Adams MorascaCanada2021-04-18King, Christopher A Esq PROPOSAL74Bernardo Dominic
1009Kaitlin OstroskyItaly2021-04-06Printing Dimensions NEGOTIATION17Bernardo Dominic
1010Julie StensethGermany2021-04-06Feiner Bros NEGOTIATION25Amy Elsner
1011Sinclair WaycottFrance2021-04-21Benton, John B Jr PROPOSAL73Stephen Shaw
1012Chavez BriddickSpain2021-04-19Feltz Printing Service QUALIFIED52Ioni Bowcher
1013Stacey MacleadIndia2021-04-18Commercial Press PROPOSAL64Onyama Limba
1014Maria MarrierUnited Kingdom2021-04-09Rangoni Of Florence PROPOSAL63Ivan Magalhaes
1015Jeanfrancois VenereRussia2021-04-08Dorl, James J Esq RENEWAL89Stephen Shaw
1016Munro FerenczIndia2021-04-14Morlong Associates QUALIFIED39Ivan Magalhaes
1017Nicolas IturbideIndia2021-03-24Rangoni Of Florence NEGOTIATION81Xuxue Feng
1018Isabel BowleyUnited Kingdom2021-03-31Chemel, James L Cpa NEGOTIATION18Onyama Limba
1019David DarakjyFrance2021-04-21Morlong Associates NEW46Amy Elsner
1020Smith GlickUnited Kingdom2021-04-02Morlong Associates UNQUALIFIED52Asiya Javayant
1021Cody SaylorsUnited Kingdom2021-03-29King, Christopher A Esq QUALIFIED0Ivan Magalhaes
1022Murillo MaletJapan2021-04-15Commercial Press NEGOTIATION78Onyama Limba
1023Octavia MaletFrance2021-04-21Commercial Press NEW17Amy Elsner
1024Isabel BowleyAustralia2021-04-08Dorl, James J Esq QUALIFIED85Ivan Magalhaes
1025Ricardo GauchoIndia2021-04-04Buckley Miller Wright QUALIFIED62Asiya Javayant
1026Maria MarrierUnited Kingdom2021-04-10Feltz Printing Service NEGOTIATION31Anna Fali
1027Chavez BriddickBrazil2021-04-05Feltz Printing Service PROPOSAL85Anna Fali
1028Murillo MaletItaly2021-03-23King, Christopher A Esq RENEWAL34Asiya Javayant
1029Sinclair WaycottGermany2021-04-01Feiner Bros NEGOTIATION90Ivan Magalhaes
1030Leja CaldareraGermany2021-03-27Morlong Associates NEGOTIATION71Onyama Limba
1031Aruna FigeroaFrance2021-03-25Printing Dimensions RENEWAL4Anna Fali
1032Aruna FigeroaItaly2021-04-11Dorl, James J Esq QUALIFIED6Onyama Limba
1033Juan WieserArgentina2021-04-01Commercial Press RENEWAL72Onyama Limba
1034Arvin AlbaresFrance2021-04-19Truhlar And Truhlar Attys RENEWAL25Onyama Limba
1035Tony FollerAustralia2021-04-07Commercial Press PROPOSAL10Anna Fali
1036Ricardo GauchoAustralia2021-03-23Morlong Associates UNQUALIFIED85Stephen Shaw
1037Maria MarrierArgentina2021-03-30Chanay, Jeffrey A Esq NEGOTIATION54Onyama Limba
1038Aditya KuskoFrance2021-04-15Chapman, Ross E Esq NEGOTIATION58Bernardo Dominic
1039Alejandro PerinRussia2021-04-13Chanay, Jeffrey A Esq RENEWAL47Amy Elsner
1040Kadeem FlosiUnited Kingdom2021-04-01Morlong Associates NEW81Ivan Magalhaes
1041Greenwood BologniaBrazil2021-04-07Dorl, James J Esq QUALIFIED68Anna Fali
1042Clifford RimSpain2021-04-07Morlong Associates QUALIFIED23Ioni Bowcher
1043Mujtaba NickaGermany2021-03-29Commercial Press NEGOTIATION3Xuxue Feng
1044Costa DilliardFrance2021-04-04Feltz Printing Service NEW69Bernardo Dominic
1045David DarakjyGermany2021-04-07Benton, John B Jr PROPOSAL77Xuxue Feng
1046Mayumi KolmetzArgentina2021-03-26Printing Dimensions RENEWAL38Asiya Javayant
1047Smith GlickCanada2021-04-14Printing Dimensions PROPOSAL42Stephen Shaw
1048Johnson SergiJapan2021-03-23Feiner Bros PROPOSAL0Onyama Limba
1049Sinclair WaycottFrance2021-03-31King, Christopher A Esq QUALIFIED52Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Johnson SergiBrazilXuxue Feng NEGOTIATION
Silvio SlusarskiIndiaBernardo Dominic NEGOTIATION
Juan WieserBrazilIoni Bowcher RENEWAL
Jennifer AmigonCanadaOnyama Limba UNQUALIFIED
Kadeem FlosiUnited KingdomIoni Bowcher QUALIFIED
Alejandro PerinSpainElwin Sharvill RENEWAL
James ButtAustraliaAsiya Javayant RENEWAL
Jeanfrancois VenereUnited KingdomBernardo Dominic NEW
Tony FollerGermanyIoni Bowcher NEGOTIATION
Jefferson SchemmerAustraliaOnyama Limba UNQUALIFIED
Jennifer AmigonRussiaXuxue Feng QUALIFIED
Leon OldroydRussiaIoni Bowcher UNQUALIFIED
Salvatore StockhamArgentinaAmy Elsner QUALIFIED
Clifford RimSpainAsiya Javayant RENEWAL
Wickens NestleAustraliaAmy Elsner NEW
Costa DilliardIndiaIvan Magalhaes NEW
Kadeem FlosiCanadaAmy Elsner RENEWAL
Salvatore StockhamBrazilOnyama Limba NEGOTIATION
Francesco ShinkoJapanIoni Bowcher NEGOTIATION
Aruna FigeroaIndiaElwin Sharvill UNQUALIFIED
Darci PoquetteGermanyIvan Magalhaes RENEWAL
Jones VocelkaGermanyIvan Magalhaes PROPOSAL
Rodrigues CampainItalyElwin Sharvill UNQUALIFIED
Morrow RutaGermanyElwin Sharvill QUALIFIED
Cody SaylorsArgentinaAmy Elsner NEGOTIATION
Wickens NestleRussiaIvan Magalhaes QUALIFIED
Leja CaldareraRussiaElwin Sharvill NEGOTIATION
Izzy GarufiJapanAmy Elsner PROPOSAL
Johnson SergiIndiaAnna Fali RENEWAL
Salvatore StockhamCanadaOnyama Limba RENEWAL
Salvatore StockhamBrazilBernardo Dominic RENEWAL
Antonio CaudyGermanyIoni Bowcher QUALIFIED
Chavez BriddickRussiaAsiya Javayant PROPOSAL
Ashley DoeArgentinaAmy Elsner PROPOSAL
Antonio CaudyArgentinaAnna Fali UNQUALIFIED
Jones VocelkaIndiaAnna Fali UNQUALIFIED
Chavez BriddickItalyBernardo Dominic UNQUALIFIED
Johnson SergiArgentinaIvan Magalhaes PROPOSAL
Faith GillianFranceElwin Sharvill NEGOTIATION
Jefferson SchemmerGermanyIvan Magalhaes PROPOSAL
Kaitlin OstroskyUnited KingdomElwin Sharvill NEW
Aika InouyeArgentinaOnyama Limba UNQUALIFIED
David DarakjyCanadaBernardo Dominic RENEWAL
Smith GlickGermanyOnyama Limba NEGOTIATION
Sinclair WaycottJapanAsiya Javayant NEGOTIATION
Clifford RimGermanyIoni Bowcher RENEWAL
Nicolas IturbideAustraliaElwin Sharvill UNQUALIFIED
Costa DilliardJapanIvan Magalhaes NEGOTIATION
Claire TollnerRussiaAnna Fali UNQUALIFIED
Murillo MaletItalyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Juan Wieser
Maria Marrier
Kadeem Flosi
Morrow Ruta
Kadeem Flosi
Izzy Garufi
Clifford Rim
Clifford Rim
Nicolas Iturbide
Tony Foller
Maisha Rulapaugh
Morrow Ruta
Misaki Royster
Johnson Sergi
Julie Stenseth
Aika Inouye
Adams Morasca
Ricardo Gaucho
James Butt
Deepesh Chui
Alejandro Perin
Jefferson Schemmer
Sinclair Waycott
Julie Stenseth
Julie Stenseth
Smith Glick
Ivar Paprocki
Octavia Malet
Stacey Maclead
Leja Caldarera
Johnson Sergi
James Butt
Leon Oldroyd
James Butt
Ivar Paprocki
Emily Whobrey
Izzy Garufi
Jennifer Amigon
Jennifer Amigon
Kaitlin Ostrosky
Silvio Slusarski
Kaitlin Ostrosky
Ivar Paprocki
Kadeem Flosi
Antonio Caudy
Leja Caldarera
Izzy Garufi
Sinclair Waycott
Leon Oldroyd
Aika Inouye
IdCountryDate
1000Brazil2021-04-10
1001Argentina2021-03-30
1002Japan2021-04-13
1003Italy2021-04-13
1004United Kingdom2021-04-07
1005United Kingdom2021-04-20
1006United Kingdom2021-04-08
1007Italy2021-04-02
1008Spain2021-03-25
1009Australia2021-04-01
1010Australia2021-04-04
1011Argentina2021-03-29
1012India2021-04-12
1013Spain2021-04-11
1014Italy2021-04-13
1015Spain2021-04-09
1016Argentina2021-04-14
1017France2021-04-20
1018France2021-04-12
1019Russia2021-04-21
1020United Kingdom2021-04-02
1021India2021-04-05
1022Brazil2021-04-01
1023Australia2021-03-26
1024United Kingdom2021-04-10
1025United Kingdom2021-04-05
1026Russia2021-04-09
1027Australia2021-04-06
1028Australia2021-04-14
1029Spain2021-04-15
1030Spain2021-04-07
1031Australia2021-04-16
1032France2021-04-18
1033Australia2021-04-01
1034United Kingdom2021-04-07
1035Brazil2021-04-07
1036Italy2021-04-03
1037Argentina2021-04-15
1038Germany2021-04-06
1039Australia2021-04-03
1040Russia2021-03-28
1041Brazil2021-04-21
1042Argentina2021-04-14
1043Brazil2021-03-28
1044France2021-04-05
1045India2021-03-30
1046Spain2021-04-06
1047United Kingdom2021-03-28
1048India2021-04-01
1049Brazil2021-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeSpainIvan Magalhaes RENEWAL
Misaki RoysterAustraliaIoni Bowcher PROPOSAL
Octavia MaletUnited KingdomXuxue Feng RENEWAL
Mayumi KolmetzAustraliaAsiya Javayant PROPOSAL
Morrow RutaUnited KingdomAsiya Javayant NEW
Clifford RimAustraliaIoni Bowcher RENEWAL
Izzy GarufiBrazilAnna Fali NEGOTIATION
James ButtJapanOnyama Limba UNQUALIFIED
Kadeem FlosiCanadaElwin Sharvill QUALIFIED
Jennifer AmigonArgentinaIvan Magalhaes QUALIFIED
Deepesh ChuiIndiaIoni Bowcher RENEWAL
Jennifer AmigonJapanElwin Sharvill QUALIFIED
Nicolas IturbideItalyStephen Shaw NEW
Murillo MaletItalyElwin Sharvill PROPOSAL
Nicolas IturbideGermanyBernardo Dominic PROPOSAL
Murillo MaletGermanyXuxue Feng NEW
Antonio CaudyItalyElwin Sharvill NEGOTIATION
Deepesh ChuiSpainStephen Shaw NEW
Mujtaba NickaIndiaAsiya Javayant QUALIFIED
Adams MorascaItalyAmy Elsner RENEWAL
Kadeem FlosiBrazilStephen Shaw UNQUALIFIED
Murillo MaletIndiaAmy Elsner QUALIFIED
Tony FollerBrazilStephen Shaw UNQUALIFIED
Jeanfrancois VenereCanadaStephen Shaw UNQUALIFIED
Alejandro PerinAustraliaBernardo Dominic NEGOTIATION
Aruna FigeroaAustraliaElwin Sharvill QUALIFIED
Kadeem FlosiJapanXuxue Feng QUALIFIED
Izzy GarufiArgentinaXuxue Feng NEGOTIATION
Leon OldroydFranceStephen Shaw PROPOSAL
Isabel BowleyFranceElwin Sharvill PROPOSAL
Kadeem FlosiSpainBernardo Dominic QUALIFIED
Faith GillianIndiaAnna Fali NEW
Smith GlickBrazilOnyama Limba QUALIFIED
Mayumi KolmetzArgentinaXuxue Feng PROPOSAL
Alejandro PerinItalyAsiya Javayant NEGOTIATION
Aika InouyeGermanyOnyama Limba PROPOSAL
Leja CaldareraFranceStephen Shaw RENEWAL
Antonio CaudyUnited KingdomAmy Elsner NEW
Jeanfrancois VenereArgentinaXuxue Feng PROPOSAL
Tony FollerIndiaAsiya Javayant NEW

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