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
Francesco ShinkoRussiaIvan Magalhaes NEGOTIATION
Smith GlickGermanyAmy Elsner QUALIFIED
Nicolas IturbideRussiaAnna Fali NEW
Tony FollerAustraliaAmy Elsner NEW
Ivar PaprockiFranceXuxue Feng RENEWAL
Arvin AlbaresCanadaIvan Magalhaes NEW
Kadeem FlosiItalyAsiya Javayant RENEWAL
Deepesh ChuiIndiaAnna Fali NEW
Aika InouyeRussiaAmy Elsner PROPOSAL
Tony FollerIndiaAsiya Javayant NEW
Misaki RoysterGermanyXuxue Feng NEW
Mujtaba NickaSpainAnna Fali UNQUALIFIED
James ButtAustraliaAmy Elsner QUALIFIED
Francesco ShinkoAustraliaAmy Elsner QUALIFIED
Ricardo GauchoRussiaBernardo Dominic UNQUALIFIED
Deepesh ChuiRussiaBernardo Dominic UNQUALIFIED
Jeanfrancois VenereRussiaXuxue Feng NEW
Arvin AlbaresArgentinaAnna Fali QUALIFIED
Rodrigues CampainFranceAsiya Javayant PROPOSAL
Smith GlickSpainXuxue Feng NEGOTIATION
Darci PoquetteBrazilOnyama Limba UNQUALIFIED
Aditya KuskoUnited KingdomAsiya Javayant NEGOTIATION
Leon OldroydArgentinaAmy Elsner UNQUALIFIED
Costa DilliardBrazilBernardo Dominic UNQUALIFIED
Salvatore StockhamUnited KingdomElwin Sharvill NEGOTIATION
Octavia MaletFranceXuxue Feng PROPOSAL
Maria MarrierCanadaAsiya Javayant NEW
Aruna FigeroaArgentinaStephen Shaw QUALIFIED
Darci PoquetteAustraliaIvan Magalhaes QUALIFIED
Chavez BriddickAustraliaStephen Shaw NEGOTIATION
Juan WieserArgentinaAmy Elsner RENEWAL
Mujtaba NickaGermanyStephen Shaw NEGOTIATION
Mayumi KolmetzBrazilIvan Magalhaes PROPOSAL
Kaitlin OstroskyArgentinaXuxue Feng NEGOTIATION
Mayumi KolmetzGermanyXuxue Feng UNQUALIFIED
Costa DilliardRussiaAmy Elsner NEGOTIATION
Maisha RulapaughCanadaAsiya Javayant NEW
Costa DilliardArgentinaAsiya Javayant PROPOSAL
Octavia MaletBrazilStephen Shaw RENEWAL
Sinclair WaycottIndiaAsiya Javayant RENEWAL
Clifford RimGermanyElwin Sharvill RENEWAL
Aruna FigeroaUnited KingdomXuxue Feng PROPOSAL
Isabel BowleyFranceAsiya Javayant RENEWAL
Aika InouyeAustraliaAmy Elsner QUALIFIED
Maria MarrierRussiaIvan Magalhaes NEGOTIATION
Stacey MacleadAustraliaAsiya Javayant NEGOTIATION
Faith GillianUnited KingdomBernardo Dominic RENEWAL
Morrow RutaSpainIoni Bowcher QUALIFIED
Arvin AlbaresIndiaStephen Shaw RENEWAL
Stacey MacleadSpainIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideUnited KingdomStephen Shaw PROPOSAL
Alejandro PerinJapanAsiya Javayant RENEWAL
Cody SaylorsUnited KingdomAnna Fali QUALIFIED
Ivar PaprockiIndiaElwin Sharvill QUALIFIED
Jefferson SchemmerRussiaAmy Elsner RENEWAL
Aditya KuskoIndiaAnna Fali UNQUALIFIED
David DarakjyIndiaAmy Elsner PROPOSAL
Ivar PaprockiArgentinaIoni Bowcher QUALIFIED
Ashley DoeUnited KingdomStephen Shaw QUALIFIED
Mayumi KolmetzArgentinaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki RoysterUnited Kingdom2021-06-04King, Christopher A Esq NEW88Asiya Javayant
1001Antonio CaudyItaly2021-05-28Printing Dimensions UNQUALIFIED42Amy Elsner
1002Ashley DoeBrazil2021-06-01Truhlar And Truhlar Attys PROPOSAL68Anna Fali
1003Jennifer AmigonFrance2021-06-07Rangoni Of Florence NEGOTIATION73Ioni Bowcher
1004Leon OldroydJapan2021-05-27Feltz Printing Service NEGOTIATION85Ioni Bowcher
1005Stacey MacleadGermany2021-06-04Printing Dimensions RENEWAL20Asiya Javayant
1006Clifford RimFrance2021-05-29Feiner Bros UNQUALIFIED58Onyama Limba
1007Faith GillianRussia2021-05-29Morlong Associates NEGOTIATION44Asiya Javayant
1008Smith GlickBrazil2021-06-15Feltz Printing Service PROPOSAL16Ivan Magalhaes
1009Maria MarrierGermany2021-06-01Truhlar And Truhlar Attys RENEWAL58Asiya Javayant
1010Chavez BriddickAustralia2021-06-05Rousseaux, Michael Esq QUALIFIED73Elwin Sharvill
1011Smith GlickFrance2021-06-01King, Christopher A Esq NEGOTIATION85Elwin Sharvill
1012Claire TollnerAustralia2021-05-25King, Christopher A Esq NEGOTIATION59Ioni Bowcher
1013Clifford RimUnited Kingdom2021-06-12Commercial Press RENEWAL79Stephen Shaw
1014Maisha RulapaughFrance2021-05-19Chanay, Jeffrey A Esq NEW27Ivan Magalhaes
1015Aika InouyeIndia2021-05-25Rousseaux, Michael Esq UNQUALIFIED7Ivan Magalhaes
1016Adams MorascaArgentina2021-06-03Chemel, James L Cpa PROPOSAL19Stephen Shaw
1017Ivar PaprockiBrazil2021-06-04Rousseaux, Michael Esq QUALIFIED7Elwin Sharvill
1018Octavia MaletFrance2021-06-09Feiner Bros NEGOTIATION15Xuxue Feng
1019Johnson SergiAustralia2021-05-23Chanay, Jeffrey A Esq PROPOSAL20Xuxue Feng
1020Antonio CaudyIndia2021-05-31Feiner Bros PROPOSAL10Amy Elsner
1021Nicolas IturbideIndia2021-06-09Rousseaux, Michael Esq RENEWAL4Amy Elsner
1022Sinclair WaycottSpain2021-06-03Buckley Miller Wright RENEWAL10Elwin Sharvill
1023Arvin AlbaresRussia2021-05-17Benton, John B Jr NEGOTIATION32Amy Elsner
1024Leja CaldareraBrazil2021-05-18Chemel, James L Cpa PROPOSAL78Anna Fali
1025Silvio SlusarskiBrazil2021-05-17Rangoni Of Florence NEW69Bernardo Dominic
1026Kadeem FlosiRussia2021-05-28Benton, John B Jr RENEWAL55Anna Fali
1027Jefferson SchemmerJapan2021-06-14Chanay, Jeffrey A Esq QUALIFIED37Ioni Bowcher
1028Jennifer AmigonSpain2021-05-24Rangoni Of Florence RENEWAL39Amy Elsner
1029Stacey MacleadCanada2021-05-19Truhlar And Truhlar Attys QUALIFIED84Stephen Shaw
1030David DarakjyItaly2021-05-17Dorl, James J Esq PROPOSAL12Xuxue Feng
1031Kadeem FlosiSpain2021-06-08Chemel, James L Cpa NEW73Asiya Javayant
1032Kaitlin OstroskyRussia2021-06-15Benton, John B Jr RENEWAL13Stephen Shaw
1033Costa DilliardIndia2021-05-31Chemel, James L Cpa NEGOTIATION17Stephen Shaw
1034Johnson SergiIndia2021-05-23Feltz Printing Service UNQUALIFIED30Asiya Javayant
1035Leon OldroydSpain2021-05-29Truhlar And Truhlar Attys PROPOSAL24Asiya Javayant
1036Izzy GarufiAustralia2021-06-13Commercial Press QUALIFIED79Bernardo Dominic
1037Aruna FigeroaBrazil2021-06-14Commercial Press PROPOSAL67Bernardo Dominic
1038Jennifer AmigonIndia2021-06-01Printing Dimensions NEW39Amy Elsner
1039Ricardo GauchoBrazil2021-05-22King, Christopher A Esq UNQUALIFIED85Stephen Shaw
1040Ashley DoeGermany2021-06-04Morlong Associates NEGOTIATION71Anna Fali
1041Claire TollnerIndia2021-06-08Rangoni Of Florence NEGOTIATION15Ioni Bowcher
1042Jennifer AmigonGermany2021-05-22Chanay, Jeffrey A Esq RENEWAL86Amy Elsner
1043Chavez BriddickGermany2021-06-06Feltz Printing Service QUALIFIED38Anna Fali
1044Stacey MacleadRussia2021-05-29Chanay, Jeffrey A Esq NEGOTIATION45Amy Elsner
1045Jefferson SchemmerBrazil2021-06-03Chapman, Ross E Esq UNQUALIFIED27Bernardo Dominic
1046Ashley DoeSpain2021-06-14Chanay, Jeffrey A Esq UNQUALIFIED69Onyama Limba
1047Smith GlickArgentina2021-05-21Chemel, James L Cpa UNQUALIFIED72Elwin Sharvill
1048Arvin AlbaresIndia2021-05-27Chanay, Jeffrey A Esq UNQUALIFIED50Anna Fali
1049Leja CaldareraFrance2021-05-20Printing Dimensions RENEWAL60Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Mujtaba NickaSpainIvan Magalhaes UNQUALIFIED
Salvatore StockhamRussiaStephen Shaw NEW
Jennifer AmigonItalyBernardo Dominic NEW
Johnson SergiFranceAmy Elsner UNQUALIFIED
Leon OldroydItalyBernardo Dominic QUALIFIED
Maisha RulapaughUnited KingdomStephen Shaw RENEWAL
Munro FerenczJapanAnna Fali NEGOTIATION
Johnson SergiAustraliaXuxue Feng NEGOTIATION
Leja CaldareraCanadaElwin Sharvill PROPOSAL
Tony FollerJapanBernardo Dominic PROPOSAL
Sinclair WaycottFranceAsiya Javayant RENEWAL
Ricardo GauchoUnited KingdomIvan Magalhaes RENEWAL
Juan WieserSpainStephen Shaw PROPOSAL
Arvin AlbaresSpainAsiya Javayant NEW
Costa DilliardBrazilAsiya Javayant RENEWAL
Francesco ShinkoIndiaBernardo Dominic UNQUALIFIED
Maisha RulapaughSpainIoni Bowcher RENEWAL
Cody SaylorsBrazilElwin Sharvill RENEWAL
David DarakjyIndiaBernardo Dominic UNQUALIFIED
Misaki RoysterArgentinaIoni Bowcher RENEWAL
Izzy GarufiArgentinaStephen Shaw RENEWAL
Julie StensethCanadaElwin Sharvill UNQUALIFIED
Chavez BriddickSpainAsiya Javayant QUALIFIED
Kaitlin OstroskyUnited KingdomStephen Shaw UNQUALIFIED
Tony FollerFranceAsiya Javayant QUALIFIED
Leja CaldareraFranceAsiya Javayant NEGOTIATION
Cody SaylorsIndiaOnyama Limba NEGOTIATION
James ButtIndiaXuxue Feng UNQUALIFIED
Chavez BriddickArgentinaAmy Elsner NEGOTIATION
Adams MorascaBrazilAsiya Javayant NEW
James ButtBrazilXuxue Feng PROPOSAL
Arvin AlbaresIndiaXuxue Feng UNQUALIFIED
Morrow RutaFranceIoni Bowcher UNQUALIFIED
Morrow RutaRussiaElwin Sharvill QUALIFIED
Leon OldroydGermanyBernardo Dominic NEW
Rodrigues CampainUnited KingdomIoni Bowcher NEGOTIATION
Jennifer AmigonGermanyXuxue Feng QUALIFIED
Adams MorascaCanadaIvan Magalhaes NEW
Maisha RulapaughIndiaBernardo Dominic NEGOTIATION
Costa DilliardArgentinaAsiya Javayant NEW
Francesco ShinkoIndiaAmy Elsner RENEWAL
Stacey MacleadUnited KingdomStephen Shaw NEGOTIATION
Maria MarrierIndiaElwin Sharvill PROPOSAL
Jefferson SchemmerSpainAnna Fali NEGOTIATION
Ashley DoeArgentinaElwin Sharvill NEW
Alejandro PerinAustraliaAsiya Javayant NEW
Octavia MaletRussiaStephen Shaw NEGOTIATION
Kadeem FlosiCanadaAmy Elsner QUALIFIED
Smith GlickArgentinaAmy Elsner QUALIFIED
Salvatore StockhamJapanXuxue Feng UNQUALIFIED
Frozen Columns
Name
Faith Gillian
Wickens Nestle
Ricardo Gaucho
Wickens Nestle
Isabel Bowley
Jones Vocelka
Claire Tollner
Wickens Nestle
Mayumi Kolmetz
Chavez Briddick
Isabel Bowley
Clifford Rim
Faith Gillian
Faith Gillian
Clifford Rim
Isabel Bowley
Izzy Garufi
Isabel Bowley
Maisha Rulapaugh
Misaki Royster
Leon Oldroyd
Arvin Albares
David Darakjy
Clifford Rim
Leja Caldarera
Costa Dilliard
David Darakjy
Tony Foller
Stacey Maclead
Faith Gillian
Julie Stenseth
Chavez Briddick
Faith Gillian
Jeanfrancois Venere
Smith Glick
Ashley Doe
Faith Gillian
Nicolas Iturbide
Julie Stenseth
Mujtaba Nicka
Clifford Rim
Deepesh Chui
Darci Poquette
Alejandro Perin
Greenwood Bolognia
Rodrigues Campain
Munro Ferencz
Rodrigues Campain
Izzy Garufi
Stacey Maclead
IdCountryDate
1000Russia2021-06-02
1001Canada2021-06-07
1002Canada2021-06-11
1003Canada2021-05-18
1004Italy2021-05-24
1005Italy2021-05-27
1006United Kingdom2021-06-14
1007France2021-05-18
1008United Kingdom2021-05-21
1009Australia2021-05-17
1010Australia2021-05-21
1011Canada2021-05-19
1012France2021-05-18
1013Russia2021-06-13
1014Russia2021-06-09
1015Canada2021-05-19
1016Germany2021-05-19
1017Canada2021-06-08
1018Germany2021-06-15
1019Japan2021-06-07
1020Italy2021-06-05
1021France2021-06-02
1022Italy2021-06-15
1023Australia2021-06-11
1024Australia2021-06-08
1025Australia2021-06-10
1026Spain2021-05-28
1027Italy2021-05-28
1028Brazil2021-06-15
1029India2021-06-07
1030United Kingdom2021-06-03
1031Italy2021-05-17
1032Russia2021-06-09
1033France2021-06-07
1034Argentina2021-05-23
1035Argentina2021-06-12
1036Brazil2021-05-20
1037Argentina2021-06-03
1038Spain2021-05-19
1039Brazil2021-06-15
1040Brazil2021-06-08
1041Brazil2021-06-05
1042Argentina2021-06-01
1043France2021-06-04
1044Spain2021-05-25
1045Argentina2021-06-10
1046Australia2021-05-29
1047Germany2021-06-03
1048Germany2021-06-15
1049United Kingdom2021-06-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo MaletFranceAmy Elsner PROPOSAL
Leja CaldareraSpainAsiya Javayant RENEWAL
Francesco ShinkoBrazilOnyama Limba RENEWAL
Jennifer AmigonAustraliaElwin Sharvill PROPOSAL
James ButtIndiaAnna Fali RENEWAL
Smith GlickArgentinaBernardo Dominic NEGOTIATION
James ButtUnited KingdomIvan Magalhaes QUALIFIED
Adams MorascaArgentinaBernardo Dominic NEGOTIATION
Darci PoquetteRussiaIoni Bowcher NEW
Leon OldroydUnited KingdomOnyama Limba QUALIFIED
Francesco ShinkoIndiaBernardo Dominic NEW
Izzy GarufiItalyOnyama Limba PROPOSAL
Silvio SlusarskiBrazilAsiya Javayant UNQUALIFIED
Leja CaldareraRussiaAmy Elsner NEW
Emily WhobreyJapanAsiya Javayant NEGOTIATION
Munro FerenczJapanAnna Fali UNQUALIFIED
Leon OldroydUnited KingdomAnna Fali RENEWAL
Sinclair WaycottFranceStephen Shaw PROPOSAL
Leja CaldareraCanadaXuxue Feng NEW
Murillo MaletIndiaBernardo Dominic NEGOTIATION
Alejandro PerinRussiaElwin Sharvill UNQUALIFIED
James ButtGermanyElwin Sharvill RENEWAL
Jefferson SchemmerSpainOnyama Limba NEGOTIATION
Jennifer AmigonItalyXuxue Feng NEW
Kadeem FlosiBrazilIvan Magalhaes QUALIFIED
Johnson SergiJapanElwin Sharvill UNQUALIFIED
Chavez BriddickUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues CampainItalyIoni Bowcher RENEWAL
David DarakjyArgentinaBernardo Dominic NEW
Misaki RoysterSpainOnyama Limba RENEWAL
Morrow RutaBrazilXuxue Feng RENEWAL
Stacey MacleadSpainXuxue Feng UNQUALIFIED
Antonio CaudyRussiaIvan Magalhaes PROPOSAL
Kadeem FlosiArgentinaIoni Bowcher RENEWAL
Cody SaylorsIndiaAnna Fali RENEWAL
Johnson SergiJapanStephen Shaw RENEWAL
David DarakjyUnited KingdomIvan Magalhaes NEW
Ashley DoeRussiaIoni Bowcher RENEWAL
Arvin AlbaresRussiaOnyama Limba PROPOSAL
Jennifer AmigonAustraliaXuxue Feng RENEWAL

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