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
Octavia MaletItalyIoni Bowcher QUALIFIED
Jones VocelkaRussiaAmy Elsner PROPOSAL
Ricardo GauchoGermanyAsiya Javayant NEGOTIATION
Leja CaldareraSpainAnna Fali UNQUALIFIED
David DarakjyArgentinaIoni Bowcher NEW
Rodrigues CampainRussiaAmy Elsner QUALIFIED
Maria MarrierAustraliaBernardo Dominic UNQUALIFIED
Mujtaba NickaIndiaAmy Elsner UNQUALIFIED
Claire TollnerItalyOnyama Limba QUALIFIED
David DarakjyItalyStephen Shaw NEW
Cody SaylorsCanadaAsiya Javayant NEGOTIATION
Alejandro PerinJapanOnyama Limba RENEWAL
Jennifer AmigonItalyOnyama Limba RENEWAL
Chavez BriddickFranceBernardo Dominic RENEWAL
Alejandro PerinBrazilStephen Shaw RENEWAL
Aruna FigeroaItalyIvan Magalhaes NEW
Silvio SlusarskiRussiaIoni Bowcher PROPOSAL
Kadeem FlosiUnited KingdomOnyama Limba NEGOTIATION
Tony FollerUnited KingdomAnna Fali PROPOSAL
Francesco ShinkoBrazilAnna Fali RENEWAL
Nicolas IturbideFranceAmy Elsner UNQUALIFIED
Jeanfrancois VenereBrazilStephen Shaw UNQUALIFIED
Maria MarrierItalyIvan Magalhaes NEW
Maisha RulapaughUnited KingdomStephen Shaw UNQUALIFIED
Kadeem FlosiAustraliaBernardo Dominic PROPOSAL
Kadeem FlosiRussiaAnna Fali QUALIFIED
Rodrigues CampainFranceBernardo Dominic PROPOSAL
Salvatore StockhamAustraliaIvan Magalhaes PROPOSAL
Jefferson SchemmerBrazilXuxue Feng QUALIFIED
Faith GillianAustraliaIoni Bowcher NEW
Izzy GarufiIndiaAmy Elsner PROPOSAL
Juan WieserBrazilElwin Sharvill UNQUALIFIED
Jeanfrancois VenereUnited KingdomIoni Bowcher NEGOTIATION
Faith GillianAustraliaAnna Fali RENEWAL
Julie StensethUnited KingdomStephen Shaw NEGOTIATION
Ivar PaprockiUnited KingdomBernardo Dominic PROPOSAL
Chavez BriddickUnited KingdomOnyama Limba PROPOSAL
Wickens NestleBrazilIoni Bowcher QUALIFIED
James ButtAustraliaIoni Bowcher NEW
Ashley DoeFranceElwin Sharvill NEW
Munro FerenczJapanOnyama Limba NEW
Salvatore StockhamFranceStephen Shaw NEGOTIATION
Greenwood BologniaJapanStephen Shaw QUALIFIED
Stacey MacleadBrazilAmy Elsner RENEWAL
Aruna FigeroaArgentinaElwin Sharvill NEW
Wickens NestleIndiaAmy Elsner UNQUALIFIED
Wickens NestleItalyIoni Bowcher UNQUALIFIED
Octavia MaletBrazilElwin Sharvill UNQUALIFIED
Rodrigues CampainFranceBernardo Dominic PROPOSAL
Leja CaldareraIndiaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa DilliardUnited KingdomOnyama Limba NEGOTIATION
Ivar PaprockiSpainAmy Elsner QUALIFIED
Maria MarrierFranceElwin Sharvill PROPOSAL
Deepesh ChuiBrazilIvan Magalhaes RENEWAL
Arvin AlbaresUnited KingdomIoni Bowcher RENEWAL
Faith GillianAustraliaIvan Magalhaes QUALIFIED
Nicolas IturbideIndiaStephen Shaw RENEWAL
Johnson SergiUnited KingdomStephen Shaw NEGOTIATION
Mujtaba NickaSpainAmy Elsner NEW
Silvio SlusarskiBrazilElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois VenereSpain2021-04-15Feiner Bros PROPOSAL10Bernardo Dominic
1001Jones VocelkaJapan2021-03-18Morlong Associates RENEWAL98Stephen Shaw
1002Costa DilliardUnited Kingdom2021-04-10Benton, John B Jr UNQUALIFIED76Stephen Shaw
1003Julie StensethGermany2021-03-31Commercial Press NEGOTIATION79Stephen Shaw
1004Ricardo GauchoBrazil2021-04-11Morlong Associates NEW62Anna Fali
1005Salvatore StockhamRussia2021-03-28Morlong Associates UNQUALIFIED31Onyama Limba
1006Isabel BowleyCanada2021-04-07Dorl, James J Esq NEW31Ivan Magalhaes
1007Isabel BowleyFrance2021-04-04Buckley Miller Wright NEGOTIATION41Amy Elsner
1008Julie StensethGermany2021-04-09Commercial Press NEW23Bernardo Dominic
1009Leon OldroydIndia2021-04-10Printing Dimensions NEGOTIATION45Amy Elsner
1010Silvio SlusarskiSpain2021-03-22King, Christopher A Esq PROPOSAL6Anna Fali
1011Jones VocelkaItaly2021-03-28Morlong Associates UNQUALIFIED81Amy Elsner
1012Aditya KuskoRussia2021-04-02Chemel, James L Cpa NEW20Onyama Limba
1013Costa DilliardJapan2021-03-29Benton, John B Jr QUALIFIED26Ioni Bowcher
1014Jennifer AmigonCanada2021-04-02Feltz Printing Service NEGOTIATION74Ioni Bowcher
1015Salvatore StockhamBrazil2021-03-30Feiner Bros NEGOTIATION17Bernardo Dominic
1016Tony FollerGermany2021-03-20Dorl, James J Esq RENEWAL24Onyama Limba
1017Jones VocelkaArgentina2021-03-17Morlong Associates RENEWAL55Xuxue Feng
1018Ashley DoeBrazil2021-04-08Feltz Printing Service QUALIFIED60Ivan Magalhaes
1019Morrow RutaArgentina2021-03-31Truhlar And Truhlar Attys RENEWAL64Bernardo Dominic
1020Clifford RimAustralia2021-04-09Truhlar And Truhlar Attys UNQUALIFIED89Onyama Limba
1021Nicolas IturbideBrazil2021-04-15Morlong Associates NEW7Ioni Bowcher
1022Aditya KuskoBrazil2021-03-22Benton, John B Jr NEGOTIATION64Amy Elsner
1023Misaki RoysterBrazil2021-03-31Rousseaux, Michael Esq NEW68Amy Elsner
1024Jennifer AmigonArgentina2021-03-25Printing Dimensions RENEWAL42Stephen Shaw
1025Mujtaba NickaSpain2021-04-01Truhlar And Truhlar Attys NEW26Stephen Shaw
1026Kadeem FlosiSpain2021-04-07Feltz Printing Service NEGOTIATION7Ivan Magalhaes
1027Chavez BriddickJapan2021-04-01Morlong Associates RENEWAL24Asiya Javayant
1028Izzy GarufiSpain2021-03-25Chapman, Ross E Esq NEGOTIATION66Amy Elsner
1029Aruna FigeroaFrance2021-03-29Chapman, Ross E Esq NEGOTIATION15Anna Fali
1030Isabel BowleyFrance2021-04-04Chemel, James L Cpa RENEWAL10Asiya Javayant
1031Faith GillianSpain2021-04-10Chemel, James L Cpa NEGOTIATION0Onyama Limba
1032Julie StensethIndia2021-04-04Commercial Press NEGOTIATION11Ioni Bowcher
1033Adams MorascaCanada2021-04-13King, Christopher A Esq QUALIFIED1Bernardo Dominic
1034Rodrigues CampainCanada2021-04-01Rangoni Of Florence UNQUALIFIED70Ivan Magalhaes
1035Aruna FigeroaSpain2021-04-01King, Christopher A Esq UNQUALIFIED85Anna Fali
1036Maria MarrierIndia2021-04-15Morlong Associates PROPOSAL21Asiya Javayant
1037Antonio CaudyUnited Kingdom2021-03-29Benton, John B Jr NEGOTIATION56Stephen Shaw
1038Alejandro PerinCanada2021-04-02Rousseaux, Michael Esq QUALIFIED55Amy Elsner
1039Kadeem FlosiIndia2021-04-11Chemel, James L Cpa PROPOSAL29Stephen Shaw
1040Greenwood BologniaFrance2021-03-18Truhlar And Truhlar Attys PROPOSAL94Ioni Bowcher
1041Stacey MacleadAustralia2021-03-29Dorl, James J Esq UNQUALIFIED83Bernardo Dominic
1042Izzy GarufiJapan2021-03-24Chanay, Jeffrey A Esq NEW57Asiya Javayant
1043Jeanfrancois VenereItaly2021-04-12Chanay, Jeffrey A Esq NEGOTIATION36Xuxue Feng
1044Rodrigues CampainGermany2021-03-24Benton, John B Jr NEGOTIATION31Anna Fali
1045Munro FerenczCanada2021-04-05Commercial Press PROPOSAL21Amy Elsner
1046Darci PoquetteFrance2021-03-27Morlong Associates NEW60Amy Elsner
1047Wickens NestleCanada2021-03-31Chapman, Ross E Esq PROPOSAL67Ioni Bowcher
1048Jones VocelkaGermany2021-04-02Feiner Bros UNQUALIFIED60Ivan Magalhaes
1049Johnson SergiCanada2021-04-06Rousseaux, Michael Esq PROPOSAL4Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Nicolas IturbideSpainAnna Fali QUALIFIED
Greenwood BologniaItalyXuxue Feng PROPOSAL
Deepesh ChuiArgentinaElwin Sharvill UNQUALIFIED
David DarakjySpainBernardo Dominic RENEWAL
Silvio SlusarskiFranceStephen Shaw RENEWAL
Cody SaylorsBrazilAmy Elsner UNQUALIFIED
Stacey MacleadItalyAnna Fali QUALIFIED
Silvio SlusarskiArgentinaElwin Sharvill PROPOSAL
Ivar PaprockiGermanyAsiya Javayant NEW
Juan WieserBrazilOnyama Limba PROPOSAL
Kaitlin OstroskyAustraliaAnna Fali UNQUALIFIED
Murillo MaletIndiaBernardo Dominic NEW
Maisha RulapaughUnited KingdomAmy Elsner PROPOSAL
Stacey MacleadItalyXuxue Feng NEW
Aruna FigeroaItalyElwin Sharvill NEGOTIATION
Nicolas IturbideFranceBernardo Dominic PROPOSAL
Jennifer AmigonIndiaAmy Elsner PROPOSAL
Izzy GarufiBrazilIvan Magalhaes UNQUALIFIED
Smith GlickAustraliaAmy Elsner RENEWAL
Juan WieserArgentinaAmy Elsner QUALIFIED
Ricardo GauchoIndiaXuxue Feng NEW
Misaki RoysterRussiaAmy Elsner NEGOTIATION
Morrow RutaCanadaStephen Shaw RENEWAL
Izzy GarufiAustraliaAsiya Javayant RENEWAL
Ivar PaprockiSpainIvan Magalhaes NEGOTIATION
Aika InouyeRussiaXuxue Feng NEGOTIATION
Francesco ShinkoUnited KingdomOnyama Limba RENEWAL
Murillo MaletArgentinaAnna Fali NEW
Sinclair WaycottArgentinaAmy Elsner QUALIFIED
Aditya KuskoJapanIvan Magalhaes NEGOTIATION
Maisha RulapaughCanadaXuxue Feng RENEWAL
Clifford RimFranceAsiya Javayant UNQUALIFIED
Alejandro PerinIndiaXuxue Feng PROPOSAL
Deepesh ChuiSpainXuxue Feng QUALIFIED
Ashley DoeRussiaAmy Elsner UNQUALIFIED
Nicolas IturbideFranceAnna Fali UNQUALIFIED
Antonio CaudyCanadaAsiya Javayant NEGOTIATION
Francesco ShinkoGermanyXuxue Feng UNQUALIFIED
Jeanfrancois VenereSpainAsiya Javayant RENEWAL
Chavez BriddickFranceAsiya Javayant PROPOSAL
Rodrigues CampainArgentinaIoni Bowcher RENEWAL
Deepesh ChuiSpainIoni Bowcher RENEWAL
Ashley DoeArgentinaAnna Fali NEGOTIATION
Johnson SergiBrazilIoni Bowcher QUALIFIED
Octavia MaletBrazilOnyama Limba RENEWAL
Silvio SlusarskiArgentinaAnna Fali UNQUALIFIED
Silvio SlusarskiArgentinaIoni Bowcher NEGOTIATION
David DarakjyAustraliaBernardo Dominic PROPOSAL
Maisha RulapaughRussiaAmy Elsner QUALIFIED
Munro FerenczIndiaStephen Shaw UNQUALIFIED
Frozen Columns
Name
Murillo Malet
Jeanfrancois Venere
David Darakjy
Aika Inouye
Johnson Sergi
Jones Vocelka
Julie Stenseth
Darci Poquette
Munro Ferencz
Jefferson Schemmer
Costa Dilliard
Morrow Ruta
Antonio Caudy
Deepesh Chui
Maisha Rulapaugh
Kaitlin Ostrosky
Leon Oldroyd
Jones Vocelka
Aika Inouye
Emily Whobrey
Clifford Rim
Maria Marrier
Murillo Malet
Cody Saylors
Silvio Slusarski
Smith Glick
Jennifer Amigon
David Darakjy
Silvio Slusarski
David Darakjy
Smith Glick
Kaitlin Ostrosky
Kadeem Flosi
David Darakjy
Johnson Sergi
Costa Dilliard
Smith Glick
Alejandro Perin
Faith Gillian
Clifford Rim
Aruna Figeroa
Silvio Slusarski
Aditya Kusko
Misaki Royster
Tony Foller
Darci Poquette
Misaki Royster
Chavez Briddick
Munro Ferencz
Antonio Caudy
IdCountryDate
1000France2021-04-07
1001Spain2021-03-28
1002Argentina2021-04-08
1003Brazil2021-03-31
1004Argentina2021-04-15
1005Japan2021-04-05
1006Italy2021-04-15
1007United Kingdom2021-03-18
1008Germany2021-04-01
1009Australia2021-04-05
1010Australia2021-04-11
1011Brazil2021-03-24
1012Germany2021-03-17
1013Italy2021-03-28
1014Japan2021-04-06
1015India2021-04-14
1016France2021-03-20
1017Germany2021-04-07
1018Russia2021-03-25
1019Brazil2021-03-27
1020Argentina2021-03-30
1021Brazil2021-04-10
1022United Kingdom2021-03-27
1023Canada2021-04-02
1024Spain2021-04-01
1025Spain2021-04-12
1026India2021-03-30
1027Argentina2021-03-24
1028Italy2021-04-01
1029Russia2021-03-29
1030Russia2021-04-04
1031Italy2021-04-01
1032Italy2021-03-20
1033Canada2021-03-24
1034Russia2021-04-07
1035Germany2021-04-15
1036Spain2021-03-30
1037Spain2021-03-31
1038United Kingdom2021-04-15
1039Japan2021-04-08
1040Russia2021-03-31
1041Spain2021-04-07
1042Germany2021-03-18
1043Japan2021-04-08
1044United Kingdom2021-04-07
1045United Kingdom2021-03-20
1046Australia2021-04-08
1047Russia2021-03-17
1048Japan2021-04-05
1049Japan2021-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David DarakjySpainElwin Sharvill PROPOSAL
Maria MarrierIndiaIoni Bowcher UNQUALIFIED
Silvio SlusarskiIndiaAnna Fali NEW
Tony FollerCanadaAnna Fali RENEWAL
Adams MorascaAustraliaAsiya Javayant UNQUALIFIED
Cody SaylorsCanadaAsiya Javayant PROPOSAL
Leon OldroydGermanyBernardo Dominic PROPOSAL
Ricardo GauchoArgentinaIoni Bowcher NEGOTIATION
Izzy GarufiUnited KingdomAsiya Javayant PROPOSAL
Silvio SlusarskiSpainAmy Elsner UNQUALIFIED
Maisha RulapaughUnited KingdomElwin Sharvill NEGOTIATION
Stacey MacleadItalyAsiya Javayant NEW
David DarakjyCanadaOnyama Limba NEGOTIATION
Leja CaldareraGermanyElwin Sharvill PROPOSAL
Costa DilliardSpainStephen Shaw NEW
Arvin AlbaresItalyXuxue Feng PROPOSAL
Julie StensethFranceBernardo Dominic RENEWAL
Adams MorascaCanadaIoni Bowcher RENEWAL
Leon OldroydSpainElwin Sharvill RENEWAL
Maisha RulapaughGermanyStephen Shaw QUALIFIED
Murillo MaletSpainAmy Elsner RENEWAL
Kadeem FlosiArgentinaElwin Sharvill RENEWAL
Chavez BriddickArgentinaBernardo Dominic RENEWAL
Juan WieserSpainXuxue Feng NEW
Faith GillianIndiaStephen Shaw UNQUALIFIED
Morrow RutaItalyIoni Bowcher NEW
Aruna FigeroaUnited KingdomStephen Shaw PROPOSAL
Jones VocelkaJapanIvan Magalhaes UNQUALIFIED
James ButtRussiaXuxue Feng RENEWAL
Deepesh ChuiGermanyAmy Elsner RENEWAL
James ButtJapanIvan Magalhaes NEW
Munro FerenczBrazilOnyama Limba NEGOTIATION
Chavez BriddickBrazilAsiya Javayant RENEWAL
Greenwood BologniaIndiaAmy Elsner NEGOTIATION
Antonio CaudySpainXuxue Feng QUALIFIED
Mujtaba NickaBrazilBernardo Dominic PROPOSAL
Leon OldroydGermanyAmy Elsner NEW
Julie StensethIndiaElwin Sharvill NEW
Greenwood BologniaJapanElwin Sharvill NEW
Francesco ShinkoIndiaAmy Elsner QUALIFIED

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