Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
French
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Czech
Greek
Persian
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Lithuanian
Latvian
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Swedish
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

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
Chavez I TollnerBrazilAnna Fali UNQUALIFIED
Clifford J TollnerBrazilIvan Magalhaes PROPOSAL
Leja N SergiBrazilAsiya Javayant NEGOTIATION
Mujtaba I VenereUnited KingdomAmy Elsner UNQUALIFIED
Arvin H CaudyItalyAnna Fali QUALIFIED
Ashley S WhobreyArgentinaAmy Elsner QUALIFIED
Mujtaba F AlbaresJapanAsiya Javayant PROPOSAL
Jennifer A MarrierJapanElwin Sharvill QUALIFIED
Aika D DoeJapanAsiya Javayant NEGOTIATION
Arvin O OldroydUnited KingdomBernardo Dominic NEW
Cody U DarakjySpainIvan Magalhaes PROPOSAL
Aruna B OldroydGermanyStephen Shaw PROPOSAL
Claire A ButtFranceAnna Fali NEGOTIATION
Smith R PaprockiJapanBernardo Dominic RENEWAL
Faith K WieserItalyAnna Fali RENEWAL
Silvio A VenereArgentinaAsiya Javayant RENEWAL
Clifford T FerenczFranceOnyama Limba PROPOSAL
Smith U DoeUnited KingdomXuxue Feng RENEWAL
Francesco D KolmetzItalyIvan Magalhaes UNQUALIFIED
Misaki H BowleyIndiaElwin Sharvill UNQUALIFIED
Jones J NestleUnited KingdomBernardo Dominic UNQUALIFIED
Emily Y FlosiAustraliaAsiya Javayant QUALIFIED
Kadeem I SaylorsItalyXuxue Feng QUALIFIED
Munro A DoeIndiaElwin Sharvill RENEWAL
Murillo W AmigonBrazilBernardo Dominic PROPOSAL
Jones Q StensethFranceElwin Sharvill NEW
Costa A FerenczSpainIoni Bowcher QUALIFIED
James G AmigonRussiaIvan Magalhaes NEGOTIATION
Octavia U PoquetteGermanyIvan Magalhaes NEGOTIATION
Wickens U BowleyGermanyXuxue Feng NEGOTIATION
Tony R PaprockiFranceElwin Sharvill QUALIFIED
Aruna P PaprockiCanadaAsiya Javayant PROPOSAL
Julie D RoysterRussiaAmy Elsner UNQUALIFIED
Ivar C DoeGermanyAnna Fali NEGOTIATION
Misaki L GlickCanadaXuxue Feng UNQUALIFIED
Chavez I KolmetzBrazilBernardo Dominic NEW
Murillo Y GlickItalyIoni Bowcher RENEWAL
Salvatore M ShinkoBrazilIvan Magalhaes QUALIFIED
Jones M WieserRussiaStephen Shaw PROPOSAL
Wickens N CaudySpainIvan Magalhaes QUALIFIED
Salvatore G DilliardItalyOnyama Limba RENEWAL
Deepesh Q VocelkaFranceStephen Shaw PROPOSAL
Munro O GlickCanadaElwin Sharvill UNQUALIFIED
Chavez A GlickFranceIoni Bowcher NEW
Ricardo F InouyeItalyIoni Bowcher RENEWAL
Mayumi G AlbaresAustraliaOnyama Limba UNQUALIFIED
Emily P RutaBrazilIoni Bowcher PROPOSAL
Isabel B RoysterArgentinaStephen Shaw UNQUALIFIED
Antonio D MaletSpainAsiya Javayant RENEWAL
Mayumi A ShinkoUnited KingdomAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Morrow R DoeArgentinaElwin Sharvill UNQUALIFIED
Adams O WaycottArgentinaOnyama Limba RENEWAL
Tony V DilliardCanadaAnna Fali NEGOTIATION
Morrow U PaprockiIndiaOnyama Limba UNQUALIFIED
Alejandro P DilliardCanadaXuxue Feng NEGOTIATION
Maisha N FollerCanadaIoni Bowcher UNQUALIFIED
Aditya A StensethBrazilBernardo Dominic PROPOSAL
Emily R PerinGermanyXuxue Feng NEGOTIATION
Stacey K BologniaArgentinaXuxue Feng NEGOTIATION
Wickens X SergiIndiaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas I RutaAustralia2024-04-13Feiner Bros NEGOTIATION21Onyama Limba
1001Ivar H FlosiGermany2024-04-06Rangoni Of Florence PROPOSAL60Ivan Magalhaes
1002Jennifer D IturbideArgentina2024-04-23Feltz Printing Service QUALIFIED44Bernardo Dominic
1003Jeanfrancois Z InouyeRussia2024-04-16Dorl, James J Esq PROPOSAL89Onyama Limba
1004Mayumi E OldroydItaly2024-04-02Buckley Miller Wright NEW0Elwin Sharvill
1005Izzy M KolmetzCanada2024-04-18Feiner Bros UNQUALIFIED52Stephen Shaw
1006Mayumi G AlbaresSpain2024-04-05Feiner Bros NEGOTIATION6Amy Elsner
1007Tony F MacleadItaly2024-04-19King, Christopher A Esq NEGOTIATION42Elwin Sharvill
1008Kaitlin I DoeSpain2024-04-25Chapman, Ross E Esq NEGOTIATION60Amy Elsner
1009Kadeem H PerinBrazil2024-04-08Printing Dimensions NEW12Amy Elsner
1010Munro Q GauchoFrance2024-04-01Chemel, James L Cpa QUALIFIED19Anna Fali
1011Kaitlin H StensethIndia2024-04-03King, Christopher A Esq PROPOSAL16Ioni Bowcher
1012Rodrigues G MaletIndia2024-04-08King, Christopher A Esq RENEWAL20Onyama Limba
1013Kaitlin I StockhamIndia2024-04-14Rousseaux, Michael Esq NEGOTIATION77Bernardo Dominic
1014Cody P GlickFrance2024-04-09Commercial Press QUALIFIED45Stephen Shaw
1015Rodrigues D DilliardIndia2024-04-26Commercial Press UNQUALIFIED18Asiya Javayant
1016Leja B NestleJapan2024-04-17Benton, John B Jr NEGOTIATION57Onyama Limba
1017James E RimAustralia2024-04-23Chapman, Ross E Esq QUALIFIED3Ivan Magalhaes
1018Claire H BowleyJapan2024-04-22Commercial Press NEW55Ivan Magalhaes
1019Ricardo S CaudyRussia2024-04-22Dorl, James J Esq NEGOTIATION36Anna Fali
1020Salvatore H FollerCanada2024-04-22Rangoni Of Florence QUALIFIED2Bernardo Dominic
1021Kaitlin U FigeroaAustralia2024-04-11Dorl, James J Esq PROPOSAL22Asiya Javayant
1022Silvio K PoquetteJapan2024-04-26Feiner Bros RENEWAL27Amy Elsner
1023Munro E CaldareraSpain2024-04-05Rangoni Of Florence UNQUALIFIED73Onyama Limba
1024Sinclair H RoysterUnited Kingdom2024-03-31Buckley Miller Wright RENEWAL74Elwin Sharvill
1025Francesco P PaprockiFrance2024-04-03Benton, John B Jr RENEWAL94Xuxue Feng
1026Antonio G CampainUnited Kingdom2024-04-11Benton, John B Jr PROPOSAL67Stephen Shaw
1027Darci D PaprockiCanada2024-04-26Benton, John B Jr NEW86Ivan Magalhaes
1028Jefferson E MacleadFrance2024-04-18Feltz Printing Service RENEWAL79Ioni Bowcher
1029Chavez V PerinFrance2024-04-22Chapman, Ross E Esq NEW7Elwin Sharvill
1030Kaitlin O SchemmerIndia2024-04-02Chanay, Jeffrey A Esq RENEWAL54Amy Elsner
1031Silvio J ChuiArgentina2024-03-31Chanay, Jeffrey A Esq UNQUALIFIED97Bernardo Dominic
1032Ivar O NickaAustralia2024-04-17Rousseaux, Michael Esq RENEWAL47Onyama Limba
1033Maisha P NickaFrance2024-04-28Morlong Associates QUALIFIED99Elwin Sharvill
1034Mayumi X DarakjyJapan2024-04-02Rousseaux, Michael Esq UNQUALIFIED29Stephen Shaw
1035Darci X MacleadUnited Kingdom2024-04-04Printing Dimensions UNQUALIFIED79Ioni Bowcher
1036Darci M AlbaresFrance2024-04-25Chemel, James L Cpa QUALIFIED3Stephen Shaw
1037Mayumi G MacleadUnited Kingdom2024-04-14Truhlar And Truhlar Attys UNQUALIFIED5Elwin Sharvill
1038Greenwood H MorascaJapan2024-04-14Rangoni Of Florence QUALIFIED71Elwin Sharvill
1039Stacey Q IturbideGermany2024-04-21Feltz Printing Service NEW1Anna Fali
1040Morrow Z WieserGermany2024-04-18Chapman, Ross E Esq PROPOSAL69Ioni Bowcher
1041Leon Y VenereCanada2024-04-16Chemel, James L Cpa RENEWAL7Elwin Sharvill
1042Chavez Y MaletCanada2024-04-05Rousseaux, Michael Esq UNQUALIFIED17Ivan Magalhaes
1043Jefferson F PoquetteBrazil2024-04-11Dorl, James J Esq NEW49Elwin Sharvill
1044Jeanfrancois G FigeroaItaly2024-04-07Feiner Bros UNQUALIFIED62Ivan Magalhaes
1045Murillo S MaletGermany2024-03-30Printing Dimensions RENEWAL43Stephen Shaw
1046Ashley J MacleadArgentina2024-04-28Benton, John B Jr RENEWAL73Asiya Javayant
1047David F SergiArgentina2024-04-05Benton, John B Jr RENEWAL2Bernardo Dominic
1048Arvin A MaletCanada2024-04-03Rousseaux, Michael Esq PROPOSAL74Ioni Bowcher
1049Jeanfrancois K GillianArgentina2024-04-06Feiner Bros UNQUALIFIED2Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Kadeem F RulapaughItalyAmy Elsner NEW
Cody I DilliardGermanyAmy Elsner RENEWAL
Leja Z MorascaAustraliaBernardo Dominic NEGOTIATION
Ivar G IturbideRussiaBernardo Dominic PROPOSAL
Juan E CaldareraArgentinaAsiya Javayant RENEWAL
Jefferson P VenereUnited KingdomElwin Sharvill NEW
Morrow Q OstroskyCanadaIoni Bowcher QUALIFIED
Jones U FlosiArgentinaBernardo Dominic NEGOTIATION
Aruna T DilliardRussiaAmy Elsner PROPOSAL
Kaitlin F KolmetzJapanBernardo Dominic PROPOSAL
Sinclair V ShinkoAustraliaAnna Fali QUALIFIED
Leon N MorascaSpainAnna Fali UNQUALIFIED
James L VenereIndiaAsiya Javayant NEW
Kadeem Q SchemmerIndiaAsiya Javayant NEW
Morrow M PerinSpainBernardo Dominic NEW
Greenwood F TollnerIndiaBernardo Dominic NEGOTIATION
Arvin F GarufiGermanyElwin Sharvill QUALIFIED
Johnson I FigeroaArgentinaOnyama Limba UNQUALIFIED
Stacey N FlosiFranceXuxue Feng QUALIFIED
Izzy B FerenczUnited KingdomAnna Fali QUALIFIED
Kadeem L MorascaGermanyElwin Sharvill UNQUALIFIED
Julie J DoeFranceAnna Fali RENEWAL
Aika E SchemmerJapanXuxue Feng NEGOTIATION
Izzy C TollnerFranceAsiya Javayant QUALIFIED
Adams R GlickBrazilIoni Bowcher QUALIFIED
Cody U FerenczItalyBernardo Dominic NEGOTIATION
Aditya F BowleyFranceOnyama Limba QUALIFIED
Stacey K AmigonBrazilAnna Fali NEGOTIATION
Jones I MacleadGermanyAmy Elsner PROPOSAL
Isabel N MaletBrazilIoni Bowcher PROPOSAL
Greenwood N StensethJapanAmy Elsner RENEWAL
Leja C AlbaresIndiaIvan Magalhaes NEW
Mayumi R FigeroaItalyBernardo Dominic RENEWAL
Leon C MarrierItalyAmy Elsner UNQUALIFIED
Julie V RimAustraliaOnyama Limba NEW
Emily P DarakjyAustraliaAsiya Javayant NEW
Kaitlin P VocelkaFranceBernardo Dominic NEGOTIATION
Wickens H MaletCanadaElwin Sharvill RENEWAL
Arvin M FerenczSpainOnyama Limba UNQUALIFIED
Arvin I NestleGermanyStephen Shaw NEGOTIATION
Chavez B KuskoItalyElwin Sharvill NEW
Aika I IturbideFranceXuxue Feng UNQUALIFIED
Chavez L WaycottSpainOnyama Limba RENEWAL
Johnson F CaudyIndiaXuxue Feng PROPOSAL
Ricardo G KuskoJapanAmy Elsner NEW
Maria J VocelkaCanadaIoni Bowcher QUALIFIED
David H CaudyItalyAnna Fali NEW
Leon U TollnerBrazilAmy Elsner PROPOSAL
Cody G CampainRussiaStephen Shaw QUALIFIED
Adams N RimBrazilElwin Sharvill NEGOTIATION
Frozen Columns
Name
Sinclair Z Schemmer
Kaitlin S Marrier
Maisha Y Ruta
Isabel W Foller
Jefferson T Campain
Kaitlin H Waycott
David C Figeroa
Maisha C Caldarera
David K Darakjy
Aruna K Slusarski
Aika D Malet
Kadeem V Nestle
Kadeem E Foller
James Q Waycott
Faith Q Ostrosky
Francesco Q Paprocki
Salvatore C Saylors
Leon O Sergi
Aruna Y Whobrey
Sinclair X Figeroa
Kaitlin S Kusko
Emily R Marrier
James P Maclead
Wickens E Amigon
David Q Figeroa
Jones U Ostrosky
Maria H Bolognia
Murillo P Foller
Cody A Iturbide
Aika W Tollner
Maisha X Schemmer
Rodrigues C Figeroa
Faith U Caldarera
Alejandro Y Slusarski
Chavez V Schemmer
Faith G Rulapaugh
Juan C Ruta
Emily K Doe
Sinclair T Butt
Leja G Whobrey
Jeanfrancois B Ostrosky
Faith E Royster
Octavia A Iturbide
Munro B Ferencz
Greenwood D Ferencz
Kadeem M Caldarera
Aditya Y Royster
Jennifer W Foller
Ricardo N Gillian
Salvatore V Royster
IdCountryDate
1000Italy2024-04-05
1001India2024-04-09
1002France2024-04-21
1003India2024-04-18
1004Canada2024-04-12
1005India2024-04-06
1006Germany2024-04-13
1007Canada2024-04-25
1008France2024-04-08
1009Spain2024-04-22
1010Japan2024-04-01
1011Canada2024-04-24
1012Spain2024-04-20
1013Canada2024-04-08
1014Argentina2024-04-28
1015Japan2024-04-25
1016India2024-04-23
1017Germany2024-04-02
1018United Kingdom2024-04-10
1019Italy2024-04-17
1020Canada2024-04-05
1021Russia2024-04-10
1022Brazil2024-04-01
1023Australia2024-03-30
1024Germany2024-04-19
1025United Kingdom2024-04-16
1026Italy2024-04-12
1027Spain2024-04-04
1028Germany2024-04-04
1029Canada2024-04-16
1030Germany2024-04-28
1031Brazil2024-04-21
1032India2024-04-08
1033Australia2024-04-12
1034Italy2024-04-09
1035Canada2024-04-10
1036Australia2024-04-24
1037Japan2024-04-13
1038Germany2024-04-26
1039Russia2024-04-02
1040Australia2024-04-12
1041Russia2024-04-02
1042India2024-04-20
1043Argentina2024-04-28
1044Argentina2024-04-18
1045Germany2024-04-28
1046India2024-04-25
1047Japan2024-04-01
1048Australia2024-04-28
1049Canada2024-04-24

On-Demand Data

NameIdCountryDate
James Y Shinko1000India2024-04-18
Julie P Briddick1001Spain2024-04-26
Ricardo T Venere1002France2024-04-23
Smith Z Morasca1003France2024-04-07
Juan R Campain1004Argentina2024-04-04
Jeanfrancois Z Dilliard1005Argentina2024-03-31
Jefferson I Slusarski1006Australia2024-04-16
Wickens T Marrier1007Germany2024-04-23
Jefferson L Caldarera1008Italy2024-04-27
Nicolas S Schemmer1009Germany2024-03-31
Aruna V Doe1010France2024-04-02
Jones O Marrier1011Argentina2024-04-08
Munro U Vocelka1012France2024-04-26
Faith U Kolmetz1013Australia2024-03-30
Greenwood O Glick1014France2024-04-10
Francesco H Butt1015United Kingdom2024-04-04
Morrow I Morasca1016Italy2024-04-04
Ivar U Kolmetz1017Australia2024-04-01
Tony X Rulapaugh1018United Kingdom2024-04-12
Costa C Chui1019Canada2024-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro I WaycottUnited KingdomXuxue Feng RENEWAL
Jennifer X MarrierGermanyAmy Elsner PROPOSAL
Aika Q GillianGermanyOnyama Limba QUALIFIED
Leja H StockhamSpainElwin Sharvill RENEWAL
Arvin F FigeroaRussiaStephen Shaw RENEWAL
Maisha Z StockhamGermanyOnyama Limba PROPOSAL
Adams Z VenereIndiaAsiya Javayant NEW
Juan Y PaprockiJapanStephen Shaw UNQUALIFIED
Leja F SaylorsCanadaAsiya Javayant QUALIFIED
Misaki U FlosiCanadaAnna Fali UNQUALIFIED
Costa Q StensethRussiaXuxue Feng RENEWAL
Smith D GarufiJapanAnna Fali NEW
Ashley X KuskoAustraliaStephen Shaw NEGOTIATION
Jones B IturbideJapanOnyama Limba NEW
Aruna L DoeAustraliaElwin Sharvill RENEWAL
Morrow T VocelkaGermanyAnna Fali UNQUALIFIED
Juan E VenereBrazilIoni Bowcher PROPOSAL
Julie Y DoeIndiaAmy Elsner RENEWAL
Izzy V BowleyFranceAnna Fali NEW
Costa S AlbaresFranceOnyama Limba PROPOSAL
Ivar W InouyeGermanyOnyama Limba QUALIFIED
Leon X RutaArgentinaOnyama Limba NEGOTIATION
Jones M CampainItalyAmy Elsner UNQUALIFIED
Leon B SaylorsItalyAmy Elsner UNQUALIFIED
Aika Y WieserArgentinaXuxue Feng QUALIFIED
Smith C MorascaArgentinaIoni Bowcher RENEWAL
Rodrigues P FigeroaSpainAsiya Javayant NEW
Kaitlin B BriddickItalyAsiya Javayant UNQUALIFIED
Leja I DarakjyBrazilStephen Shaw PROPOSAL
Julie D GlickGermanyAsiya Javayant NEGOTIATION
Adams T OstroskyItalyAnna Fali RENEWAL
Costa D RutaCanadaElwin Sharvill NEGOTIATION
Aditya P InouyeJapanStephen Shaw NEGOTIATION
Izzy B ButtUnited KingdomAnna Fali NEGOTIATION
Kadeem Y VocelkaJapanElwin Sharvill NEW
Aditya K CampainBrazilStephen Shaw NEW
Kaitlin Z SchemmerJapanElwin Sharvill RENEWAL
Octavia R ShinkoJapanOnyama Limba PROPOSAL
Kaitlin K OldroydSpainIoni Bowcher RENEWAL
Kadeem N BologniaJapanAmy Elsner NEW

<style>
    .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">
        <h3>On-Demand Data</h3>
        <p:dataTable var="customer" value="#{dtScrollView.customers6}" scrollRows="20" scrollable="true" liveScroll="true" scrollHeight="150">
            <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>