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
James ButtAustraliaXuxue Feng PROPOSAL
Francesco ShinkoRussiaIoni Bowcher UNQUALIFIED
Greenwood BologniaGermanyIvan Magalhaes NEW
Aruna FigeroaJapanXuxue Feng RENEWAL
Isabel BowleyCanadaIvan Magalhaes NEGOTIATION
Ivar PaprockiAustraliaIvan Magalhaes RENEWAL
Claire TollnerItalyAnna Fali PROPOSAL
Chavez BriddickGermanyXuxue Feng RENEWAL
Leon OldroydUnited KingdomXuxue Feng RENEWAL
Claire TollnerArgentinaStephen Shaw PROPOSAL
Jennifer AmigonRussiaOnyama Limba NEGOTIATION
Deepesh ChuiIndiaIoni Bowcher QUALIFIED
Izzy GarufiSpainXuxue Feng RENEWAL
Alejandro PerinGermanyIvan Magalhaes PROPOSAL
David DarakjyJapanIoni Bowcher QUALIFIED
Francesco ShinkoCanadaXuxue Feng NEW
Cody SaylorsCanadaAmy Elsner QUALIFIED
Claire TollnerItalyOnyama Limba UNQUALIFIED
Jefferson SchemmerArgentinaXuxue Feng PROPOSAL
Emily WhobreyRussiaBernardo Dominic NEW
Salvatore StockhamSpainAsiya Javayant QUALIFIED
Tony FollerSpainElwin Sharvill RENEWAL
Aditya KuskoFranceXuxue Feng RENEWAL
Tony FollerIndiaAnna Fali NEGOTIATION
Julie StensethRussiaStephen Shaw NEW
James ButtItalyAmy Elsner RENEWAL
Mayumi KolmetzAustraliaAnna Fali NEW
Munro FerenczIndiaElwin Sharvill PROPOSAL
Jennifer AmigonFranceStephen Shaw UNQUALIFIED
Deepesh ChuiAustraliaAsiya Javayant QUALIFIED
Aditya KuskoJapanIvan Magalhaes UNQUALIFIED
Sinclair WaycottRussiaElwin Sharvill NEW
Smith GlickIndiaIvan Magalhaes NEGOTIATION
Antonio CaudyCanadaBernardo Dominic RENEWAL
Munro FerenczIndiaXuxue Feng RENEWAL
James ButtItalyIvan Magalhaes NEGOTIATION
Chavez BriddickRussiaAnna Fali PROPOSAL
Ricardo GauchoAustraliaAsiya Javayant QUALIFIED
Silvio SlusarskiJapanStephen Shaw RENEWAL
Emily WhobreySpainAsiya Javayant UNQUALIFIED
Francesco ShinkoAustraliaBernardo Dominic NEGOTIATION
Morrow RutaAustraliaAmy Elsner NEW
Octavia MaletBrazilXuxue Feng NEW
Alejandro PerinRussiaIvan Magalhaes UNQUALIFIED
Maria MarrierCanadaIoni Bowcher UNQUALIFIED
Jones VocelkaAustraliaAnna Fali NEW
Isabel BowleyGermanyIoni Bowcher RENEWAL
James ButtFranceXuxue Feng NEGOTIATION
Ivar PaprockiGermanyBernardo Dominic RENEWAL
Chavez BriddickBrazilOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideSpainBernardo Dominic NEGOTIATION
Munro FerenczGermanyStephen Shaw UNQUALIFIED
Ricardo GauchoFranceOnyama Limba UNQUALIFIED
Leon OldroydBrazilAsiya Javayant UNQUALIFIED
Julie StensethBrazilStephen Shaw RENEWAL
Jennifer AmigonItalyBernardo Dominic NEGOTIATION
Leja CaldareraCanadaAsiya Javayant UNQUALIFIED
Arvin AlbaresFranceAnna Fali UNQUALIFIED
Izzy GarufiCanadaAsiya Javayant QUALIFIED
Ricardo GauchoRussiaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughBrazil2021-03-16Chemel, James L Cpa RENEWAL5Elwin Sharvill
1001Francesco ShinkoRussia2021-04-01Feltz Printing Service UNQUALIFIED59Stephen Shaw
1002Rodrigues CampainRussia2021-03-22Feltz Printing Service NEW26Asiya Javayant
1003Darci PoquetteAustralia2021-03-25Buckley Miller Wright NEGOTIATION53Amy Elsner
1004Murillo MaletRussia2021-04-12Feiner Bros UNQUALIFIED94Ioni Bowcher
1005Isabel BowleyRussia2021-03-26Commercial Press RENEWAL21Ioni Bowcher
1006Darci PoquetteItaly2021-04-06Chanay, Jeffrey A Esq PROPOSAL19Ivan Magalhaes
1007Aika InouyeIndia2021-04-08Rangoni Of Florence QUALIFIED19Ivan Magalhaes
1008Murillo MaletRussia2021-03-31Chemel, James L Cpa NEGOTIATION76Xuxue Feng
1009Kaitlin OstroskyCanada2021-03-18Rousseaux, Michael Esq RENEWAL31Amy Elsner
1010Johnson SergiBrazil2021-03-29Chanay, Jeffrey A Esq QUALIFIED61Amy Elsner
1011Adams MorascaCanada2021-04-12Rangoni Of Florence RENEWAL29Xuxue Feng
1012Greenwood BologniaUnited Kingdom2021-03-22Buckley Miller Wright PROPOSAL72Elwin Sharvill
1013Aika InouyeItaly2021-03-31Morlong Associates NEGOTIATION5Xuxue Feng
1014Juan WieserIndia2021-03-16Truhlar And Truhlar Attys PROPOSAL92Onyama Limba
1015Jones VocelkaUnited Kingdom2021-04-14Commercial Press RENEWAL37Ioni Bowcher
1016Leja CaldareraBrazil2021-03-29Chanay, Jeffrey A Esq NEGOTIATION94Anna Fali
1017Greenwood BologniaRussia2021-03-31Chemel, James L Cpa RENEWAL70Stephen Shaw
1018Cody SaylorsBrazil2021-04-03Chanay, Jeffrey A Esq NEW84Elwin Sharvill
1019James ButtJapan2021-03-25Morlong Associates PROPOSAL60Anna Fali
1020Jeanfrancois VenereItaly2021-04-04Feltz Printing Service NEGOTIATION0Onyama Limba
1021Munro FerenczIndia2021-03-25Morlong Associates NEGOTIATION81Stephen Shaw
1022Mujtaba NickaCanada2021-04-04Feltz Printing Service PROPOSAL31Elwin Sharvill
1023Costa DilliardUnited Kingdom2021-03-19Rousseaux, Michael Esq NEGOTIATION59Elwin Sharvill
1024Nicolas IturbideAustralia2021-04-05Commercial Press NEGOTIATION3Asiya Javayant
1025Jones VocelkaAustralia2021-03-17Rangoni Of Florence RENEWAL86Bernardo Dominic
1026Maisha RulapaughBrazil2021-04-07Commercial Press NEGOTIATION63Xuxue Feng
1027Mayumi KolmetzAustralia2021-04-11Rangoni Of Florence PROPOSAL34Ivan Magalhaes
1028Leja CaldareraUnited Kingdom2021-04-12Rousseaux, Michael Esq PROPOSAL61Xuxue Feng
1029Antonio CaudyBrazil2021-03-18Chanay, Jeffrey A Esq NEGOTIATION17Ioni Bowcher
1030Maria MarrierRussia2021-04-12Chapman, Ross E Esq QUALIFIED28Amy Elsner
1031Morrow RutaGermany2021-03-23Rangoni Of Florence UNQUALIFIED33Bernardo Dominic
1032Isabel BowleyUnited Kingdom2021-04-13Chemel, James L Cpa NEW1Stephen Shaw
1033Greenwood BologniaSpain2021-04-10Rousseaux, Michael Esq RENEWAL31Elwin Sharvill
1034Julie StensethFrance2021-04-07Benton, John B Jr UNQUALIFIED13Asiya Javayant
1035Faith GillianIndia2021-03-24Dorl, James J Esq NEGOTIATION63Ioni Bowcher
1036Adams MorascaUnited Kingdom2021-04-10Benton, John B Jr UNQUALIFIED16Anna Fali
1037Jefferson SchemmerJapan2021-03-17Feltz Printing Service UNQUALIFIED6Anna Fali
1038Octavia MaletAustralia2021-03-17Chemel, James L Cpa NEW52Ivan Magalhaes
1039Jefferson SchemmerRussia2021-03-18Dorl, James J Esq RENEWAL51Anna Fali
1040Jefferson SchemmerGermany2021-03-23Benton, John B Jr QUALIFIED43Anna Fali
1041Francesco ShinkoArgentina2021-04-11Chanay, Jeffrey A Esq NEW31Asiya Javayant
1042Sinclair WaycottBrazil2021-04-04King, Christopher A Esq NEW68Stephen Shaw
1043Jennifer AmigonRussia2021-03-21Rangoni Of Florence QUALIFIED5Onyama Limba
1044Antonio CaudyIndia2021-03-19Commercial Press RENEWAL66Onyama Limba
1045Tony FollerRussia2021-04-14Chemel, James L Cpa QUALIFIED41Xuxue Feng
1046Deepesh ChuiFrance2021-03-24King, Christopher A Esq QUALIFIED80Asiya Javayant
1047Maisha RulapaughGermany2021-03-28Commercial Press UNQUALIFIED64Ivan Magalhaes
1048Francesco ShinkoUnited Kingdom2021-04-09King, Christopher A Esq NEGOTIATION30Anna Fali
1049Ashley DoeIndia2021-04-06Chapman, Ross E Esq PROPOSAL63Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Nicolas IturbideUnited KingdomAmy Elsner PROPOSAL
Claire TollnerCanadaAmy Elsner QUALIFIED
Salvatore StockhamRussiaBernardo Dominic QUALIFIED
David DarakjySpainXuxue Feng PROPOSAL
Clifford RimIndiaBernardo Dominic QUALIFIED
Smith GlickJapanXuxue Feng RENEWAL
Silvio SlusarskiRussiaStephen Shaw PROPOSAL
Rodrigues CampainArgentinaBernardo Dominic UNQUALIFIED
Jones VocelkaBrazilIvan Magalhaes UNQUALIFIED
Isabel BowleyArgentinaAmy Elsner UNQUALIFIED
Ashley DoeBrazilStephen Shaw RENEWAL
Leja CaldareraJapanElwin Sharvill QUALIFIED
Julie StensethCanadaAmy Elsner UNQUALIFIED
Mayumi KolmetzArgentinaAmy Elsner RENEWAL
Munro FerenczJapanElwin Sharvill PROPOSAL
Aika InouyeCanadaAsiya Javayant QUALIFIED
Clifford RimBrazilAmy Elsner PROPOSAL
Jefferson SchemmerBrazilXuxue Feng QUALIFIED
Kaitlin OstroskyFranceBernardo Dominic RENEWAL
Emily WhobreyArgentinaIoni Bowcher UNQUALIFIED
Kaitlin OstroskySpainBernardo Dominic UNQUALIFIED
Claire TollnerUnited KingdomBernardo Dominic QUALIFIED
Antonio CaudyIndiaOnyama Limba QUALIFIED
Chavez BriddickUnited KingdomElwin Sharvill NEGOTIATION
Deepesh ChuiJapanBernardo Dominic NEW
Deepesh ChuiSpainIoni Bowcher RENEWAL
Morrow RutaJapanXuxue Feng RENEWAL
Murillo MaletFranceElwin Sharvill NEW
Jefferson SchemmerIndiaAmy Elsner RENEWAL
Mayumi KolmetzRussiaIoni Bowcher QUALIFIED
Aruna FigeroaIndiaBernardo Dominic RENEWAL
Deepesh ChuiUnited KingdomXuxue Feng PROPOSAL
Maria MarrierIndiaAnna Fali PROPOSAL
Mayumi KolmetzGermanyIoni Bowcher NEW
Clifford RimIndiaOnyama Limba NEGOTIATION
Greenwood BologniaUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois VenereFranceOnyama Limba NEW
Francesco ShinkoCanadaXuxue Feng PROPOSAL
Ivar PaprockiGermanyAsiya Javayant NEGOTIATION
Smith GlickJapanBernardo Dominic NEW
Misaki RoysterCanadaIvan Magalhaes PROPOSAL
Morrow RutaJapanXuxue Feng UNQUALIFIED
Kadeem FlosiBrazilBernardo Dominic NEGOTIATION
Adams MorascaCanadaAmy Elsner NEW
Aruna FigeroaItalyAnna Fali NEGOTIATION
David DarakjyArgentinaStephen Shaw RENEWAL
Jeanfrancois VenereBrazilXuxue Feng PROPOSAL
Stacey MacleadGermanyOnyama Limba PROPOSAL
Antonio CaudyBrazilIvan Magalhaes QUALIFIED
Aruna FigeroaAustraliaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Nicolas Iturbide
Adams Morasca
Johnson Sergi
Sinclair Waycott
Leon Oldroyd
Jeanfrancois Venere
Ivar Paprocki
Smith Glick
Isabel Bowley
Ivar Paprocki
Juan Wieser
Francesco Shinko
Francesco Shinko
Arvin Albares
Alejandro Perin
Greenwood Bolognia
Clifford Rim
Tony Foller
Clifford Rim
Antonio Caudy
Claire Tollner
Greenwood Bolognia
Claire Tollner
Morrow Ruta
Maria Marrier
Salvatore Stockham
Jefferson Schemmer
Rodrigues Campain
Salvatore Stockham
Nicolas Iturbide
Nicolas Iturbide
Jefferson Schemmer
Leon Oldroyd
Misaki Royster
Cody Saylors
Leja Caldarera
Julie Stenseth
Clifford Rim
Jones Vocelka
Octavia Malet
Cody Saylors
Jennifer Amigon
Jones Vocelka
Jeanfrancois Venere
Adams Morasca
Kadeem Flosi
Claire Tollner
Sinclair Waycott
Jefferson Schemmer
Antonio Caudy
IdCountryDate
1000Australia2021-04-08
1001Argentina2021-03-25
1002Spain2021-04-08
1003Canada2021-03-24
1004Russia2021-03-16
1005United Kingdom2021-04-03
1006Japan2021-03-23
1007Brazil2021-03-21
1008France2021-03-27
1009Germany2021-04-07
1010Germany2021-04-02
1011Argentina2021-03-27
1012Spain2021-03-30
1013France2021-04-04
1014Spain2021-04-07
1015Germany2021-03-22
1016Canada2021-04-13
1017United Kingdom2021-04-04
1018Italy2021-04-01
1019United Kingdom2021-03-25
1020Italy2021-04-10
1021Brazil2021-04-07
1022Australia2021-03-20
1023Brazil2021-04-10
1024Canada2021-03-16
1025Argentina2021-04-09
1026Argentina2021-03-24
1027Australia2021-03-24
1028Brazil2021-04-04
1029Argentina2021-04-03
1030Australia2021-03-22
1031Australia2021-04-14
1032France2021-03-18
1033Australia2021-04-02
1034Australia2021-04-09
1035Australia2021-03-23
1036Russia2021-03-18
1037Russia2021-03-31
1038Japan2021-03-17
1039Canada2021-03-28
1040Argentina2021-03-24
1041Russia2021-03-23
1042France2021-04-06
1043Australia2021-04-06
1044Germany2021-03-20
1045Spain2021-04-05
1046Argentina2021-03-21
1047Australia2021-04-04
1048Germany2021-03-18
1049Italy2021-03-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Adams MorascaAustraliaAsiya Javayant RENEWAL
Silvio SlusarskiJapanXuxue Feng NEGOTIATION
Ivar PaprockiItalyBernardo Dominic RENEWAL
Claire TollnerFranceIvan Magalhaes NEW
Francesco ShinkoGermanyAsiya Javayant NEW
Murillo MaletBrazilAnna Fali QUALIFIED
Cody SaylorsCanadaAmy Elsner RENEWAL
Julie StensethAustraliaAmy Elsner UNQUALIFIED
Chavez BriddickAustraliaOnyama Limba PROPOSAL
Deepesh ChuiArgentinaOnyama Limba QUALIFIED
Costa DilliardIndiaAmy Elsner QUALIFIED
Mujtaba NickaFranceElwin Sharvill NEW
Greenwood BologniaArgentinaIoni Bowcher RENEWAL
Leon OldroydIndiaElwin Sharvill UNQUALIFIED
Johnson SergiBrazilAsiya Javayant RENEWAL
Izzy GarufiAustraliaAnna Fali UNQUALIFIED
Aruna FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Arvin AlbaresUnited KingdomStephen Shaw UNQUALIFIED
David DarakjyItalyOnyama Limba NEGOTIATION
David DarakjyItalyBernardo Dominic RENEWAL
Izzy GarufiIndiaIoni Bowcher RENEWAL
Wickens NestleRussiaXuxue Feng NEW
Isabel BowleyUnited KingdomBernardo Dominic PROPOSAL
Ashley DoeSpainElwin Sharvill UNQUALIFIED
Emily WhobreyAustraliaIvan Magalhaes UNQUALIFIED
Jefferson SchemmerCanadaIvan Magalhaes UNQUALIFIED
Leon OldroydJapanAnna Fali QUALIFIED
Costa DilliardJapanOnyama Limba UNQUALIFIED
Greenwood BologniaCanadaAnna Fali QUALIFIED
Cody SaylorsItalyBernardo Dominic UNQUALIFIED
Alejandro PerinRussiaOnyama Limba NEW
Aruna FigeroaAustraliaXuxue Feng QUALIFIED
Ricardo GauchoBrazilStephen Shaw RENEWAL
Izzy GarufiJapanAsiya Javayant UNQUALIFIED
Aruna FigeroaJapanBernardo Dominic NEGOTIATION
Salvatore StockhamUnited KingdomOnyama Limba QUALIFIED
Cody SaylorsSpainAnna Fali NEGOTIATION
Mayumi KolmetzItalyOnyama Limba NEGOTIATION
Wickens NestleUnited KingdomAsiya Javayant UNQUALIFIED
Ivar PaprockiJapanStephen Shaw 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>