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
Leon OldroydUnited KingdomElwin Sharvill PROPOSAL
Morrow RutaAustraliaAmy Elsner RENEWAL
David DarakjyIndiaBernardo Dominic NEGOTIATION
Kadeem FlosiAustraliaIoni Bowcher RENEWAL
David DarakjyArgentinaStephen Shaw RENEWAL
Misaki RoysterArgentinaAnna Fali RENEWAL
Leon OldroydGermanyAsiya Javayant PROPOSAL
Cody SaylorsFranceXuxue Feng NEGOTIATION
Adams MorascaJapanIoni Bowcher NEW
Silvio SlusarskiAustraliaXuxue Feng NEGOTIATION
Deepesh ChuiArgentinaIvan Magalhaes RENEWAL
Ashley DoeCanadaAnna Fali NEGOTIATION
Maisha RulapaughAustraliaOnyama Limba NEW
Francesco ShinkoIndiaIoni Bowcher QUALIFIED
Adams MorascaArgentinaAsiya Javayant PROPOSAL
Clifford RimArgentinaBernardo Dominic PROPOSAL
Mujtaba NickaUnited KingdomElwin Sharvill PROPOSAL
Maisha RulapaughAustraliaIvan Magalhaes UNQUALIFIED
Faith GillianIndiaBernardo Dominic RENEWAL
Johnson SergiAustraliaAsiya Javayant RENEWAL
Jones VocelkaGermanyAmy Elsner UNQUALIFIED
Ashley DoeGermanyAmy Elsner NEW
Alejandro PerinFranceAsiya Javayant RENEWAL
Arvin AlbaresUnited KingdomStephen Shaw QUALIFIED
Leon OldroydBrazilStephen Shaw NEGOTIATION
Leja CaldareraSpainAsiya Javayant NEW
James ButtSpainOnyama Limba NEGOTIATION
Jeanfrancois VenereUnited KingdomBernardo Dominic NEW
Maisha RulapaughBrazilIvan Magalhaes UNQUALIFIED
Murillo MaletSpainAsiya Javayant PROPOSAL
Francesco ShinkoIndiaAsiya Javayant NEGOTIATION
James ButtGermanyAmy Elsner NEW
Isabel BowleyItalyIoni Bowcher PROPOSAL
Clifford RimBrazilAnna Fali QUALIFIED
Chavez BriddickItalyElwin Sharvill UNQUALIFIED
Deepesh ChuiUnited KingdomBernardo Dominic UNQUALIFIED
Isabel BowleyIndiaAnna Fali NEGOTIATION
Stacey MacleadRussiaAsiya Javayant UNQUALIFIED
Izzy GarufiIndiaOnyama Limba RENEWAL
Munro FerenczArgentinaIvan Magalhaes RENEWAL
Maria MarrierCanadaIoni Bowcher PROPOSAL
Mujtaba NickaBrazilXuxue Feng UNQUALIFIED
Aruna FigeroaArgentinaStephen Shaw QUALIFIED
Alejandro PerinGermanyXuxue Feng PROPOSAL
Jennifer AmigonAustraliaStephen Shaw QUALIFIED
Wickens NestleCanadaOnyama Limba PROPOSAL
Antonio CaudyFranceAsiya Javayant QUALIFIED
Aditya KuskoJapanStephen Shaw QUALIFIED
Ashley DoeBrazilIvan Magalhaes UNQUALIFIED
Alejandro PerinSpainIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzGermanyIoni Bowcher PROPOSAL
Juan WieserItalyAsiya Javayant QUALIFIED
Julie StensethCanadaIoni Bowcher QUALIFIED
Nicolas IturbideUnited KingdomXuxue Feng RENEWAL
Julie StensethSpainAnna Fali PROPOSAL
Claire TollnerCanadaXuxue Feng UNQUALIFIED
Maria MarrierUnited KingdomIvan Magalhaes NEGOTIATION
Ricardo GauchoSpainIoni Bowcher NEGOTIATION
Emily WhobreyUnited KingdomIoni Bowcher RENEWAL
Arvin AlbaresAustraliaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon OldroydUnited Kingdom2021-03-28Printing Dimensions RENEWAL79Elwin Sharvill
1001Julie StensethAustralia2021-03-23Benton, John B Jr UNQUALIFIED60Xuxue Feng
1002Deepesh ChuiSpain2021-03-18Chapman, Ross E Esq PROPOSAL26Ioni Bowcher
1003Arvin AlbaresIndia2021-03-29Morlong Associates NEGOTIATION30Anna Fali
1004Mujtaba NickaFrance2021-04-11Chapman, Ross E Esq NEW32Elwin Sharvill
1005Salvatore StockhamCanada2021-04-03Feltz Printing Service UNQUALIFIED58Onyama Limba
1006Jefferson SchemmerJapan2021-04-13Feiner Bros PROPOSAL1Asiya Javayant
1007Morrow RutaArgentina2021-04-07Benton, John B Jr UNQUALIFIED44Asiya Javayant
1008Maria MarrierSpain2021-03-22Rousseaux, Michael Esq RENEWAL36Elwin Sharvill
1009Alejandro PerinJapan2021-03-29Chemel, James L Cpa RENEWAL68Onyama Limba
1010Maisha RulapaughCanada2021-04-11Chanay, Jeffrey A Esq RENEWAL0Elwin Sharvill
1011Kadeem FlosiRussia2021-03-26Chemel, James L Cpa RENEWAL90Asiya Javayant
1012Octavia MaletBrazil2021-03-23Chapman, Ross E Esq UNQUALIFIED1Amy Elsner
1013Murillo MaletJapan2021-03-23Chemel, James L Cpa QUALIFIED38Xuxue Feng
1014Faith GillianIndia2021-04-07Buckley Miller Wright NEGOTIATION91Asiya Javayant
1015Smith GlickBrazil2021-04-03Chemel, James L Cpa UNQUALIFIED23Ivan Magalhaes
1016Costa DilliardRussia2021-03-31Chanay, Jeffrey A Esq PROPOSAL41Ivan Magalhaes
1017Maria MarrierRussia2021-04-13Commercial Press NEGOTIATION67Bernardo Dominic
1018Smith GlickCanada2021-03-27King, Christopher A Esq RENEWAL0Ioni Bowcher
1019Maisha RulapaughIndia2021-03-20Chemel, James L Cpa UNQUALIFIED54Elwin Sharvill
1020Nicolas IturbideJapan2021-03-23Commercial Press NEW73Elwin Sharvill
1021Mayumi KolmetzArgentina2021-03-25Rangoni Of Florence UNQUALIFIED67Asiya Javayant
1022Jefferson SchemmerBrazil2021-03-29Feltz Printing Service UNQUALIFIED1Onyama Limba
1023Claire TollnerUnited Kingdom2021-04-03Truhlar And Truhlar Attys QUALIFIED83Bernardo Dominic
1024Wickens NestleRussia2021-03-26Commercial Press PROPOSAL27Stephen Shaw
1025Izzy GarufiCanada2021-03-25Benton, John B Jr RENEWAL83Asiya Javayant
1026Costa DilliardCanada2021-03-22Chapman, Ross E Esq NEGOTIATION8Amy Elsner
1027Ivar PaprockiFrance2021-03-24Commercial Press RENEWAL65Amy Elsner
1028Murillo MaletJapan2021-03-30Feiner Bros NEGOTIATION8Elwin Sharvill
1029Leja CaldareraUnited Kingdom2021-03-26Morlong Associates NEW67Ioni Bowcher
1030Arvin AlbaresSpain2021-04-05Chemel, James L Cpa NEW37Anna Fali
1031Rodrigues CampainIndia2021-04-09Dorl, James J Esq NEGOTIATION12Bernardo Dominic
1032Adams MorascaGermany2021-04-02Buckley Miller Wright NEGOTIATION83Asiya Javayant
1033Sinclair WaycottIndia2021-03-27Chapman, Ross E Esq QUALIFIED56Asiya Javayant
1034Wickens NestleUnited Kingdom2021-04-15Truhlar And Truhlar Attys QUALIFIED60Xuxue Feng
1035James ButtJapan2021-04-07Feltz Printing Service NEW9Ivan Magalhaes
1036Antonio CaudyGermany2021-03-21Rousseaux, Michael Esq PROPOSAL30Asiya Javayant
1037Ashley DoeFrance2021-03-31Feiner Bros PROPOSAL61Asiya Javayant
1038Jeanfrancois VenereItaly2021-04-14Buckley Miller Wright RENEWAL18Amy Elsner
1039Kaitlin OstroskyUnited Kingdom2021-04-01Printing Dimensions PROPOSAL2Asiya Javayant
1040Clifford RimUnited Kingdom2021-04-10Feltz Printing Service RENEWAL55Anna Fali
1041Francesco ShinkoIndia2021-03-30Benton, John B Jr RENEWAL57Anna Fali
1042Kadeem FlosiUnited Kingdom2021-04-02King, Christopher A Esq NEGOTIATION70Stephen Shaw
1043Alejandro PerinCanada2021-03-27Rousseaux, Michael Esq NEW72Stephen Shaw
1044Cody SaylorsRussia2021-04-15Chapman, Ross E Esq UNQUALIFIED62Anna Fali
1045Jeanfrancois VenereIndia2021-04-13Feiner Bros QUALIFIED9Anna Fali
1046Jeanfrancois VenereCanada2021-03-28Rousseaux, Michael Esq QUALIFIED58Ivan Magalhaes
1047Costa DilliardCanada2021-04-06Rousseaux, Michael Esq RENEWAL20Asiya Javayant
1048Nicolas IturbideSpain2021-04-14Morlong Associates NEW19Asiya Javayant
1049Tony FollerBrazil2021-03-29Rangoni Of Florence PROPOSAL53Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Kadeem FlosiBrazilStephen Shaw RENEWAL
Misaki RoysterItalyElwin Sharvill RENEWAL
Morrow RutaAustraliaOnyama Limba UNQUALIFIED
Izzy GarufiAustraliaXuxue Feng UNQUALIFIED
Izzy GarufiAustraliaIvan Magalhaes UNQUALIFIED
Leja CaldareraSpainAmy Elsner NEGOTIATION
Leon OldroydJapanIvan Magalhaes NEW
Antonio CaudySpainOnyama Limba NEGOTIATION
Leja CaldareraBrazilAsiya Javayant NEW
Adams MorascaIndiaIoni Bowcher RENEWAL
Jefferson SchemmerAustraliaOnyama Limba PROPOSAL
Maisha RulapaughArgentinaIoni Bowcher QUALIFIED
Adams MorascaRussiaAsiya Javayant NEW
Darci PoquetteGermanyElwin Sharvill UNQUALIFIED
Murillo MaletItalyAsiya Javayant QUALIFIED
Adams MorascaBrazilAmy Elsner RENEWAL
Juan WieserUnited KingdomElwin Sharvill RENEWAL
Aika InouyeJapanOnyama Limba NEW
Claire TollnerIndiaAsiya Javayant NEW
Jefferson SchemmerIndiaAnna Fali NEW
Stacey MacleadItalyStephen Shaw NEW
Stacey MacleadGermanyOnyama Limba RENEWAL
Ivar PaprockiBrazilOnyama Limba QUALIFIED
Kaitlin OstroskyItalyElwin Sharvill NEGOTIATION
Smith GlickFranceAnna Fali NEW
Stacey MacleadSpainElwin Sharvill UNQUALIFIED
Silvio SlusarskiUnited KingdomAnna Fali NEGOTIATION
Jeanfrancois VenereRussiaAsiya Javayant RENEWAL
Claire TollnerUnited KingdomIoni Bowcher PROPOSAL
Claire TollnerUnited KingdomAsiya Javayant QUALIFIED
Aika InouyeGermanyElwin Sharvill RENEWAL
Ivar PaprockiArgentinaXuxue Feng NEW
Costa DilliardFranceIvan Magalhaes UNQUALIFIED
Aditya KuskoAustraliaAnna Fali UNQUALIFIED
Johnson SergiArgentinaAnna Fali NEGOTIATION
Clifford RimItalyBernardo Dominic NEGOTIATION
Kaitlin OstroskyUnited KingdomAsiya Javayant PROPOSAL
Kaitlin OstroskyIndiaIvan Magalhaes UNQUALIFIED
Smith GlickSpainAnna Fali NEW
Faith GillianUnited KingdomIvan Magalhaes RENEWAL
Munro FerenczIndiaElwin Sharvill PROPOSAL
James ButtSpainAnna Fali RENEWAL
Claire TollnerIndiaAnna Fali NEGOTIATION
Claire TollnerFranceAmy Elsner RENEWAL
Mujtaba NickaUnited KingdomAmy Elsner NEW
Chavez BriddickFranceAnna Fali RENEWAL
Misaki RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Murillo MaletFranceStephen Shaw NEGOTIATION
Aika InouyeItalyIvan Magalhaes QUALIFIED
Adams MorascaUnited KingdomElwin Sharvill NEW
Frozen Columns
Name
Clifford Rim
Smith Glick
Ivar Paprocki
Claire Tollner
Johnson Sergi
Jefferson Schemmer
Salvatore Stockham
Cody Saylors
Salvatore Stockham
Izzy Garufi
Jeanfrancois Venere
Aika Inouye
Silvio Slusarski
Isabel Bowley
David Darakjy
Leon Oldroyd
Claire Tollner
Kaitlin Ostrosky
Costa Dilliard
Silvio Slusarski
Aruna Figeroa
Juan Wieser
Tony Foller
Kadeem Flosi
Jeanfrancois Venere
Misaki Royster
Mayumi Kolmetz
Faith Gillian
Silvio Slusarski
Jefferson Schemmer
Kadeem Flosi
Silvio Slusarski
Jeanfrancois Venere
Alejandro Perin
Arvin Albares
Faith Gillian
Mujtaba Nicka
Ricardo Gaucho
Kadeem Flosi
Salvatore Stockham
Murillo Malet
Greenwood Bolognia
Rodrigues Campain
Ricardo Gaucho
James Butt
Faith Gillian
Faith Gillian
Leon Oldroyd
Nicolas Iturbide
Octavia Malet
IdCountryDate
1000Brazil2021-04-13
1001Spain2021-03-31
1002Germany2021-03-26
1003Canada2021-04-03
1004Canada2021-03-27
1005Germany2021-04-11
1006Brazil2021-03-26
1007Australia2021-03-31
1008Australia2021-03-25
1009France2021-03-30
1010Russia2021-04-16
1011Brazil2021-03-26
1012Brazil2021-04-14
1013Germany2021-04-03
1014Brazil2021-03-25
1015Russia2021-04-06
1016Australia2021-04-06
1017Brazil2021-04-15
1018Canada2021-04-07
1019Spain2021-03-20
1020Spain2021-04-07
1021Germany2021-04-11
1022Canada2021-04-06
1023Germany2021-03-20
1024United Kingdom2021-03-31
1025Japan2021-04-05
1026Brazil2021-03-19
1027Russia2021-03-23
1028France2021-03-19
1029Canada2021-03-22
1030Australia2021-04-04
1031Spain2021-04-10
1032India2021-03-26
1033Australia2021-04-13
1034Argentina2021-03-19
1035Argentina2021-04-10
1036United Kingdom2021-04-13
1037Japan2021-03-31
1038Russia2021-04-09
1039United Kingdom2021-03-18
1040Russia2021-03-30
1041United Kingdom2021-03-24
1042Germany2021-04-06
1043Japan2021-03-29
1044Japan2021-04-12
1045United Kingdom2021-03-28
1046France2021-04-08
1047France2021-04-09
1048Italy2021-03-20
1049Canada2021-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserSpainIvan Magalhaes NEW
Deepesh ChuiBrazilIoni Bowcher QUALIFIED
Darci PoquetteArgentinaAmy Elsner QUALIFIED
Chavez BriddickBrazilOnyama Limba UNQUALIFIED
Izzy GarufiItalyBernardo Dominic UNQUALIFIED
Jennifer AmigonBrazilIvan Magalhaes UNQUALIFIED
Deepesh ChuiCanadaXuxue Feng RENEWAL
David DarakjyJapanXuxue Feng QUALIFIED
Rodrigues CampainArgentinaIoni Bowcher NEGOTIATION
Jefferson SchemmerIndiaAmy Elsner PROPOSAL
Stacey MacleadRussiaXuxue Feng UNQUALIFIED
Munro FerenczGermanyBernardo Dominic NEW
Stacey MacleadSpainAsiya Javayant QUALIFIED
David DarakjyJapanElwin Sharvill UNQUALIFIED
Costa DilliardAustraliaElwin Sharvill RENEWAL
Adams MorascaArgentinaStephen Shaw NEGOTIATION
Aika InouyeGermanyAsiya Javayant RENEWAL
Smith GlickAustraliaXuxue Feng PROPOSAL
Jeanfrancois VenereGermanyBernardo Dominic QUALIFIED
Clifford RimFranceBernardo Dominic UNQUALIFIED
Misaki RoysterFranceAsiya Javayant RENEWAL
James ButtRussiaBernardo Dominic RENEWAL
Julie StensethJapanAmy Elsner PROPOSAL
David DarakjyIndiaAsiya Javayant NEGOTIATION
Leon OldroydGermanyIvan Magalhaes UNQUALIFIED
Mayumi KolmetzArgentinaIoni Bowcher NEW
Deepesh ChuiIndiaAmy Elsner QUALIFIED
David DarakjyAustraliaAmy Elsner QUALIFIED
Rodrigues CampainItalyBernardo Dominic NEGOTIATION
Misaki RoysterRussiaIoni Bowcher QUALIFIED
Ivar PaprockiGermanyAsiya Javayant NEGOTIATION
Darci PoquetteIndiaIoni Bowcher RENEWAL
Stacey MacleadCanadaAsiya Javayant NEGOTIATION
Jefferson SchemmerJapanAnna Fali NEW
Julie StensethItalyStephen Shaw UNQUALIFIED
Wickens NestleBrazilAmy Elsner RENEWAL
Maisha RulapaughUnited KingdomOnyama Limba NEGOTIATION
Jennifer AmigonSpainIoni Bowcher NEW
Murillo MaletAustraliaBernardo Dominic RENEWAL
Jennifer AmigonArgentinaElwin Sharvill QUALIFIED

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