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
Kadeem FlosiBrazilXuxue Feng QUALIFIED
Octavia MaletSpainBernardo Dominic UNQUALIFIED
Kaitlin OstroskyUnited KingdomXuxue Feng UNQUALIFIED
Claire TollnerUnited KingdomElwin Sharvill NEW
Maisha RulapaughIndiaStephen Shaw RENEWAL
Stacey MacleadJapanStephen Shaw NEGOTIATION
Adams MorascaFranceIoni Bowcher PROPOSAL
Chavez BriddickUnited KingdomIvan Magalhaes RENEWAL
Jefferson SchemmerFranceXuxue Feng NEW
Cody SaylorsCanadaAmy Elsner NEGOTIATION
Greenwood BologniaRussiaAsiya Javayant UNQUALIFIED
Isabel BowleyBrazilIvan Magalhaes NEW
Jennifer AmigonSpainBernardo Dominic RENEWAL
David DarakjyRussiaAnna Fali RENEWAL
Kadeem FlosiArgentinaAsiya Javayant RENEWAL
Mayumi KolmetzRussiaAnna Fali QUALIFIED
Jennifer AmigonAustraliaStephen Shaw NEGOTIATION
Greenwood BologniaUnited KingdomStephen Shaw QUALIFIED
Francesco ShinkoGermanyAsiya Javayant NEW
James ButtSpainAnna Fali UNQUALIFIED
Jennifer AmigonCanadaIvan Magalhaes PROPOSAL
Clifford RimJapanAsiya Javayant NEW
Mayumi KolmetzBrazilBernardo Dominic RENEWAL
Arvin AlbaresAustraliaOnyama Limba PROPOSAL
David DarakjyGermanyIoni Bowcher UNQUALIFIED
Aditya KuskoBrazilAnna Fali UNQUALIFIED
Jeanfrancois VenereIndiaAmy Elsner RENEWAL
Maisha RulapaughFranceOnyama Limba RENEWAL
David DarakjyAustraliaAnna Fali QUALIFIED
Alejandro PerinArgentinaAnna Fali NEW
Julie StensethCanadaOnyama Limba QUALIFIED
Kadeem FlosiBrazilAnna Fali RENEWAL
Jefferson SchemmerJapanBernardo Dominic NEGOTIATION
Munro FerenczItalyAsiya Javayant UNQUALIFIED
Costa DilliardJapanIoni Bowcher PROPOSAL
Jennifer AmigonFranceAnna Fali NEW
Maria MarrierUnited KingdomAnna Fali UNQUALIFIED
Leja CaldareraCanadaOnyama Limba NEW
Izzy GarufiJapanAnna Fali QUALIFIED
Costa DilliardBrazilAsiya Javayant UNQUALIFIED
Greenwood BologniaAustraliaAsiya Javayant NEW
Antonio CaudyIndiaStephen Shaw UNQUALIFIED
Cody SaylorsSpainBernardo Dominic PROPOSAL
David DarakjyJapanAmy Elsner RENEWAL
Antonio CaudyIndiaIoni Bowcher QUALIFIED
Aruna FigeroaItalyStephen Shaw UNQUALIFIED
Smith GlickArgentinaOnyama Limba NEGOTIATION
David DarakjyGermanyOnyama Limba RENEWAL
Misaki RoysterRussiaAmy Elsner RENEWAL
Chavez BriddickUnited KingdomBernardo Dominic UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan WieserUnited KingdomAnna Fali PROPOSAL
Aditya KuskoBrazilStephen Shaw RENEWAL
Salvatore StockhamFranceIoni Bowcher NEW
Greenwood BologniaArgentinaAnna Fali QUALIFIED
Murillo MaletBrazilStephen Shaw UNQUALIFIED
Stacey MacleadCanadaOnyama Limba UNQUALIFIED
Juan WieserIndiaBernardo Dominic NEW
Murillo MaletCanadaElwin Sharvill UNQUALIFIED
Emily WhobreyGermanyIoni Bowcher NEW
Adams MorascaIndiaIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore StockhamUnited Kingdom2021-04-10Feiner Bros QUALIFIED39Anna Fali
1001Deepesh ChuiArgentina2021-04-03Rousseaux, Michael Esq PROPOSAL21Bernardo Dominic
1002Jennifer AmigonSpain2021-03-31King, Christopher A Esq QUALIFIED59Stephen Shaw
1003Adams MorascaAustralia2021-04-12King, Christopher A Esq NEW27Asiya Javayant
1004Emily WhobreyRussia2021-03-27Chanay, Jeffrey A Esq QUALIFIED28Elwin Sharvill
1005Aruna FigeroaFrance2021-03-28Rousseaux, Michael Esq NEGOTIATION74Bernardo Dominic
1006Darci PoquetteFrance2021-04-17Printing Dimensions NEGOTIATION68Amy Elsner
1007Ivar PaprockiIndia2021-04-06Chapman, Ross E Esq NEGOTIATION43Elwin Sharvill
1008Octavia MaletArgentina2021-03-27Chanay, Jeffrey A Esq PROPOSAL35Elwin Sharvill
1009Adams MorascaRussia2021-04-21Dorl, James J Esq NEGOTIATION21Onyama Limba
1010Aika InouyeBrazil2021-04-10King, Christopher A Esq NEW77Onyama Limba
1011Wickens NestleIndia2021-04-06Dorl, James J Esq PROPOSAL42Amy Elsner
1012Jones VocelkaBrazil2021-04-13Chanay, Jeffrey A Esq NEW91Onyama Limba
1013Kadeem FlosiSpain2021-03-24King, Christopher A Esq NEGOTIATION20Ioni Bowcher
1014Sinclair WaycottAustralia2021-04-03Chemel, James L Cpa QUALIFIED20Elwin Sharvill
1015Darci PoquetteIndia2021-04-01Benton, John B Jr PROPOSAL13Bernardo Dominic
1016Aditya KuskoIndia2021-04-21King, Christopher A Esq UNQUALIFIED85Onyama Limba
1017Kaitlin OstroskyIndia2021-04-04Rousseaux, Michael Esq UNQUALIFIED27Bernardo Dominic
1018Aruna FigeroaItaly2021-03-26Truhlar And Truhlar Attys PROPOSAL8Asiya Javayant
1019Misaki RoysterFrance2021-04-14Buckley Miller Wright QUALIFIED17Onyama Limba
1020Jeanfrancois VenereItaly2021-03-26King, Christopher A Esq UNQUALIFIED2Asiya Javayant
1021Isabel BowleyCanada2021-03-23Chanay, Jeffrey A Esq PROPOSAL66Anna Fali
1022Maisha RulapaughUnited Kingdom2021-04-07Chapman, Ross E Esq RENEWAL41Ivan Magalhaes
1023Ashley DoeGermany2021-04-21Buckley Miller Wright PROPOSAL53Xuxue Feng
1024Rodrigues CampainGermany2021-04-18Buckley Miller Wright QUALIFIED73Anna Fali
1025Leja CaldareraArgentina2021-04-06Printing Dimensions NEGOTIATION34Xuxue Feng
1026Faith GillianFrance2021-03-26Feiner Bros UNQUALIFIED20Anna Fali
1027Jeanfrancois VenereIndia2021-04-16Chemel, James L Cpa RENEWAL11Stephen Shaw
1028Mayumi KolmetzUnited Kingdom2021-04-09Dorl, James J Esq NEGOTIATION89Amy Elsner
1029Silvio SlusarskiAustralia2021-04-15Truhlar And Truhlar Attys NEGOTIATION14Onyama Limba
1030Aika InouyeBrazil2021-04-19King, Christopher A Esq PROPOSAL74Ioni Bowcher
1031Isabel BowleyFrance2021-04-09Rangoni Of Florence PROPOSAL14Xuxue Feng
1032Aruna FigeroaBrazil2021-04-06Commercial Press UNQUALIFIED72Anna Fali
1033Mujtaba NickaJapan2021-03-27Feltz Printing Service NEW62Ivan Magalhaes
1034Adams MorascaFrance2021-03-23King, Christopher A Esq PROPOSAL65Ivan Magalhaes
1035Morrow RutaRussia2021-04-08Rousseaux, Michael Esq NEW24Asiya Javayant
1036Kaitlin OstroskyJapan2021-04-13Benton, John B Jr PROPOSAL76Anna Fali
1037Smith GlickItaly2021-04-21Chapman, Ross E Esq RENEWAL54Elwin Sharvill
1038Misaki RoysterBrazil2021-04-20Rangoni Of Florence RENEWAL67Xuxue Feng
1039Aruna FigeroaUnited Kingdom2021-03-28Feiner Bros QUALIFIED64Elwin Sharvill
1040Johnson SergiSpain2021-04-10King, Christopher A Esq QUALIFIED29Anna Fali
1041Darci PoquetteItaly2021-03-26Morlong Associates UNQUALIFIED32Ioni Bowcher
1042Cody SaylorsIndia2021-03-26Chemel, James L Cpa RENEWAL73Ioni Bowcher
1043Wickens NestleSpain2021-04-12Printing Dimensions NEGOTIATION10Bernardo Dominic
1044Kaitlin OstroskyIndia2021-04-14Feiner Bros NEGOTIATION12Asiya Javayant
1045Jeanfrancois VenereUnited Kingdom2021-03-26Feiner Bros PROPOSAL63Bernardo Dominic
1046Jones VocelkaCanada2021-03-29Truhlar And Truhlar Attys NEGOTIATION36Xuxue Feng
1047Kadeem FlosiAustralia2021-04-14Dorl, James J Esq NEW13Elwin Sharvill
1048Greenwood BologniaIndia2021-04-13King, Christopher A Esq PROPOSAL6Ivan Magalhaes
1049Jeanfrancois VenereItaly2021-03-28King, Christopher A Esq NEGOTIATION43Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereJapanAnna Fali NEGOTIATION
Ricardo GauchoBrazilXuxue Feng QUALIFIED
Morrow RutaCanadaAmy Elsner NEGOTIATION
Arvin AlbaresIndiaElwin Sharvill RENEWAL
Smith GlickCanadaXuxue Feng QUALIFIED
Alejandro PerinUnited KingdomIoni Bowcher NEW
Maria MarrierArgentinaStephen Shaw RENEWAL
David DarakjyCanadaStephen Shaw UNQUALIFIED
Smith GlickAustraliaAmy Elsner PROPOSAL
Francesco ShinkoJapanXuxue Feng PROPOSAL
Cody SaylorsGermanyIvan Magalhaes QUALIFIED
Greenwood BologniaRussiaElwin Sharvill RENEWAL
Octavia MaletGermanyStephen Shaw NEW
Aditya KuskoAustraliaStephen Shaw UNQUALIFIED
Arvin AlbaresUnited KingdomStephen Shaw RENEWAL
Greenwood BologniaIndiaBernardo Dominic NEGOTIATION
Izzy GarufiJapanAnna Fali UNQUALIFIED
Chavez BriddickAustraliaXuxue Feng NEGOTIATION
Cody SaylorsUnited KingdomIvan Magalhaes NEGOTIATION
David DarakjyBrazilOnyama Limba PROPOSAL
Leja CaldareraBrazilAnna Fali QUALIFIED
Costa DilliardFranceAmy Elsner NEW
Cody SaylorsUnited KingdomOnyama Limba PROPOSAL
Darci PoquetteIndiaElwin Sharvill NEGOTIATION
Mayumi KolmetzItalyOnyama Limba NEW
Tony FollerItalyStephen Shaw UNQUALIFIED
Morrow RutaGermanyAnna Fali PROPOSAL
Darci PoquetteJapanElwin Sharvill NEW
Salvatore StockhamSpainBernardo Dominic PROPOSAL
Chavez BriddickGermanyStephen Shaw NEW
Kaitlin OstroskyIndiaElwin Sharvill UNQUALIFIED
Deepesh ChuiCanadaAnna Fali NEW
Antonio CaudyJapanAnna Fali QUALIFIED
Izzy GarufiUnited KingdomAnna Fali NEGOTIATION
Jennifer AmigonJapanElwin Sharvill QUALIFIED
Darci PoquetteArgentinaBernardo Dominic NEGOTIATION
Greenwood BologniaCanadaIvan Magalhaes QUALIFIED
Rodrigues CampainUnited KingdomElwin Sharvill NEW
Izzy GarufiSpainAmy Elsner PROPOSAL
Leja CaldareraJapanOnyama Limba NEW
Kaitlin OstroskyAustraliaAnna Fali NEGOTIATION
Kaitlin OstroskyUnited KingdomBernardo Dominic NEW
Salvatore StockhamGermanyXuxue Feng UNQUALIFIED
Emily WhobreyGermanyIvan Magalhaes UNQUALIFIED
Ivar PaprockiBrazilElwin Sharvill NEW
Isabel BowleyBrazilAnna Fali NEGOTIATION
Rodrigues CampainFranceXuxue Feng NEGOTIATION
Clifford RimJapanAmy Elsner UNQUALIFIED
Alejandro PerinGermanyAmy Elsner UNQUALIFIED
Kadeem FlosiBrazilAmy Elsner NEGOTIATION
Frozen Columns
Name
Emily Whobrey
Morrow Ruta
Adams Morasca
Costa Dilliard
Izzy Garufi
Antonio Caudy
Leja Caldarera
Maria Marrier
Kadeem Flosi
Sinclair Waycott
Octavia Malet
Ashley Doe
Leon Oldroyd
Alejandro Perin
Tony Foller
Aruna Figeroa
Kadeem Flosi
Octavia Malet
Murillo Malet
Octavia Malet
Francesco Shinko
Leja Caldarera
Aika Inouye
Leon Oldroyd
Mayumi Kolmetz
Maria Marrier
Greenwood Bolognia
Rodrigues Campain
Juan Wieser
Antonio Caudy
Adams Morasca
Smith Glick
Clifford Rim
Emily Whobrey
Tony Foller
Stacey Maclead
Jefferson Schemmer
Maria Marrier
Arvin Albares
Ashley Doe
Johnson Sergi
Mayumi Kolmetz
Jennifer Amigon
Juan Wieser
Darci Poquette
Stacey Maclead
Maisha Rulapaugh
Silvio Slusarski
Izzy Garufi
Aika Inouye
IdCountryDate
1000Australia2021-03-28
1001India2021-03-25
1002Russia2021-03-23
1003Spain2021-03-28
1004Russia2021-04-03
1005Brazil2021-04-16
1006Spain2021-03-31
1007Australia2021-03-23
1008India2021-04-05
1009Argentina2021-04-16
1010Germany2021-03-28
1011Italy2021-03-26
1012Japan2021-04-14
1013Italy2021-03-27
1014Canada2021-04-08
1015India2021-04-02
1016Russia2021-04-19
1017Australia2021-04-02
1018Brazil2021-03-31
1019Spain2021-04-01
1020Australia2021-04-14
1021Australia2021-04-17
1022Russia2021-04-04
1023France2021-04-04
1024Russia2021-04-10
1025Russia2021-04-10
1026India2021-04-16
1027Canada2021-03-29
1028Canada2021-03-30
1029Canada2021-04-09
1030India2021-04-19
1031India2021-03-28
1032Canada2021-04-08
1033Germany2021-03-29
1034Spain2021-03-30
1035Japan2021-04-11
1036Italy2021-04-18
1037Australia2021-03-28
1038Brazil2021-04-21
1039Japan2021-03-28
1040Spain2021-03-26
1041Germany2021-04-08
1042Spain2021-04-18
1043Argentina2021-04-08
1044India2021-04-21
1045Japan2021-04-19
1046Russia2021-04-09
1047United Kingdom2021-04-09
1048Spain2021-03-25
1049Germany2021-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson SchemmerItalyAmy Elsner RENEWAL
Jeanfrancois VenereItalyXuxue Feng PROPOSAL
Octavia MaletUnited KingdomAsiya Javayant NEGOTIATION
Salvatore StockhamIndiaElwin Sharvill NEW
Ivar PaprockiUnited KingdomAsiya Javayant NEGOTIATION
Clifford RimUnited KingdomAsiya Javayant PROPOSAL
Kadeem FlosiArgentinaIvan Magalhaes QUALIFIED
Chavez BriddickIndiaAnna Fali NEW
Ivar PaprockiCanadaIoni Bowcher NEGOTIATION
Francesco ShinkoCanadaIoni Bowcher PROPOSAL
Isabel BowleyRussiaElwin Sharvill PROPOSAL
Chavez BriddickUnited KingdomXuxue Feng NEGOTIATION
Nicolas IturbideItalyBernardo Dominic PROPOSAL
David DarakjyBrazilIoni Bowcher NEW
Isabel BowleySpainAnna Fali RENEWAL
Deepesh ChuiArgentinaElwin Sharvill NEW
Kaitlin OstroskyArgentinaAsiya Javayant UNQUALIFIED
Salvatore StockhamBrazilAnna Fali UNQUALIFIED
Isabel BowleyBrazilAnna Fali NEW
Alejandro PerinArgentinaAsiya Javayant RENEWAL
Jefferson SchemmerRussiaBernardo Dominic UNQUALIFIED
Jeanfrancois VenereArgentinaOnyama Limba UNQUALIFIED
Antonio CaudySpainStephen Shaw PROPOSAL
Francesco ShinkoItalyIoni Bowcher PROPOSAL
Cody SaylorsCanadaBernardo Dominic RENEWAL
Claire TollnerCanadaStephen Shaw PROPOSAL
Octavia MaletAustraliaElwin Sharvill UNQUALIFIED
Deepesh ChuiArgentinaOnyama Limba RENEWAL
James ButtIndiaBernardo Dominic UNQUALIFIED
Maisha RulapaughJapanIoni Bowcher RENEWAL
Francesco ShinkoJapanIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereJapanAnna Fali UNQUALIFIED
Maisha RulapaughUnited KingdomElwin Sharvill PROPOSAL
Mujtaba NickaUnited KingdomAnna Fali NEW
Silvio SlusarskiItalyIvan Magalhaes RENEWAL
Costa DilliardRussiaAmy Elsner NEW
Greenwood BologniaJapanIoni Bowcher PROPOSAL
Francesco ShinkoJapanBernardo Dominic UNQUALIFIED
Greenwood BologniaJapanStephen Shaw NEW
Jennifer AmigonSpainAnna Fali 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>