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
Maisha RulapaughIndiaIvan Magalhaes NEW
Isabel BowleyAustraliaOnyama Limba RENEWAL
Wickens NestleGermanyStephen Shaw NEW
Julie StensethCanadaIvan Magalhaes UNQUALIFIED
Salvatore StockhamSpainIvan Magalhaes NEW
Jennifer AmigonGermanyAnna Fali NEW
Smith GlickIndiaAsiya Javayant PROPOSAL
Adams MorascaUnited KingdomAmy Elsner QUALIFIED
Isabel BowleyBrazilAsiya Javayant NEGOTIATION
Aruna FigeroaRussiaBernardo Dominic PROPOSAL
Munro FerenczGermanyIoni Bowcher RENEWAL
Stacey MacleadSpainElwin Sharvill QUALIFIED
Silvio SlusarskiUnited KingdomIvan Magalhaes NEW
Julie StensethRussiaXuxue Feng QUALIFIED
Alejandro PerinSpainAnna Fali NEW
Munro FerenczGermanyIvan Magalhaes QUALIFIED
Wickens NestleFranceAnna Fali PROPOSAL
Isabel BowleyCanadaBernardo Dominic RENEWAL
Jefferson SchemmerUnited KingdomBernardo Dominic RENEWAL
Leon OldroydItalyAsiya Javayant RENEWAL
Deepesh ChuiSpainBernardo Dominic UNQUALIFIED
Clifford RimSpainAnna Fali UNQUALIFIED
Ashley DoeAustraliaBernardo Dominic NEW
Salvatore StockhamArgentinaXuxue Feng QUALIFIED
Leja CaldareraJapanAmy Elsner NEGOTIATION
Aditya KuskoRussiaOnyama Limba NEGOTIATION
Maria MarrierFranceAmy Elsner PROPOSAL
Smith GlickUnited KingdomStephen Shaw UNQUALIFIED
Silvio SlusarskiGermanyXuxue Feng NEGOTIATION
Kadeem FlosiItalyAnna Fali QUALIFIED
Izzy GarufiGermanyOnyama Limba RENEWAL
Leja CaldareraBrazilXuxue Feng RENEWAL
Kadeem FlosiSpainElwin Sharvill QUALIFIED
Jones VocelkaFranceIvan Magalhaes NEW
Greenwood BologniaGermanyXuxue Feng QUALIFIED
Nicolas IturbideArgentinaIvan Magalhaes PROPOSAL
Morrow RutaItalyAmy Elsner QUALIFIED
Johnson SergiGermanyBernardo Dominic QUALIFIED
Mayumi KolmetzJapanBernardo Dominic UNQUALIFIED
Ivar PaprockiRussiaIvan Magalhaes NEGOTIATION
Jefferson SchemmerBrazilAnna Fali NEGOTIATION
Arvin AlbaresCanadaOnyama Limba NEGOTIATION
Tony FollerFranceElwin Sharvill NEGOTIATION
Arvin AlbaresIndiaXuxue Feng NEGOTIATION
Johnson SergiBrazilElwin Sharvill NEW
Isabel BowleyFranceOnyama Limba RENEWAL
Darci PoquetteGermanyIoni Bowcher NEW
Greenwood BologniaRussiaStephen Shaw PROPOSAL
Adams MorascaIndiaAmy Elsner NEW
Smith GlickGermanyStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Jennifer AmigonItalyBernardo Dominic PROPOSAL
Costa DilliardRussiaAnna Fali QUALIFIED
Izzy GarufiBrazilStephen Shaw QUALIFIED
Deepesh ChuiUnited KingdomIvan Magalhaes RENEWAL
Maria MarrierRussiaIvan Magalhaes NEGOTIATION
Julie StensethGermanyAnna Fali PROPOSAL
Juan WieserAustraliaOnyama Limba QUALIFIED
Salvatore StockhamCanadaElwin Sharvill UNQUALIFIED
Emily WhobreyRussiaIoni Bowcher QUALIFIED
Rodrigues CampainItalyBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie StensethIndia2021-03-24Rangoni Of Florence NEW30Stephen Shaw
1001Emily WhobreyItaly2021-04-11King, Christopher A Esq QUALIFIED14Onyama Limba
1002Clifford RimIndia2021-03-15Rousseaux, Michael Esq UNQUALIFIED99Ivan Magalhaes
1003Ivar PaprockiGermany2021-03-29King, Christopher A Esq PROPOSAL50Amy Elsner
1004Mujtaba NickaArgentina2021-03-21Benton, John B Jr UNQUALIFIED78Amy Elsner
1005Emily WhobreyArgentina2021-04-03Printing Dimensions PROPOSAL86Asiya Javayant
1006Salvatore StockhamBrazil2021-03-22Rousseaux, Michael Esq PROPOSAL80Xuxue Feng
1007Misaki RoysterGermany2021-04-09Chapman, Ross E Esq UNQUALIFIED10Amy Elsner
1008Kaitlin OstroskySpain2021-03-15Truhlar And Truhlar Attys PROPOSAL80Bernardo Dominic
1009Cody SaylorsJapan2021-04-08Chapman, Ross E Esq PROPOSAL11Ioni Bowcher
1010Maria MarrierBrazil2021-04-11Benton, John B Jr NEGOTIATION6Elwin Sharvill
1011Jones VocelkaSpain2021-04-04Chemel, James L Cpa NEGOTIATION21Stephen Shaw
1012Ricardo GauchoFrance2021-03-21Chemel, James L Cpa RENEWAL33Elwin Sharvill
1013Aruna FigeroaUnited Kingdom2021-04-06Chemel, James L Cpa QUALIFIED29Ivan Magalhaes
1014Salvatore StockhamGermany2021-03-24Feltz Printing Service NEGOTIATION30Stephen Shaw
1015Wickens NestleFrance2021-04-11Rousseaux, Michael Esq NEGOTIATION29Elwin Sharvill
1016Silvio SlusarskiArgentina2021-03-23Chapman, Ross E Esq RENEWAL94Elwin Sharvill
1017Octavia MaletIndia2021-04-02Dorl, James J Esq NEW1Asiya Javayant
1018Johnson SergiSpain2021-03-22Printing Dimensions UNQUALIFIED77Xuxue Feng
1019Nicolas IturbideAustralia2021-03-25Buckley Miller Wright NEGOTIATION75Onyama Limba
1020Mayumi KolmetzGermany2021-04-13Feltz Printing Service UNQUALIFIED62Bernardo Dominic
1021Ivar PaprockiJapan2021-03-19Morlong Associates NEW39Elwin Sharvill
1022Leon OldroydIndia2021-04-02Feiner Bros RENEWAL26Amy Elsner
1023Kaitlin OstroskyRussia2021-03-21Truhlar And Truhlar Attys NEGOTIATION55Onyama Limba
1024Johnson SergiGermany2021-04-04Chanay, Jeffrey A Esq UNQUALIFIED81Stephen Shaw
1025Nicolas IturbideGermany2021-03-24Morlong Associates NEGOTIATION37Onyama Limba
1026Faith GillianBrazil2021-03-19Chemel, James L Cpa UNQUALIFIED86Amy Elsner
1027Julie StensethGermany2021-04-10Benton, John B Jr RENEWAL54Anna Fali
1028Alejandro PerinItaly2021-03-20Buckley Miller Wright NEW57Bernardo Dominic
1029Munro FerenczItaly2021-04-10Feltz Printing Service PROPOSAL12Amy Elsner
1030Ashley DoeArgentina2021-04-10Buckley Miller Wright NEGOTIATION17Anna Fali
1031Stacey MacleadArgentina2021-04-05Truhlar And Truhlar Attys NEGOTIATION91Asiya Javayant
1032Munro FerenczRussia2021-03-15Morlong Associates QUALIFIED50Amy Elsner
1033Nicolas IturbideSpain2021-03-31Feiner Bros NEGOTIATION77Ioni Bowcher
1034Munro FerenczRussia2021-03-24Benton, John B Jr NEW59Stephen Shaw
1035Cody SaylorsJapan2021-04-09Truhlar And Truhlar Attys PROPOSAL13Elwin Sharvill
1036Salvatore StockhamAustralia2021-03-18Printing Dimensions RENEWAL53Asiya Javayant
1037Emily WhobreyFrance2021-03-16Dorl, James J Esq RENEWAL69Ioni Bowcher
1038Kaitlin OstroskyRussia2021-03-30Feiner Bros NEW69Ivan Magalhaes
1039Salvatore StockhamFrance2021-03-24Truhlar And Truhlar Attys QUALIFIED55Amy Elsner
1040Ricardo GauchoGermany2021-04-12Benton, John B Jr RENEWAL66Elwin Sharvill
1041Deepesh ChuiJapan2021-03-16Printing Dimensions PROPOSAL42Amy Elsner
1042Leon OldroydSpain2021-03-15Commercial Press NEGOTIATION39Xuxue Feng
1043Stacey MacleadIndia2021-03-25King, Christopher A Esq NEGOTIATION87Stephen Shaw
1044Aditya KuskoBrazil2021-03-17Chemel, James L Cpa RENEWAL10Amy Elsner
1045Adams MorascaBrazil2021-04-04Feltz Printing Service PROPOSAL86Stephen Shaw
1046Mujtaba NickaRussia2021-03-18King, Christopher A Esq QUALIFIED96Elwin Sharvill
1047Adams MorascaArgentina2021-04-09Chemel, James L Cpa PROPOSAL63Stephen Shaw
1048Morrow RutaSpain2021-04-12Dorl, James J Esq NEW69Stephen Shaw
1049Morrow RutaUnited Kingdom2021-03-27Benton, John B Jr NEGOTIATION99Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leja CaldareraSpainAsiya Javayant NEGOTIATION
Smith GlickJapanIvan Magalhaes RENEWAL
Chavez BriddickItalyOnyama Limba QUALIFIED
Silvio SlusarskiArgentinaAsiya Javayant RENEWAL
Misaki RoysterItalyBernardo Dominic RENEWAL
Sinclair WaycottUnited KingdomAnna Fali NEW
James ButtJapanOnyama Limba NEGOTIATION
Maria MarrierBrazilBernardo Dominic NEW
Jennifer AmigonUnited KingdomAsiya Javayant PROPOSAL
Faith GillianItalyAnna Fali NEW
Ivar PaprockiAustraliaAnna Fali QUALIFIED
Jefferson SchemmerGermanyBernardo Dominic QUALIFIED
Misaki RoysterJapanElwin Sharvill NEW
Nicolas IturbideBrazilOnyama Limba QUALIFIED
Clifford RimArgentinaBernardo Dominic UNQUALIFIED
Arvin AlbaresUnited KingdomAmy Elsner QUALIFIED
Octavia MaletUnited KingdomAnna Fali UNQUALIFIED
Ivar PaprockiSpainXuxue Feng NEW
Maisha RulapaughAustraliaAmy Elsner NEGOTIATION
Johnson SergiSpainElwin Sharvill NEW
Maisha RulapaughGermanyElwin Sharvill RENEWAL
Leon OldroydSpainIvan Magalhaes NEW
Ricardo GauchoAustraliaXuxue Feng NEGOTIATION
Juan WieserUnited KingdomIvan Magalhaes NEGOTIATION
Alejandro PerinCanadaXuxue Feng QUALIFIED
Jennifer AmigonBrazilAmy Elsner NEW
Octavia MaletGermanyOnyama Limba UNQUALIFIED
Ashley DoeRussiaBernardo Dominic QUALIFIED
Munro FerenczAustraliaBernardo Dominic PROPOSAL
Munro FerenczAustraliaAmy Elsner NEW
Juan WieserRussiaElwin Sharvill NEW
Jefferson SchemmerArgentinaElwin Sharvill RENEWAL
Ashley DoeItalyElwin Sharvill PROPOSAL
Darci PoquetteJapanXuxue Feng PROPOSAL
Juan WieserItalyAmy Elsner RENEWAL
Mujtaba NickaIndiaAmy Elsner UNQUALIFIED
Kadeem FlosiSpainOnyama Limba PROPOSAL
Jeanfrancois VenereFranceXuxue Feng NEW
Rodrigues CampainItalyAsiya Javayant QUALIFIED
Wickens NestleIndiaStephen Shaw NEGOTIATION
Wickens NestleFranceIvan Magalhaes NEW
Rodrigues CampainBrazilIvan Magalhaes NEGOTIATION
Julie StensethIndiaElwin Sharvill QUALIFIED
Izzy GarufiRussiaXuxue Feng RENEWAL
Nicolas IturbideGermanyXuxue Feng NEW
Cody SaylorsFranceIvan Magalhaes UNQUALIFIED
Stacey MacleadSpainStephen Shaw NEGOTIATION
Mayumi KolmetzCanadaOnyama Limba RENEWAL
Jefferson SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Isabel BowleyJapanAsiya Javayant NEW
Frozen Columns
Name
Costa Dilliard
Claire Tollner
Aditya Kusko
Tony Foller
Aditya Kusko
Johnson Sergi
Misaki Royster
James Butt
Maisha Rulapaugh
Izzy Garufi
Juan Wieser
Antonio Caudy
Isabel Bowley
Faith Gillian
Costa Dilliard
Juan Wieser
Adams Morasca
Clifford Rim
Nicolas Iturbide
Mayumi Kolmetz
Aditya Kusko
Juan Wieser
Aruna Figeroa
Aruna Figeroa
Salvatore Stockham
Nicolas Iturbide
Mayumi Kolmetz
Misaki Royster
Silvio Slusarski
Faith Gillian
Sinclair Waycott
Deepesh Chui
Maria Marrier
Jennifer Amigon
Jennifer Amigon
Izzy Garufi
Aruna Figeroa
Antonio Caudy
Aditya Kusko
Ivar Paprocki
Silvio Slusarski
Leon Oldroyd
Claire Tollner
Aruna Figeroa
Silvio Slusarski
Leja Caldarera
Claire Tollner
Smith Glick
Salvatore Stockham
Isabel Bowley
IdCountryDate
1000Brazil2021-03-25
1001Russia2021-03-18
1002India2021-03-18
1003Australia2021-03-28
1004Australia2021-03-28
1005Italy2021-04-08
1006Spain2021-03-22
1007India2021-04-07
1008Canada2021-03-22
1009United Kingdom2021-03-23
1010Russia2021-03-19
1011Argentina2021-04-01
1012Russia2021-03-22
1013France2021-03-19
1014Japan2021-03-26
1015France2021-04-09
1016France2021-03-16
1017India2021-03-15
1018Argentina2021-03-17
1019Argentina2021-04-01
1020United Kingdom2021-03-29
1021Argentina2021-03-18
1022Brazil2021-03-16
1023France2021-03-17
1024United Kingdom2021-03-25
1025Germany2021-04-13
1026Brazil2021-04-07
1027Spain2021-04-07
1028Japan2021-04-07
1029Italy2021-03-22
1030Argentina2021-03-18
1031Argentina2021-04-10
1032Italy2021-03-23
1033Brazil2021-04-01
1034Brazil2021-03-23
1035United Kingdom2021-03-21
1036Japan2021-04-05
1037Australia2021-04-07
1038Brazil2021-03-17
1039Australia2021-03-21
1040France2021-04-12
1041Russia2021-03-26
1042Italy2021-03-31
1043Spain2021-04-10
1044Argentina2021-03-17
1045Argentina2021-04-09
1046Argentina2021-04-05
1047Russia2021-03-17
1048Australia2021-03-21
1049Japan2021-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinFranceAnna Fali NEW
Misaki RoysterArgentinaAnna Fali RENEWAL
Sinclair WaycottIndiaAsiya Javayant NEW
Cody SaylorsIndiaAmy Elsner NEW
Johnson SergiJapanAnna Fali QUALIFIED
Murillo MaletArgentinaAmy Elsner PROPOSAL
Deepesh ChuiArgentinaElwin Sharvill NEW
Deepesh ChuiBrazilIoni Bowcher UNQUALIFIED
Jeanfrancois VenereCanadaAsiya Javayant UNQUALIFIED
Maria MarrierBrazilElwin Sharvill NEGOTIATION
Aika InouyeArgentinaBernardo Dominic PROPOSAL
Arvin AlbaresBrazilXuxue Feng PROPOSAL
Francesco ShinkoIndiaBernardo Dominic NEW
Deepesh ChuiUnited KingdomAnna Fali NEGOTIATION
Alejandro PerinRussiaIvan Magalhaes RENEWAL
Stacey MacleadIndiaIvan Magalhaes PROPOSAL
Maisha RulapaughAustraliaAsiya Javayant RENEWAL
Cody SaylorsJapanStephen Shaw NEW
Izzy GarufiBrazilAnna Fali QUALIFIED
Greenwood BologniaBrazilAnna Fali PROPOSAL
Ricardo GauchoGermanyAmy Elsner RENEWAL
Antonio CaudyItalyIoni Bowcher PROPOSAL
Smith GlickRussiaIoni Bowcher RENEWAL
Rodrigues CampainItalyStephen Shaw QUALIFIED
Wickens NestleSpainElwin Sharvill NEGOTIATION
Jones VocelkaItalyStephen Shaw NEGOTIATION
Jeanfrancois VenereCanadaOnyama Limba PROPOSAL
Faith GillianItalyAnna Fali NEGOTIATION
Rodrigues CampainSpainStephen Shaw NEGOTIATION
Kaitlin OstroskyIndiaXuxue Feng PROPOSAL
Aditya KuskoUnited KingdomBernardo Dominic NEGOTIATION
Antonio CaudyBrazilElwin Sharvill PROPOSAL
Izzy GarufiSpainIvan Magalhaes NEW
Antonio CaudyBrazilElwin Sharvill NEGOTIATION
Nicolas IturbideRussiaXuxue Feng QUALIFIED
Sinclair WaycottItalyIoni Bowcher RENEWAL
Juan WieserUnited KingdomIoni Bowcher PROPOSAL
Juan WieserJapanAsiya Javayant UNQUALIFIED
Stacey MacleadCanadaElwin Sharvill NEGOTIATION
Smith GlickFranceAmy Elsner 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>