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
Johnson SergiAustraliaElwin Sharvill QUALIFIED
Chavez BriddickUnited KingdomIvan Magalhaes QUALIFIED
David DarakjyAustraliaOnyama Limba QUALIFIED
Arvin AlbaresRussiaOnyama Limba NEGOTIATION
Aika InouyeUnited KingdomAnna Fali RENEWAL
Wickens NestleUnited KingdomXuxue Feng RENEWAL
Aditya KuskoSpainAsiya Javayant PROPOSAL
Faith GillianJapanXuxue Feng NEGOTIATION
Claire TollnerSpainBernardo Dominic PROPOSAL
Chavez BriddickIndiaAnna Fali PROPOSAL
Francesco ShinkoUnited KingdomBernardo Dominic PROPOSAL
Kaitlin OstroskyRussiaAsiya Javayant PROPOSAL
Misaki RoysterIndiaAnna Fali QUALIFIED
Ivar PaprockiJapanIvan Magalhaes NEW
Leja CaldareraFranceXuxue Feng RENEWAL
Silvio SlusarskiRussiaStephen Shaw UNQUALIFIED
Nicolas IturbideFranceIoni Bowcher NEW
Arvin AlbaresCanadaXuxue Feng UNQUALIFIED
Kadeem FlosiSpainBernardo Dominic PROPOSAL
Maisha RulapaughGermanyIvan Magalhaes RENEWAL
David DarakjyBrazilIvan Magalhaes RENEWAL
Isabel BowleyBrazilBernardo Dominic UNQUALIFIED
Aika InouyeRussiaElwin Sharvill QUALIFIED
Johnson SergiCanadaAsiya Javayant NEW
James ButtBrazilAnna Fali QUALIFIED
Leja CaldareraItalyAnna Fali QUALIFIED
Aruna FigeroaFranceXuxue Feng PROPOSAL
Rodrigues CampainBrazilIvan Magalhaes NEGOTIATION
Aruna FigeroaBrazilIvan Magalhaes PROPOSAL
Leon OldroydUnited KingdomXuxue Feng UNQUALIFIED
Izzy GarufiJapanBernardo Dominic RENEWAL
Misaki RoysterJapanStephen Shaw NEW
Ashley DoeAustraliaIvan Magalhaes NEGOTIATION
Maria MarrierRussiaAnna Fali PROPOSAL
Aika InouyeGermanyAmy Elsner QUALIFIED
Leon OldroydBrazilAmy Elsner NEW
Chavez BriddickIndiaAmy Elsner RENEWAL
Rodrigues CampainItalyElwin Sharvill PROPOSAL
Aika InouyeSpainIoni Bowcher UNQUALIFIED
Claire TollnerFranceIvan Magalhaes QUALIFIED
Misaki RoysterJapanAnna Fali UNQUALIFIED
Maria MarrierIndiaAmy Elsner QUALIFIED
Misaki RoysterGermanyAsiya Javayant PROPOSAL
Francesco ShinkoSpainStephen Shaw PROPOSAL
Nicolas IturbideIndiaStephen Shaw NEGOTIATION
Arvin AlbaresIndiaAsiya Javayant UNQUALIFIED
Izzy GarufiFranceBernardo Dominic PROPOSAL
Silvio SlusarskiArgentinaBernardo Dominic UNQUALIFIED
Francesco ShinkoItalyAnna Fali QUALIFIED
Mujtaba NickaArgentinaIoni Bowcher QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideItalyStephen Shaw UNQUALIFIED
James ButtSpainAmy Elsner RENEWAL
Ivar PaprockiItalyAsiya Javayant UNQUALIFIED
Kaitlin OstroskyIndiaAnna Fali UNQUALIFIED
Mayumi KolmetzJapanOnyama Limba QUALIFIED
Jennifer AmigonUnited KingdomOnyama Limba PROPOSAL
Leja CaldareraRussiaAnna Fali PROPOSAL
Darci PoquetteCanadaIvan Magalhaes QUALIFIED
Salvatore StockhamItalyOnyama Limba RENEWAL
Sinclair WaycottFranceAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletAustralia2021-03-22Rousseaux, Michael Esq QUALIFIED89Ioni Bowcher
1001Izzy GarufiIndia2021-04-01Chemel, James L Cpa PROPOSAL97Bernardo Dominic
1002Darci PoquetteItaly2021-04-08Rangoni Of Florence NEGOTIATION81Bernardo Dominic
1003Juan WieserAustralia2021-03-25Benton, John B Jr PROPOSAL19Asiya Javayant
1004Jennifer AmigonCanada2021-04-17Feiner Bros PROPOSAL17Anna Fali
1005Murillo MaletAustralia2021-04-10Benton, John B Jr PROPOSAL64Xuxue Feng
1006Ivar PaprockiIndia2021-03-27Benton, John B Jr RENEWAL24Ioni Bowcher
1007Tony FollerBrazil2021-04-17Truhlar And Truhlar Attys QUALIFIED21Asiya Javayant
1008Tony FollerGermany2021-04-15Buckley Miller Wright UNQUALIFIED37Onyama Limba
1009Tony FollerBrazil2021-04-01Benton, John B Jr NEGOTIATION51Stephen Shaw
1010Francesco ShinkoIndia2021-03-27Dorl, James J Esq UNQUALIFIED39Asiya Javayant
1011David DarakjyJapan2021-03-21Rousseaux, Michael Esq QUALIFIED85Amy Elsner
1012Mayumi KolmetzRussia2021-04-06Chapman, Ross E Esq NEW76Ioni Bowcher
1013Clifford RimBrazil2021-04-11King, Christopher A Esq NEW10Stephen Shaw
1014Maisha RulapaughItaly2021-04-16Chanay, Jeffrey A Esq PROPOSAL47Stephen Shaw
1015Rodrigues CampainUnited Kingdom2021-03-26Commercial Press NEGOTIATION52Ioni Bowcher
1016Aruna FigeroaFrance2021-03-28Chemel, James L Cpa NEW41Elwin Sharvill
1017Adams MorascaFrance2021-04-16Feiner Bros NEW20Stephen Shaw
1018Greenwood BologniaBrazil2021-04-10Chapman, Ross E Esq RENEWAL21Onyama Limba
1019Aika InouyeIndia2021-04-04Buckley Miller Wright NEW75Onyama Limba
1020Aruna FigeroaJapan2021-04-15Buckley Miller Wright UNQUALIFIED58Onyama Limba
1021Alejandro PerinGermany2021-04-06Benton, John B Jr NEW15Stephen Shaw
1022Arvin AlbaresAustralia2021-04-06Chapman, Ross E Esq RENEWAL13Onyama Limba
1023Juan WieserBrazil2021-03-31Truhlar And Truhlar Attys NEGOTIATION93Ioni Bowcher
1024Sinclair WaycottIndia2021-04-13Chanay, Jeffrey A Esq PROPOSAL68Elwin Sharvill
1025Aruna FigeroaCanada2021-04-15Chapman, Ross E Esq RENEWAL54Onyama Limba
1026Octavia MaletFrance2021-03-25Morlong Associates PROPOSAL14Onyama Limba
1027Ashley DoeUnited Kingdom2021-04-11Chemel, James L Cpa QUALIFIED77Xuxue Feng
1028Murillo MaletArgentina2021-04-12Feltz Printing Service NEW82Stephen Shaw
1029Salvatore StockhamUnited Kingdom2021-04-08Chanay, Jeffrey A Esq NEGOTIATION85Stephen Shaw
1030Darci PoquetteGermany2021-04-01Rousseaux, Michael Esq RENEWAL61Elwin Sharvill
1031Darci PoquetteJapan2021-03-29King, Christopher A Esq UNQUALIFIED44Asiya Javayant
1032Jones VocelkaCanada2021-03-21Commercial Press NEW78Stephen Shaw
1033Francesco ShinkoGermany2021-03-30Dorl, James J Esq RENEWAL13Amy Elsner
1034Sinclair WaycottItaly2021-03-23Printing Dimensions RENEWAL22Stephen Shaw
1035Jennifer AmigonItaly2021-03-22Feiner Bros QUALIFIED30Asiya Javayant
1036Mayumi KolmetzItaly2021-03-26Printing Dimensions QUALIFIED50Anna Fali
1037Ivar PaprockiRussia2021-03-24Chemel, James L Cpa PROPOSAL87Ioni Bowcher
1038Leja CaldareraUnited Kingdom2021-04-10Truhlar And Truhlar Attys UNQUALIFIED14Xuxue Feng
1039Silvio SlusarskiGermany2021-04-01Chemel, James L Cpa QUALIFIED67Asiya Javayant
1040Cody SaylorsBrazil2021-03-26Chapman, Ross E Esq NEGOTIATION14Elwin Sharvill
1041Darci PoquetteArgentina2021-04-03Buckley Miller Wright NEGOTIATION1Ioni Bowcher
1042Alejandro PerinUnited Kingdom2021-04-02Feiner Bros RENEWAL97Asiya Javayant
1043Ivar PaprockiIndia2021-04-11King, Christopher A Esq QUALIFIED0Amy Elsner
1044Tony FollerFrance2021-03-20Chapman, Ross E Esq UNQUALIFIED49Onyama Limba
1045Darci PoquetteCanada2021-04-09Dorl, James J Esq RENEWAL59Elwin Sharvill
1046Leon OldroydRussia2021-04-03Buckley Miller Wright QUALIFIED57Amy Elsner
1047Adams MorascaJapan2021-03-27Dorl, James J Esq PROPOSAL54Onyama Limba
1048David DarakjyCanada2021-03-25Chapman, Ross E Esq NEGOTIATION47Anna Fali
1049Leja CaldareraAustralia2021-03-19Commercial Press PROPOSAL43Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaAustraliaElwin Sharvill UNQUALIFIED
Deepesh ChuiGermanyStephen Shaw PROPOSAL
Sinclair WaycottRussiaStephen Shaw NEW
Tony FollerArgentinaOnyama Limba PROPOSAL
Izzy GarufiFranceIoni Bowcher NEW
Morrow RutaItalyBernardo Dominic PROPOSAL
Cody SaylorsArgentinaOnyama Limba QUALIFIED
Kadeem FlosiRussiaStephen Shaw UNQUALIFIED
James ButtCanadaIvan Magalhaes QUALIFIED
Alejandro PerinUnited KingdomOnyama Limba NEGOTIATION
Clifford RimCanadaAnna Fali QUALIFIED
Tony FollerSpainAsiya Javayant NEGOTIATION
Aditya KuskoGermanyOnyama Limba UNQUALIFIED
Rodrigues CampainBrazilOnyama Limba UNQUALIFIED
Salvatore StockhamAustraliaIoni Bowcher RENEWAL
Wickens NestleBrazilAmy Elsner RENEWAL
Costa DilliardGermanyXuxue Feng NEW
Antonio CaudyJapanAsiya Javayant RENEWAL
Aika InouyeFranceOnyama Limba NEGOTIATION
Greenwood BologniaCanadaAmy Elsner NEGOTIATION
Juan WieserFranceAnna Fali NEGOTIATION
Sinclair WaycottBrazilXuxue Feng NEGOTIATION
Isabel BowleyAustraliaStephen Shaw UNQUALIFIED
Ashley DoeAustraliaIvan Magalhaes RENEWAL
Izzy GarufiItalyOnyama Limba QUALIFIED
Silvio SlusarskiItalyAsiya Javayant QUALIFIED
Ashley DoeIndiaXuxue Feng NEW
Murillo MaletIndiaOnyama Limba NEGOTIATION
Chavez BriddickCanadaIvan Magalhaes QUALIFIED
Isabel BowleyArgentinaBernardo Dominic QUALIFIED
Kaitlin OstroskyUnited KingdomAsiya Javayant RENEWAL
Clifford RimUnited KingdomAsiya Javayant UNQUALIFIED
Ashley DoeRussiaAnna Fali NEW
Maisha RulapaughUnited KingdomXuxue Feng PROPOSAL
Jennifer AmigonAustraliaAnna Fali NEW
Maria MarrierItalyIoni Bowcher NEW
Faith GillianSpainAnna Fali QUALIFIED
Clifford RimFranceElwin Sharvill NEW
Costa DilliardUnited KingdomXuxue Feng RENEWAL
Darci PoquetteCanadaIvan Magalhaes QUALIFIED
Wickens NestleJapanAnna Fali RENEWAL
Alejandro PerinBrazilIoni Bowcher UNQUALIFIED
Ashley DoeItalyStephen Shaw UNQUALIFIED
Rodrigues CampainItalyAmy Elsner PROPOSAL
Tony FollerAustraliaIvan Magalhaes RENEWAL
Ivar PaprockiIndiaElwin Sharvill UNQUALIFIED
Wickens NestleSpainAnna Fali QUALIFIED
Tony FollerAustraliaXuxue Feng RENEWAL
Alejandro PerinItalyAnna Fali RENEWAL
Deepesh ChuiFranceStephen Shaw QUALIFIED
Frozen Columns
Name
Munro Ferencz
Deepesh Chui
Octavia Malet
Murillo Malet
Ricardo Gaucho
Morrow Ruta
Maisha Rulapaugh
Octavia Malet
Johnson Sergi
Johnson Sergi
Ashley Doe
Maria Marrier
Tony Foller
Faith Gillian
Faith Gillian
Faith Gillian
Jeanfrancois Venere
Claire Tollner
Deepesh Chui
Arvin Albares
Salvatore Stockham
Aika Inouye
Ivar Paprocki
Isabel Bowley
Salvatore Stockham
Johnson Sergi
Stacey Maclead
Julie Stenseth
Chavez Briddick
Salvatore Stockham
Chavez Briddick
Jeanfrancois Venere
Juan Wieser
Kaitlin Ostrosky
Silvio Slusarski
Mujtaba Nicka
Leja Caldarera
Juan Wieser
Leja Caldarera
Misaki Royster
Greenwood Bolognia
Sinclair Waycott
Salvatore Stockham
Darci Poquette
Isabel Bowley
Jeanfrancois Venere
David Darakjy
Darci Poquette
Ricardo Gaucho
Tony Foller
IdCountryDate
1000Japan2021-04-02
1001Argentina2021-04-07
1002Canada2021-04-13
1003Japan2021-03-21
1004Germany2021-03-30
1005Brazil2021-04-01
1006Japan2021-04-11
1007Argentina2021-03-25
1008Germany2021-04-03
1009United Kingdom2021-04-03
1010Russia2021-03-31
1011Italy2021-04-14
1012Brazil2021-04-16
1013France2021-04-05
1014United Kingdom2021-04-09
1015United Kingdom2021-04-01
1016Spain2021-03-19
1017Russia2021-04-04
1018Spain2021-04-09
1019Argentina2021-03-29
1020Germany2021-04-11
1021Russia2021-04-15
1022Italy2021-03-31
1023Canada2021-03-26
1024Brazil2021-04-15
1025Germany2021-04-07
1026Brazil2021-03-25
1027India2021-04-13
1028Spain2021-03-21
1029Australia2021-03-22
1030Japan2021-04-14
1031United Kingdom2021-03-22
1032Canada2021-04-01
1033Germany2021-04-15
1034Brazil2021-03-24
1035Germany2021-03-21
1036Australia2021-03-25
1037India2021-04-05
1038Japan2021-04-05
1039India2021-04-09
1040Canada2021-04-17
1041India2021-04-01
1042Japan2021-03-28
1043Germany2021-04-15
1044Russia2021-03-25
1045Australia2021-04-17
1046Japan2021-04-11
1047United Kingdom2021-03-20
1048Canada2021-03-30
1049Japan2021-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoIndiaIoni Bowcher UNQUALIFIED
Nicolas IturbideCanadaIvan Magalhaes UNQUALIFIED
Julie StensethCanadaOnyama Limba UNQUALIFIED
Leja CaldareraGermanyBernardo Dominic NEW
Mujtaba NickaGermanyIvan Magalhaes QUALIFIED
Wickens NestleUnited KingdomXuxue Feng RENEWAL
Alejandro PerinUnited KingdomAsiya Javayant NEGOTIATION
Emily WhobreySpainIvan Magalhaes NEW
Octavia MaletItalyElwin Sharvill NEW
Deepesh ChuiSpainBernardo Dominic NEGOTIATION
Kadeem FlosiRussiaStephen Shaw NEW
Jefferson SchemmerJapanAnna Fali QUALIFIED
Alejandro PerinGermanyIoni Bowcher PROPOSAL
Juan WieserRussiaAmy Elsner NEGOTIATION
Maisha RulapaughGermanyAmy Elsner QUALIFIED
Morrow RutaItalyIoni Bowcher RENEWAL
Aruna FigeroaFranceStephen Shaw UNQUALIFIED
Antonio CaudyItalyIvan Magalhaes PROPOSAL
Costa DilliardFranceIvan Magalhaes NEGOTIATION
Kaitlin OstroskyAustraliaAsiya Javayant UNQUALIFIED
Octavia MaletUnited KingdomIvan Magalhaes QUALIFIED
Jones VocelkaArgentinaIvan Magalhaes NEW
Adams MorascaArgentinaXuxue Feng NEGOTIATION
Chavez BriddickFranceOnyama Limba UNQUALIFIED
Silvio SlusarskiArgentinaOnyama Limba PROPOSAL
Tony FollerArgentinaAsiya Javayant QUALIFIED
Misaki RoysterRussiaElwin Sharvill NEW
Kaitlin OstroskySpainAsiya Javayant UNQUALIFIED
Mayumi KolmetzCanadaBernardo Dominic UNQUALIFIED
Darci PoquetteAustraliaAmy Elsner QUALIFIED
Arvin AlbaresFranceIoni Bowcher PROPOSAL
Maisha RulapaughIndiaStephen Shaw PROPOSAL
Faith GillianFranceStephen Shaw RENEWAL
Munro FerenczAustraliaBernardo Dominic RENEWAL
Kadeem FlosiGermanyElwin Sharvill UNQUALIFIED
Adams MorascaFranceIvan Magalhaes QUALIFIED
Leja CaldareraRussiaStephen Shaw QUALIFIED
Francesco ShinkoJapanIoni Bowcher NEW
Ricardo GauchoCanadaAsiya Javayant NEW
Costa DilliardIndiaAnna Fali 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>