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
Juan WieserBrazilAmy Elsner QUALIFIED
Jennifer AmigonArgentinaElwin Sharvill PROPOSAL
Rodrigues CampainGermanyBernardo Dominic UNQUALIFIED
Isabel BowleyRussiaIvan Magalhaes NEW
Arvin AlbaresItalyIoni Bowcher QUALIFIED
Darci PoquetteItalyAnna Fali RENEWAL
Aika InouyeGermanyStephen Shaw NEW
Arvin AlbaresGermanyElwin Sharvill PROPOSAL
Leja CaldareraItalyAsiya Javayant UNQUALIFIED
Morrow RutaSpainOnyama Limba PROPOSAL
Emily WhobreyGermanyOnyama Limba RENEWAL
Ashley DoeIndiaOnyama Limba UNQUALIFIED
Francesco ShinkoCanadaStephen Shaw NEGOTIATION
Mayumi KolmetzSpainAmy Elsner PROPOSAL
David DarakjyAustraliaAsiya Javayant NEGOTIATION
Ricardo GauchoAustraliaElwin Sharvill RENEWAL
Maisha RulapaughJapanStephen Shaw NEGOTIATION
Rodrigues CampainGermanyXuxue Feng PROPOSAL
Misaki RoysterItalyOnyama Limba QUALIFIED
Alejandro PerinFranceIoni Bowcher QUALIFIED
Deepesh ChuiIndiaElwin Sharvill NEW
Rodrigues CampainArgentinaElwin Sharvill PROPOSAL
Izzy GarufiBrazilAsiya Javayant UNQUALIFIED
Murillo MaletCanadaXuxue Feng PROPOSAL
Antonio CaudyIndiaBernardo Dominic PROPOSAL
Ashley DoeIndiaXuxue Feng NEW
Kaitlin OstroskyUnited KingdomIvan Magalhaes RENEWAL
Mayumi KolmetzCanadaAnna Fali PROPOSAL
Munro FerenczCanadaElwin Sharvill UNQUALIFIED
Arvin AlbaresSpainXuxue Feng QUALIFIED
Silvio SlusarskiCanadaOnyama Limba PROPOSAL
Leon OldroydJapanAnna Fali UNQUALIFIED
Tony FollerSpainStephen Shaw NEW
Wickens NestleCanadaBernardo Dominic NEGOTIATION
Aruna FigeroaSpainAsiya Javayant RENEWAL
Johnson SergiCanadaAsiya Javayant RENEWAL
Antonio CaudySpainOnyama Limba PROPOSAL
Julie StensethUnited KingdomXuxue Feng UNQUALIFIED
Octavia MaletIndiaIoni Bowcher NEW
Alejandro PerinUnited KingdomBernardo Dominic NEW
Jennifer AmigonCanadaIvan Magalhaes PROPOSAL
Mayumi KolmetzFranceIvan Magalhaes NEW
Aruna FigeroaJapanOnyama Limba RENEWAL
Ivar PaprockiIndiaIoni Bowcher QUALIFIED
David DarakjyIndiaAnna Fali NEGOTIATION
Stacey MacleadUnited KingdomStephen Shaw PROPOSAL
Maisha RulapaughCanadaAnna Fali NEW
Aruna FigeroaAustraliaAnna Fali UNQUALIFIED
Murillo MaletUnited KingdomStephen Shaw RENEWAL
Jones VocelkaAustraliaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio SlusarskiItalyAsiya Javayant UNQUALIFIED
Izzy GarufiArgentinaIoni Bowcher QUALIFIED
Jeanfrancois VenereAustraliaAsiya Javayant NEGOTIATION
Darci PoquetteCanadaAmy Elsner NEGOTIATION
Alejandro PerinUnited KingdomOnyama Limba QUALIFIED
David DarakjyIndiaAmy Elsner NEW
Leja CaldareraBrazilOnyama Limba QUALIFIED
Isabel BowleyCanadaIoni Bowcher QUALIFIED
Julie StensethCanadaIvan Magalhaes RENEWAL
Ricardo GauchoAustraliaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley DoeJapan2021-03-27Benton, John B Jr NEGOTIATION79Ivan Magalhaes
1001Morrow RutaRussia2021-03-23Printing Dimensions UNQUALIFIED69Ivan Magalhaes
1002Maria MarrierJapan2021-03-30Commercial Press PROPOSAL93Ivan Magalhaes
1003Jefferson SchemmerAustralia2021-04-08Rangoni Of Florence QUALIFIED15Anna Fali
1004Cody SaylorsItaly2021-04-06Buckley Miller Wright QUALIFIED81Amy Elsner
1005Smith GlickAustralia2021-04-04Benton, John B Jr NEW52Ivan Magalhaes
1006Aika InouyeItaly2021-03-23Rousseaux, Michael Esq PROPOSAL95Xuxue Feng
1007Francesco ShinkoUnited Kingdom2021-04-10Chapman, Ross E Esq PROPOSAL28Ioni Bowcher
1008Murillo MaletCanada2021-03-22Benton, John B Jr QUALIFIED75Asiya Javayant
1009Ashley DoeArgentina2021-04-11Commercial Press NEW9Stephen Shaw
1010Francesco ShinkoJapan2021-03-27Printing Dimensions UNQUALIFIED1Elwin Sharvill
1011Octavia MaletJapan2021-04-13Rangoni Of Florence UNQUALIFIED24Elwin Sharvill
1012Sinclair WaycottSpain2021-04-01Feiner Bros NEGOTIATION39Ioni Bowcher
1013Greenwood BologniaAustralia2021-03-29Feiner Bros PROPOSAL28Xuxue Feng
1014Ivar PaprockiSpain2021-04-15Rousseaux, Michael Esq PROPOSAL67Stephen Shaw
1015Antonio CaudyAustralia2021-03-23King, Christopher A Esq PROPOSAL26Xuxue Feng
1016Isabel BowleyAustralia2021-04-07Rangoni Of Florence QUALIFIED97Amy Elsner
1017Johnson SergiCanada2021-03-31Dorl, James J Esq RENEWAL49Anna Fali
1018James ButtGermany2021-04-06Chanay, Jeffrey A Esq UNQUALIFIED65Xuxue Feng
1019Jennifer AmigonAustralia2021-03-23Printing Dimensions RENEWAL74Stephen Shaw
1020Alejandro PerinFrance2021-04-07Morlong Associates QUALIFIED77Bernardo Dominic
1021Izzy GarufiAustralia2021-04-13Feltz Printing Service NEGOTIATION78Stephen Shaw
1022Sinclair WaycottAustralia2021-03-20Feiner Bros RENEWAL65Asiya Javayant
1023Francesco ShinkoCanada2021-03-28Commercial Press UNQUALIFIED87Ioni Bowcher
1024Aika InouyeAustralia2021-04-03Chapman, Ross E Esq QUALIFIED88Asiya Javayant
1025Maisha RulapaughRussia2021-04-07Rousseaux, Michael Esq UNQUALIFIED17Amy Elsner
1026Isabel BowleyGermany2021-04-16Morlong Associates QUALIFIED82Ioni Bowcher
1027Greenwood BologniaIndia2021-04-05Morlong Associates PROPOSAL49Stephen Shaw
1028Jennifer AmigonCanada2021-03-26Rangoni Of Florence NEGOTIATION5Bernardo Dominic
1029Morrow RutaJapan2021-03-24Feltz Printing Service PROPOSAL10Bernardo Dominic
1030Aruna FigeroaUnited Kingdom2021-03-25Chemel, James L Cpa UNQUALIFIED28Bernardo Dominic
1031Jones VocelkaItaly2021-03-21Rousseaux, Michael Esq QUALIFIED48Bernardo Dominic
1032Darci PoquetteBrazil2021-03-30Chemel, James L Cpa QUALIFIED84Ioni Bowcher
1033James ButtJapan2021-04-13Chanay, Jeffrey A Esq NEGOTIATION76Amy Elsner
1034Rodrigues CampainSpain2021-04-11King, Christopher A Esq QUALIFIED2Onyama Limba
1035Jeanfrancois VenereIndia2021-04-08King, Christopher A Esq QUALIFIED75Ivan Magalhaes
1036Leon OldroydFrance2021-04-05Chanay, Jeffrey A Esq PROPOSAL36Xuxue Feng
1037Chavez BriddickAustralia2021-03-28Buckley Miller Wright RENEWAL43Amy Elsner
1038Chavez BriddickCanada2021-04-06Chanay, Jeffrey A Esq RENEWAL43Onyama Limba
1039Jefferson SchemmerFrance2021-03-28Feiner Bros QUALIFIED46Asiya Javayant
1040Deepesh ChuiArgentina2021-04-12Feltz Printing Service UNQUALIFIED8Anna Fali
1041Kadeem FlosiItaly2021-04-15Truhlar And Truhlar Attys PROPOSAL89Ivan Magalhaes
1042Arvin AlbaresBrazil2021-03-26Rangoni Of Florence UNQUALIFIED83Bernardo Dominic
1043Tony FollerJapan2021-04-13Printing Dimensions QUALIFIED31Anna Fali
1044Julie StensethBrazil2021-03-19Dorl, James J Esq UNQUALIFIED67Amy Elsner
1045Nicolas IturbideRussia2021-04-01Feltz Printing Service PROPOSAL52Ivan Magalhaes
1046Sinclair WaycottItaly2021-04-06Chanay, Jeffrey A Esq RENEWAL88Onyama Limba
1047Ricardo GauchoFrance2021-03-23Feltz Printing Service NEW16Bernardo Dominic
1048Tony FollerArgentina2021-04-12Chanay, Jeffrey A Esq UNQUALIFIED50Xuxue Feng
1049Nicolas IturbideFrance2021-03-19Commercial Press QUALIFIED52Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Ricardo GauchoRussiaBernardo Dominic NEGOTIATION
Tony FollerSpainAsiya Javayant PROPOSAL
Clifford RimSpainAmy Elsner NEW
Aditya KuskoItalyAnna Fali NEW
Ricardo GauchoArgentinaElwin Sharvill UNQUALIFIED
Adams MorascaItalyElwin Sharvill UNQUALIFIED
Sinclair WaycottRussiaAnna Fali UNQUALIFIED
Claire TollnerAustraliaIoni Bowcher UNQUALIFIED
Ashley DoeCanadaStephen Shaw RENEWAL
Murillo MaletFranceAmy Elsner PROPOSAL
James ButtFranceAsiya Javayant RENEWAL
Aruna FigeroaFranceXuxue Feng QUALIFIED
Clifford RimItalyOnyama Limba NEW
Jones VocelkaAustraliaAmy Elsner UNQUALIFIED
Stacey MacleadItalyStephen Shaw QUALIFIED
Silvio SlusarskiGermanyIoni Bowcher UNQUALIFIED
Adams MorascaIndiaIvan Magalhaes UNQUALIFIED
Greenwood BologniaUnited KingdomIoni Bowcher RENEWAL
Silvio SlusarskiFranceBernardo Dominic NEW
Mujtaba NickaArgentinaElwin Sharvill UNQUALIFIED
Salvatore StockhamArgentinaIoni Bowcher UNQUALIFIED
David DarakjyUnited KingdomBernardo Dominic NEW
Aika InouyeFranceStephen Shaw RENEWAL
Johnson SergiRussiaIvan Magalhaes NEGOTIATION
Chavez BriddickFranceXuxue Feng PROPOSAL
Aika InouyeBrazilElwin Sharvill NEW
Greenwood BologniaIndiaAsiya Javayant NEW
Murillo MaletCanadaAmy Elsner RENEWAL
Mayumi KolmetzJapanStephen Shaw UNQUALIFIED
Jennifer AmigonJapanIvan Magalhaes NEGOTIATION
Aditya KuskoCanadaAnna Fali QUALIFIED
Kadeem FlosiItalyXuxue Feng PROPOSAL
Adams MorascaFranceAsiya Javayant NEGOTIATION
Maria MarrierItalyAmy Elsner UNQUALIFIED
Costa DilliardArgentinaBernardo Dominic RENEWAL
Tony FollerAustraliaOnyama Limba QUALIFIED
Aditya KuskoFranceOnyama Limba PROPOSAL
Leja CaldareraGermanyXuxue Feng RENEWAL
Nicolas IturbideAustraliaIvan Magalhaes QUALIFIED
Smith GlickIndiaXuxue Feng QUALIFIED
Jefferson SchemmerItalyElwin Sharvill RENEWAL
Leja CaldareraIndiaAnna Fali QUALIFIED
Izzy GarufiRussiaIoni Bowcher RENEWAL
Morrow RutaUnited KingdomAmy Elsner UNQUALIFIED
Isabel BowleyGermanyAsiya Javayant NEGOTIATION
Smith GlickAustraliaAmy Elsner RENEWAL
Aika InouyeFranceAmy Elsner NEW
Maria MarrierIndiaBernardo Dominic NEGOTIATION
Izzy GarufiIndiaStephen Shaw NEGOTIATION
Ricardo GauchoJapanIvan Magalhaes NEW
Frozen Columns
Name
Maria Marrier
Deepesh Chui
Misaki Royster
Izzy Garufi
James Butt
Jennifer Amigon
Leja Caldarera
Maisha Rulapaugh
David Darakjy
Tony Foller
David Darakjy
Kadeem Flosi
Emily Whobrey
Faith Gillian
Silvio Slusarski
Maisha Rulapaugh
Jennifer Amigon
Munro Ferencz
Faith Gillian
James Butt
Octavia Malet
Smith Glick
Johnson Sergi
Maisha Rulapaugh
Misaki Royster
James Butt
Aditya Kusko
Clifford Rim
Nicolas Iturbide
Octavia Malet
Deepesh Chui
Deepesh Chui
Ricardo Gaucho
Salvatore Stockham
Silvio Slusarski
Leon Oldroyd
Aditya Kusko
Chavez Briddick
Jeanfrancois Venere
Faith Gillian
Faith Gillian
Faith Gillian
Aruna Figeroa
Julie Stenseth
Ivar Paprocki
Munro Ferencz
Mayumi Kolmetz
Jeanfrancois Venere
Darci Poquette
Stacey Maclead
IdCountryDate
1000Italy2021-04-10
1001Brazil2021-04-11
1002Japan2021-04-06
1003Germany2021-04-08
1004Argentina2021-04-11
1005Italy2021-03-31
1006India2021-04-04
1007Canada2021-04-09
1008Spain2021-04-04
1009India2021-04-05
1010Italy2021-03-26
1011United Kingdom2021-03-30
1012Argentina2021-04-17
1013Italy2021-03-28
1014France2021-03-25
1015France2021-03-20
1016France2021-03-23
1017Canada2021-04-04
1018Australia2021-03-26
1019Australia2021-03-20
1020Argentina2021-03-22
1021Australia2021-03-31
1022Canada2021-04-10
1023Russia2021-04-04
1024United Kingdom2021-03-20
1025Spain2021-03-21
1026Russia2021-04-03
1027United Kingdom2021-04-03
1028France2021-03-21
1029Russia2021-03-26
1030Germany2021-04-09
1031Italy2021-03-31
1032Australia2021-04-17
1033Canada2021-04-02
1034France2021-03-26
1035Canada2021-03-30
1036India2021-03-22
1037Spain2021-04-11
1038Argentina2021-04-05
1039Italy2021-03-19
1040Spain2021-03-21
1041Spain2021-03-19
1042United Kingdom2021-04-10
1043Australia2021-03-21
1044Australia2021-03-21
1045Japan2021-03-29
1046France2021-04-17
1047Brazil2021-03-30
1048Brazil2021-04-17
1049Australia2021-03-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie StensethGermanyAsiya Javayant NEGOTIATION
Francesco ShinkoItalyElwin Sharvill RENEWAL
Sinclair WaycottGermanyAnna Fali PROPOSAL
Wickens NestleCanadaBernardo Dominic NEW
Kaitlin OstroskyArgentinaIvan Magalhaes NEW
Morrow RutaGermanyIoni Bowcher RENEWAL
Johnson SergiCanadaAnna Fali RENEWAL
Maisha RulapaughAustraliaAmy Elsner UNQUALIFIED
Maria MarrierBrazilIoni Bowcher NEW
Silvio SlusarskiArgentinaBernardo Dominic QUALIFIED
Octavia MaletCanadaAnna Fali NEGOTIATION
Isabel BowleySpainXuxue Feng NEW
Adams MorascaCanadaIoni Bowcher RENEWAL
Francesco ShinkoArgentinaIvan Magalhaes QUALIFIED
Murillo MaletIndiaOnyama Limba NEGOTIATION
Isabel BowleyItalyAsiya Javayant PROPOSAL
Jeanfrancois VenereRussiaStephen Shaw UNQUALIFIED
Tony FollerArgentinaElwin Sharvill PROPOSAL
Ricardo GauchoJapanAsiya Javayant QUALIFIED
Murillo MaletUnited KingdomXuxue Feng QUALIFIED
Deepesh ChuiGermanyIoni Bowcher QUALIFIED
Ashley DoeAustraliaXuxue Feng NEGOTIATION
Arvin AlbaresJapanIoni Bowcher PROPOSAL
Stacey MacleadJapanXuxue Feng PROPOSAL
Arvin AlbaresItalyElwin Sharvill NEGOTIATION
Misaki RoysterItalyBernardo Dominic RENEWAL
Alejandro PerinGermanyAmy Elsner UNQUALIFIED
Kadeem FlosiIndiaAsiya Javayant NEGOTIATION
Jeanfrancois VenereItalyOnyama Limba NEGOTIATION
Murillo MaletFranceStephen Shaw PROPOSAL
Nicolas IturbideFranceAsiya Javayant NEGOTIATION
Salvatore StockhamJapanIoni Bowcher NEGOTIATION
Darci PoquetteRussiaOnyama Limba NEW
Leja CaldareraSpainAnna Fali RENEWAL
David DarakjyArgentinaBernardo Dominic NEW
Emily WhobreyCanadaIoni Bowcher QUALIFIED
Antonio CaudyGermanyXuxue Feng PROPOSAL
David DarakjyJapanAmy Elsner PROPOSAL
Cody SaylorsGermanyAnna Fali UNQUALIFIED
Antonio CaudyFranceAsiya Javayant 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>