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.

Bootstrap light blue and dark blue themes are also included in PrimeFaces 10.x builds for Elite subscribers.

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
Sinclair WaycottJapanOnyama Limba UNQUALIFIED
Emily WhobreyAustraliaAnna Fali UNQUALIFIED
Julie StensethArgentinaBernardo Dominic UNQUALIFIED
David DarakjyJapanStephen Shaw NEGOTIATION
Chavez BriddickFranceIoni Bowcher NEGOTIATION
Juan WieserItalyIoni Bowcher UNQUALIFIED
Deepesh ChuiSpainStephen Shaw NEW
Antonio CaudyBrazilXuxue Feng RENEWAL
Ashley DoeCanadaBernardo Dominic NEW
Maisha RulapaughAustraliaOnyama Limba PROPOSAL
Arvin AlbaresAustraliaXuxue Feng RENEWAL
Jefferson SchemmerUnited KingdomBernardo Dominic RENEWAL
Clifford RimItalyIoni Bowcher PROPOSAL
Alejandro PerinItalyIoni Bowcher UNQUALIFIED
Maria MarrierBrazilXuxue Feng RENEWAL
Jones VocelkaIndiaElwin Sharvill RENEWAL
Aika InouyeUnited KingdomIoni Bowcher RENEWAL
Kadeem FlosiJapanOnyama Limba UNQUALIFIED
Murillo MaletJapanElwin Sharvill NEW
Aditya KuskoItalyAsiya Javayant NEGOTIATION
Francesco ShinkoGermanyElwin Sharvill NEW
Silvio SlusarskiGermanyOnyama Limba UNQUALIFIED
Ashley DoeGermanyIoni Bowcher RENEWAL
Silvio SlusarskiAustraliaIoni Bowcher PROPOSAL
Ricardo GauchoUnited KingdomElwin Sharvill QUALIFIED
Ivar PaprockiIndiaBernardo Dominic RENEWAL
Emily WhobreyCanadaIvan Magalhaes PROPOSAL
Emily WhobreyCanadaAmy Elsner QUALIFIED
Smith GlickItalyAsiya Javayant NEW
Jeanfrancois VenereItalyElwin Sharvill NEGOTIATION
Kadeem FlosiBrazilBernardo Dominic QUALIFIED
Adams MorascaArgentinaAnna Fali QUALIFIED
Rodrigues CampainCanadaXuxue Feng PROPOSAL
Sinclair WaycottUnited KingdomStephen Shaw NEW
Ricardo GauchoItalyIvan Magalhaes UNQUALIFIED
Antonio CaudyUnited KingdomAmy Elsner PROPOSAL
Ashley DoeUnited KingdomBernardo Dominic QUALIFIED
Darci PoquetteBrazilAsiya Javayant RENEWAL
Ashley DoeAustraliaIoni Bowcher NEGOTIATION
Aruna FigeroaSpainBernardo Dominic PROPOSAL
Alejandro PerinBrazilBernardo Dominic RENEWAL
Misaki RoysterCanadaStephen Shaw RENEWAL
Mayumi KolmetzAustraliaStephen Shaw NEGOTIATION
Johnson SergiFranceIvan Magalhaes UNQUALIFIED
Johnson SergiUnited KingdomOnyama Limba NEGOTIATION
Adams MorascaFranceStephen Shaw UNQUALIFIED
Julie StensethUnited KingdomIvan Magalhaes RENEWAL
Leon OldroydSpainAsiya Javayant NEW
Arvin AlbaresBrazilBernardo Dominic UNQUALIFIED
Alejandro PerinArgentinaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha RulapaughBrazilXuxue Feng QUALIFIED
Emily WhobreyIndiaStephen Shaw NEW
Jefferson SchemmerIndiaIoni Bowcher RENEWAL
Ricardo GauchoJapanElwin Sharvill NEW
Alejandro PerinArgentinaElwin Sharvill UNQUALIFIED
Rodrigues CampainRussiaAmy Elsner NEGOTIATION
Maisha RulapaughArgentinaXuxue Feng QUALIFIED
Clifford RimCanadaIoni Bowcher NEGOTIATION
Leon OldroydJapanOnyama Limba RENEWAL
Claire TollnerIndiaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois VenereIndia2022-01-07Chemel, James L Cpa RENEWAL73Stephen Shaw
1001Antonio CaudyRussia2021-12-24Rangoni Of Florence PROPOSAL29Elwin Sharvill
1002Misaki RoysterItaly2022-01-02Feltz Printing Service QUALIFIED10Stephen Shaw
1003Antonio CaudyRussia2022-01-13Buckley Miller Wright NEGOTIATION53Ioni Bowcher
1004Francesco ShinkoUnited Kingdom2022-01-21Rangoni Of Florence RENEWAL29Ivan Magalhaes
1005Cody SaylorsGermany2021-12-30Chanay, Jeffrey A Esq NEW3Onyama Limba
1006Rodrigues CampainAustralia2022-01-06King, Christopher A Esq PROPOSAL45Xuxue Feng
1007Aruna FigeroaSpain2022-01-15Rangoni Of Florence QUALIFIED45Amy Elsner
1008Jeanfrancois VenereAustralia2021-12-31Chanay, Jeffrey A Esq PROPOSAL45Bernardo Dominic
1009Smith GlickSpain2022-01-14Commercial Press PROPOSAL33Ioni Bowcher
1010Aika InouyeArgentina2022-01-10Feiner Bros PROPOSAL57Ioni Bowcher
1011James ButtItaly2022-01-05Commercial Press QUALIFIED39Onyama Limba
1012Emily WhobreyArgentina2022-01-15Chapman, Ross E Esq PROPOSAL53Ioni Bowcher
1013Cody SaylorsGermany2022-01-20Commercial Press NEGOTIATION74Ioni Bowcher
1014Greenwood BologniaAustralia2021-12-26Rousseaux, Michael Esq RENEWAL76Ivan Magalhaes
1015Nicolas IturbideAustralia2022-01-20Feiner Bros UNQUALIFIED73Xuxue Feng
1016Deepesh ChuiJapan2021-12-26Chemel, James L Cpa QUALIFIED39Amy Elsner
1017Jefferson SchemmerSpain2021-12-27King, Christopher A Esq RENEWAL18Onyama Limba
1018Ivar PaprockiRussia2022-01-16King, Christopher A Esq NEGOTIATION75Onyama Limba
1019Chavez BriddickFrance2022-01-20Benton, John B Jr UNQUALIFIED52Amy Elsner
1020Leja CaldareraBrazil2022-01-21Commercial Press PROPOSAL51Onyama Limba
1021Ricardo GauchoRussia2022-01-17Rangoni Of Florence RENEWAL18Ivan Magalhaes
1022Greenwood BologniaSpain2022-01-01Dorl, James J Esq NEGOTIATION77Anna Fali
1023Chavez BriddickGermany2021-12-23Chanay, Jeffrey A Esq QUALIFIED87Ioni Bowcher
1024Chavez BriddickArgentina2022-01-13King, Christopher A Esq UNQUALIFIED82Onyama Limba
1025James ButtFrance2021-12-24Truhlar And Truhlar Attys UNQUALIFIED31Elwin Sharvill
1026Mayumi KolmetzItaly2022-01-13Rousseaux, Michael Esq UNQUALIFIED99Amy Elsner
1027Tony FollerSpain2022-01-02Dorl, James J Esq NEGOTIATION42Xuxue Feng
1028Aditya KuskoAustralia2022-01-08Chemel, James L Cpa NEW60Elwin Sharvill
1029Johnson SergiSpain2022-01-03Buckley Miller Wright NEW93Ioni Bowcher
1030Emily WhobreyIndia2022-01-10Chanay, Jeffrey A Esq QUALIFIED37Amy Elsner
1031Sinclair WaycottItaly2022-01-17Truhlar And Truhlar Attys NEW86Onyama Limba
1032Isabel BowleyBrazil2021-12-29Dorl, James J Esq QUALIFIED75Elwin Sharvill
1033Arvin AlbaresAustralia2022-01-18King, Christopher A Esq NEGOTIATION17Xuxue Feng
1034James ButtRussia2022-01-09Truhlar And Truhlar Attys RENEWAL48Stephen Shaw
1035Silvio SlusarskiBrazil2022-01-19Feltz Printing Service NEW6Onyama Limba
1036Leja CaldareraArgentina2022-01-18Chanay, Jeffrey A Esq NEGOTIATION99Asiya Javayant
1037Silvio SlusarskiIndia2021-12-30Dorl, James J Esq UNQUALIFIED85Onyama Limba
1038Mayumi KolmetzFrance2022-01-06Feltz Printing Service PROPOSAL72Xuxue Feng
1039Faith GillianCanada2021-12-30Chemel, James L Cpa QUALIFIED78Onyama Limba
1040Nicolas IturbideAustralia2021-12-28Feiner Bros UNQUALIFIED33Bernardo Dominic
1041Aditya KuskoFrance2022-01-01Chanay, Jeffrey A Esq PROPOSAL9Xuxue Feng
1042Chavez BriddickGermany2022-01-03Feltz Printing Service NEW54Amy Elsner
1043Julie StensethItaly2021-12-25Feiner Bros PROPOSAL62Bernardo Dominic
1044Morrow RutaGermany2022-01-10Chanay, Jeffrey A Esq PROPOSAL26Elwin Sharvill
1045Murillo MaletGermany2022-01-09Morlong Associates RENEWAL1Xuxue Feng
1046Jones VocelkaItaly2022-01-10Rousseaux, Michael Esq PROPOSAL96Xuxue Feng
1047Jones VocelkaFrance2022-01-14King, Christopher A Esq NEGOTIATION22Anna Fali
1048James ButtBrazil2022-01-03Feiner Bros QUALIFIED88Ioni Bowcher
1049Jennifer AmigonItaly2021-12-25Dorl, James J Esq UNQUALIFIED37Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerSpainXuxue Feng RENEWAL
Chavez BriddickBrazilElwin Sharvill RENEWAL
Aditya KuskoAustraliaOnyama Limba QUALIFIED
Munro FerenczItalyXuxue Feng NEGOTIATION
Arvin AlbaresArgentinaIoni Bowcher NEW
Emily WhobreyArgentinaStephen Shaw UNQUALIFIED
Maria MarrierBrazilXuxue Feng QUALIFIED
Murillo MaletJapanElwin Sharvill NEW
Stacey MacleadFranceAmy Elsner UNQUALIFIED
James ButtArgentinaStephen Shaw NEW
Julie StensethArgentinaXuxue Feng PROPOSAL
Nicolas IturbideBrazilAnna Fali NEW
Emily WhobreyAustraliaBernardo Dominic PROPOSAL
Johnson SergiJapanXuxue Feng PROPOSAL
Darci PoquetteCanadaStephen Shaw QUALIFIED
Faith GillianBrazilAsiya Javayant QUALIFIED
Cody SaylorsGermanyBernardo Dominic NEW
Emily WhobreyGermanyIvan Magalhaes PROPOSAL
Jennifer AmigonIndiaAmy Elsner UNQUALIFIED
Jennifer AmigonJapanIvan Magalhaes NEW
Costa DilliardIndiaAnna Fali PROPOSAL
Adams MorascaAustraliaAmy Elsner UNQUALIFIED
Johnson SergiItalyAsiya Javayant RENEWAL
Rodrigues CampainAustraliaAnna Fali UNQUALIFIED
Aruna FigeroaGermanyOnyama Limba NEW
Kadeem FlosiCanadaAnna Fali NEGOTIATION
Munro FerenczBrazilOnyama Limba NEW
Julie StensethCanadaIvan Magalhaes RENEWAL
Misaki RoysterArgentinaOnyama Limba PROPOSAL
Alejandro PerinItalyAsiya Javayant RENEWAL
Mayumi KolmetzRussiaXuxue Feng QUALIFIED
Kadeem FlosiFranceXuxue Feng NEGOTIATION
Jennifer AmigonSpainIvan Magalhaes NEGOTIATION
Aditya KuskoUnited KingdomXuxue Feng UNQUALIFIED
Munro FerenczUnited KingdomStephen Shaw UNQUALIFIED
Chavez BriddickUnited KingdomAmy Elsner NEGOTIATION
Aruna FigeroaUnited KingdomStephen Shaw RENEWAL
Maria MarrierGermanyAsiya Javayant PROPOSAL
Murillo MaletArgentinaStephen Shaw PROPOSAL
Ivar PaprockiRussiaElwin Sharvill NEGOTIATION
Leon OldroydFranceStephen Shaw RENEWAL
Johnson SergiBrazilElwin Sharvill NEW
Misaki RoysterIndiaBernardo Dominic QUALIFIED
Antonio CaudyGermanyElwin Sharvill UNQUALIFIED
Tony FollerBrazilIoni Bowcher QUALIFIED
Silvio SlusarskiJapanIvan Magalhaes QUALIFIED
Mayumi KolmetzCanadaIoni Bowcher NEGOTIATION
Salvatore StockhamJapanIoni Bowcher RENEWAL
Johnson SergiGermanyAsiya Javayant NEW
Francesco ShinkoFranceOnyama Limba NEW
Frozen Columns
Name
Greenwood Bolognia
Adams Morasca
Smith Glick
Salvatore Stockham
Ivar Paprocki
Maria Marrier
Munro Ferencz
Darci Poquette
Rodrigues Campain
Emily Whobrey
Darci Poquette
Octavia Malet
Isabel Bowley
Sinclair Waycott
Jones Vocelka
Antonio Caudy
Aika Inouye
James Butt
Tony Foller
Ricardo Gaucho
Alejandro Perin
Darci Poquette
Kadeem Flosi
Jefferson Schemmer
Mujtaba Nicka
Chavez Briddick
Munro Ferencz
Antonio Caudy
Kaitlin Ostrosky
James Butt
Izzy Garufi
Aruna Figeroa
Mayumi Kolmetz
Rodrigues Campain
Jennifer Amigon
Morrow Ruta
Antonio Caudy
Nicolas Iturbide
Maria Marrier
Tony Foller
Sinclair Waycott
Misaki Royster
Ashley Doe
Jennifer Amigon
Chavez Briddick
Jeanfrancois Venere
David Darakjy
Clifford Rim
Sinclair Waycott
Juan Wieser
IdCountryDate
1000Canada2021-12-27
1001Japan2022-01-16
1002Canada2021-12-25
1003Germany2022-01-03
1004Brazil2022-01-12
1005Spain2022-01-19
1006Canada2022-01-03
1007Germany2022-01-11
1008Japan2022-01-18
1009Argentina2022-01-01
1010Brazil2022-01-13
1011Argentina2022-01-03
1012Japan2022-01-18
1013United Kingdom2022-01-07
1014Spain2021-12-27
1015Japan2022-01-12
1016Brazil2022-01-17
1017France2022-01-16
1018India2021-12-24
1019Brazil2021-12-27
1020India2021-12-23
1021United Kingdom2022-01-18
1022Argentina2021-12-25
1023Japan2021-12-30
1024Germany2022-01-06
1025Japan2021-12-30
1026Canada2022-01-06
1027Australia2022-01-05
1028Spain2022-01-03
1029Australia2021-12-28
1030Spain2022-01-02
1031Brazil2021-12-24
1032Australia2022-01-19
1033Spain2022-01-19
1034India2021-12-29
1035France2021-12-24
1036Spain2021-12-27
1037Japan2022-01-11
1038Japan2022-01-17
1039India2022-01-07
1040Brazil2022-01-14
1041Argentina2022-01-14
1042Japan2022-01-19
1043Brazil2022-01-15
1044United Kingdom2022-01-04
1045Japan2022-01-13
1046Canada2022-01-08
1047Argentina2021-12-24
1048India2021-12-23
1049Argentina2022-01-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson SergiCanadaAmy Elsner NEW
Aditya KuskoSpainIoni Bowcher NEW
Stacey MacleadGermanyStephen Shaw UNQUALIFIED
Mujtaba NickaBrazilBernardo Dominic PROPOSAL
Mujtaba NickaSpainStephen Shaw NEGOTIATION
Faith GillianUnited KingdomStephen Shaw PROPOSAL
Claire TollnerCanadaElwin Sharvill NEW
Faith GillianAustraliaAnna Fali RENEWAL
Sinclair WaycottSpainAmy Elsner PROPOSAL
Jefferson SchemmerAustraliaOnyama Limba PROPOSAL
Emily WhobreyArgentinaElwin Sharvill QUALIFIED
Juan WieserIndiaElwin Sharvill RENEWAL
Isabel BowleyFranceBernardo Dominic NEGOTIATION
Juan WieserItalyXuxue Feng PROPOSAL
Salvatore StockhamAustraliaBernardo Dominic UNQUALIFIED
Adams MorascaJapanIoni Bowcher PROPOSAL
Greenwood BologniaCanadaElwin Sharvill QUALIFIED
Sinclair WaycottItalyIvan Magalhaes NEW
Salvatore StockhamUnited KingdomAnna Fali RENEWAL
Sinclair WaycottJapanIoni Bowcher RENEWAL
Salvatore StockhamArgentinaAsiya Javayant NEW
James ButtRussiaElwin Sharvill NEW
Wickens NestleAustraliaBernardo Dominic RENEWAL
Ivar PaprockiGermanyAsiya Javayant RENEWAL
Julie StensethFranceOnyama Limba QUALIFIED
Costa DilliardSpainAnna Fali NEGOTIATION
Isabel BowleyIndiaXuxue Feng UNQUALIFIED
Izzy GarufiArgentinaIoni Bowcher PROPOSAL
Leja CaldareraRussiaAsiya Javayant NEGOTIATION
Kadeem FlosiAustraliaXuxue Feng NEW
Wickens NestleRussiaIoni Bowcher QUALIFIED
Clifford RimJapanIvan Magalhaes PROPOSAL
Misaki RoysterBrazilElwin Sharvill QUALIFIED
Jeanfrancois VenereRussiaAmy Elsner NEW
Aruna FigeroaFranceAnna Fali NEW
Mujtaba NickaFranceBernardo Dominic PROPOSAL
Julie StensethFranceAsiya Javayant UNQUALIFIED
Kadeem FlosiFranceAnna Fali UNQUALIFIED
Aruna FigeroaIndiaAmy Elsner NEW
Emily WhobreyFranceIoni Bowcher 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>

Session expired

Reloading page

Message:
StackTrace: