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
Silvio P NickaArgentinaAsiya Javayant RENEWAL
Leon J OldroydUnited KingdomOnyama Limba NEW
David N MorascaJapanIvan Magalhaes PROPOSAL
Aditya P AmigonCanadaIoni Bowcher NEGOTIATION
Salvatore Y WhobreyItalyXuxue Feng QUALIFIED
Emily F WaycottItalyIvan Magalhaes RENEWAL
Faith V AlbaresCanadaAnna Fali QUALIFIED
Johnson D FlosiSpainAsiya Javayant QUALIFIED
David R SaylorsIndiaOnyama Limba QUALIFIED
Greenwood S VocelkaSpainOnyama Limba NEW
Aditya H FigeroaRussiaAmy Elsner RENEWAL
Adams X BologniaJapanAsiya Javayant UNQUALIFIED
Antonio S SaylorsRussiaStephen Shaw NEW
Cody P VocelkaItalyAnna Fali NEW
Stacey T WaycottSpainIvan Magalhaes NEGOTIATION
Jeanfrancois V GarufiGermanyOnyama Limba NEGOTIATION
Aika L AlbaresGermanyStephen Shaw NEW
Mujtaba F SchemmerFranceIvan Magalhaes NEGOTIATION
Adams D CampainAustraliaAsiya Javayant UNQUALIFIED
Greenwood X SergiUnited KingdomIvan Magalhaes RENEWAL
Ricardo Z PaprockiCanadaAmy Elsner PROPOSAL
Francesco H ButtBrazilIoni Bowcher QUALIFIED
Chavez V KolmetzJapanStephen Shaw PROPOSAL
Chavez G StensethIndiaIoni Bowcher PROPOSAL
Octavia I CampainJapanIvan Magalhaes NEW
Leon J SaylorsGermanyXuxue Feng NEGOTIATION
James X VocelkaFranceAnna Fali PROPOSAL
Deepesh D StensethGermanyAsiya Javayant NEW
Ashley S AmigonFranceIvan Magalhaes UNQUALIFIED
Murillo G ShinkoArgentinaIoni Bowcher PROPOSAL
Murillo V OstroskyRussiaBernardo Dominic PROPOSAL
Johnson L StensethIndiaAsiya Javayant PROPOSAL
Ashley B GillianRussiaOnyama Limba QUALIFIED
Jennifer I IturbideCanadaIoni Bowcher PROPOSAL
Chavez R AmigonRussiaOnyama Limba PROPOSAL
Silvio M VenereItalyAnna Fali NEGOTIATION
Munro U DarakjyJapanStephen Shaw NEW
Salvatore N CampainRussiaAsiya Javayant UNQUALIFIED
Cody M FollerArgentinaIoni Bowcher QUALIFIED
Adams R SaylorsAustraliaIoni Bowcher NEW
Arvin Q CampainRussiaBernardo Dominic QUALIFIED
Kadeem E SaylorsSpainStephen Shaw RENEWAL
Salvatore P SchemmerJapanElwin Sharvill QUALIFIED
Johnson A RimFranceOnyama Limba PROPOSAL
Adams J MorascaItalyBernardo Dominic PROPOSAL
Juan L KolmetzAustraliaIoni Bowcher NEW
James F FollerFranceOnyama Limba RENEWAL
Mujtaba A WaycottRussiaStephen Shaw NEW
Aruna V MaletGermanyAnna Fali NEGOTIATION
Claire K NickaIndiaStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Munro S RutaFranceXuxue Feng QUALIFIED
Costa V WhobreyGermanyAnna Fali UNQUALIFIED
Julie I FollerIndiaOnyama Limba RENEWAL
Ashley H KolmetzFranceBernardo Dominic NEGOTIATION
Maria Z DoeArgentinaOnyama Limba QUALIFIED
Munro P OldroydCanadaAsiya Javayant QUALIFIED
Clifford Y ButtGermanyXuxue Feng PROPOSAL
Octavia O RimItalyIvan Magalhaes UNQUALIFIED
Kaitlin I FerenczGermanyStephen Shaw NEW
Antonio R RutaBrazilBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon U FollerAustralia2024-04-20Chanay, Jeffrey A Esq NEW96Ioni Bowcher
1001Ricardo S SaylorsAustralia2024-04-07Dorl, James J Esq RENEWAL8Asiya Javayant
1002Aditya K KolmetzUnited Kingdom2024-04-01Feltz Printing Service NEGOTIATION75Anna Fali
1003Kadeem U MarrierArgentina2024-04-01Feiner Bros PROPOSAL80Stephen Shaw
1004Leon Y ChuiIndia2024-04-08Commercial Press UNQUALIFIED47Ioni Bowcher
1005Octavia M WaycottRussia2024-04-22Chanay, Jeffrey A Esq UNQUALIFIED73Xuxue Feng
1006Leon S BowleyRussia2024-04-11Feltz Printing Service NEGOTIATION90Ivan Magalhaes
1007Costa J ShinkoAustralia2024-04-04King, Christopher A Esq QUALIFIED69Elwin Sharvill
1008Arvin P StensethFrance2024-04-19Dorl, James J Esq PROPOSAL50Onyama Limba
1009Ivar V SchemmerGermany2024-04-10Morlong Associates NEW81Stephen Shaw
1010Adams H DilliardJapan2024-04-01Printing Dimensions NEW78Asiya Javayant
1011Aika S GlickUnited Kingdom2024-04-01Chemel, James L Cpa NEW90Xuxue Feng
1012Deepesh J VocelkaSpain2024-03-25Chemel, James L Cpa RENEWAL52Stephen Shaw
1013Juan N VenereArgentina2024-04-02Buckley Miller Wright UNQUALIFIED64Bernardo Dominic
1014Kadeem K GauchoUnited Kingdom2024-04-12Chanay, Jeffrey A Esq PROPOSAL92Onyama Limba
1015Claire Y DoeGermany2024-04-07King, Christopher A Esq QUALIFIED92Ioni Bowcher
1016Jennifer D NestleAustralia2024-04-09King, Christopher A Esq QUALIFIED55Xuxue Feng
1017Stacey Q WhobreyBrazil2024-04-06Rangoni Of Florence NEGOTIATION77Xuxue Feng
1018Adams R FerenczGermany2024-04-08Rousseaux, Michael Esq NEGOTIATION4Ivan Magalhaes
1019Claire A FerenczGermany2024-04-19Chemel, James L Cpa QUALIFIED36Ivan Magalhaes
1020Francesco G WaycottUnited Kingdom2024-04-04Chemel, James L Cpa UNQUALIFIED46Ioni Bowcher
1021Leon F ButtSpain2024-04-19Truhlar And Truhlar Attys NEW91Amy Elsner
1022Kaitlin R CampainSpain2024-04-09Morlong Associates NEW82Bernardo Dominic
1023Tony Z ShinkoJapan2024-03-26Chapman, Ross E Esq NEGOTIATION13Bernardo Dominic
1024Chavez M IturbideArgentina2024-04-17Rangoni Of Florence NEW95Elwin Sharvill
1025Jefferson G MaletAustralia2024-03-30Dorl, James J Esq NEW55Onyama Limba
1026Leon U CaldareraGermany2024-03-28Truhlar And Truhlar Attys UNQUALIFIED67Onyama Limba
1027Aditya J GarufiBrazil2024-04-20Feiner Bros NEGOTIATION12Ioni Bowcher
1028Johnson W OldroydItaly2024-04-11Feltz Printing Service UNQUALIFIED49Ivan Magalhaes
1029Octavia R IturbideGermany2024-04-07Rangoni Of Florence PROPOSAL37Stephen Shaw
1030Jefferson T PoquetteItaly2024-04-07Truhlar And Truhlar Attys RENEWAL72Elwin Sharvill
1031Aditya O VocelkaJapan2024-03-29Printing Dimensions NEW27Asiya Javayant
1032Jones A RutaRussia2024-04-14Chapman, Ross E Esq RENEWAL33Elwin Sharvill
1033Munro G RoysterCanada2024-03-30Benton, John B Jr NEW3Bernardo Dominic
1034Kaitlin Y ChuiBrazil2024-03-29Benton, John B Jr QUALIFIED15Elwin Sharvill
1035Greenwood F MaletUnited Kingdom2024-04-10Benton, John B Jr QUALIFIED18Ioni Bowcher
1036Jennifer M DilliardItaly2024-04-12Benton, John B Jr QUALIFIED17Anna Fali
1037Maisha G SlusarskiGermany2024-04-13Chanay, Jeffrey A Esq QUALIFIED0Amy Elsner
1038Jones O StockhamItaly2024-03-31Feltz Printing Service UNQUALIFIED17Ioni Bowcher
1039Aditya J RimCanada2024-04-18Chanay, Jeffrey A Esq NEGOTIATION2Onyama Limba
1040Jones B IturbideJapan2024-04-07Chapman, Ross E Esq QUALIFIED55Amy Elsner
1041Jefferson P SchemmerIndia2024-04-05Feiner Bros RENEWAL47Bernardo Dominic
1042Leja V FlosiJapan2024-03-29Chapman, Ross E Esq UNQUALIFIED63Xuxue Feng
1043Munro J DarakjyAustralia2024-03-29Truhlar And Truhlar Attys NEW91Onyama Limba
1044Alejandro R DilliardJapan2024-04-02Rangoni Of Florence RENEWAL89Elwin Sharvill
1045Juan C VocelkaGermany2024-03-30Truhlar And Truhlar Attys NEGOTIATION74Onyama Limba
1046Leja U GillianIndia2024-04-21Chemel, James L Cpa NEW27Ivan Magalhaes
1047Darci Z ChuiAustralia2024-04-13Dorl, James J Esq NEGOTIATION8Ivan Magalhaes
1048Clifford D ButtCanada2024-04-15Rangoni Of Florence PROPOSAL17Ioni Bowcher
1049Alejandro W DarakjyIndia2024-03-25King, Christopher A Esq RENEWAL7Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ashley U GillianRussiaBernardo Dominic UNQUALIFIED
Julie Y IturbideUnited KingdomIvan Magalhaes PROPOSAL
David S GauchoIndiaBernardo Dominic RENEWAL
Maria J VenereRussiaIvan Magalhaes NEGOTIATION
Aruna H SlusarskiAustraliaStephen Shaw QUALIFIED
Adams I RimBrazilAnna Fali NEW
Mayumi X RulapaughCanadaIoni Bowcher PROPOSAL
Nicolas O NestleGermanyAsiya Javayant PROPOSAL
Johnson Y WhobreyRussiaStephen Shaw PROPOSAL
Aditya U WaycottIndiaIvan Magalhaes PROPOSAL
Kadeem A WieserRussiaIvan Magalhaes QUALIFIED
Johnson I CaldareraArgentinaOnyama Limba NEGOTIATION
Jennifer Y SaylorsRussiaIvan Magalhaes PROPOSAL
Jennifer L WhobreyArgentinaOnyama Limba PROPOSAL
Misaki W PerinCanadaIoni Bowcher UNQUALIFIED
Johnson G FerenczGermanyElwin Sharvill PROPOSAL
Nicolas T SlusarskiAustraliaXuxue Feng NEW
Ashley G BowleyArgentinaStephen Shaw NEW
Juan H OstroskyItalyAsiya Javayant NEW
Maisha Q TollnerBrazilBernardo Dominic UNQUALIFIED
Maisha I WhobreyJapanElwin Sharvill RENEWAL
Mujtaba X DarakjySpainIvan Magalhaes QUALIFIED
Maisha M MaletRussiaElwin Sharvill QUALIFIED
Johnson Z WhobreyBrazilIvan Magalhaes NEGOTIATION
Claire M BowleyIndiaAmy Elsner RENEWAL
Stacey U PaprockiSpainIvan Magalhaes QUALIFIED
Murillo U TollnerGermanyIvan Magalhaes UNQUALIFIED
Johnson U RutaCanadaIvan Magalhaes RENEWAL
Ashley G DilliardSpainElwin Sharvill RENEWAL
Mayumi Z OldroydJapanIoni Bowcher PROPOSAL
Misaki I PerinUnited KingdomIvan Magalhaes PROPOSAL
Isabel W CaldareraFranceAsiya Javayant RENEWAL
Izzy B ButtJapanAmy Elsner RENEWAL
Cody E VocelkaGermanyIoni Bowcher RENEWAL
Jones V RimFranceAmy Elsner NEGOTIATION
Kaitlin P PaprockiIndiaAsiya Javayant RENEWAL
Kadeem E StensethIndiaStephen Shaw QUALIFIED
Izzy Y RulapaughRussiaAnna Fali UNQUALIFIED
Arvin T NickaAustraliaOnyama Limba PROPOSAL
Francesco V CampainSpainAsiya Javayant RENEWAL
Aditya L KolmetzCanadaOnyama Limba QUALIFIED
Jeanfrancois G RulapaughArgentinaOnyama Limba NEGOTIATION
Silvio Y KuskoJapanXuxue Feng NEW
Julie B StensethRussiaBernardo Dominic QUALIFIED
Sinclair L WaycottRussiaAnna Fali NEGOTIATION
Rodrigues C SchemmerItalyStephen Shaw QUALIFIED
Ivar A AlbaresRussiaStephen Shaw UNQUALIFIED
Aditya G DarakjyArgentinaAnna Fali NEW
Aditya N NestleCanadaAmy Elsner NEW
David H KuskoAustraliaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Faith M Slusarski
Clifford E Flosi
Julie K Foller
Maria M Doe
Wickens V Schemmer
Sinclair L Rulapaugh
Mujtaba W Darakjy
Mujtaba A Glick
Cody G Marrier
Smith N Nestle
Aditya X Poquette
Stacey S Venere
David J Vocelka
Greenwood C Albares
James J Inouye
Nicolas O Bowley
Stacey J Rulapaugh
Jefferson M Wieser
Alejandro B Maclead
Ashley Y Ruta
Octavia A Malet
Aruna P Stockham
Kadeem C Poquette
Stacey W Nestle
Faith B Waycott
Faith C Saylors
Tony U Dilliard
Murillo B Darakjy
Clifford H Flosi
Mayumi A Stenseth
Claire R Morasca
Julie S Oldroyd
Faith G Wieser
Smith C Vocelka
Wickens H Perin
Leon P Doe
Kadeem P Inouye
Julie E Waycott
Nicolas J Doe
Jeanfrancois H Slusarski
Adams G Dilliard
Chavez I Rim
Aika B Maclead
Arvin F Wieser
Leon U Campain
Chavez D Sergi
Francesco F Foller
Deepesh F Gillian
Aruna H Bolognia
Tony J Ferencz
IdCountryDate
1000Australia2024-04-05
1001Russia2024-04-08
1002Australia2024-03-24
1003Argentina2024-04-17
1004Brazil2024-04-02
1005Canada2024-04-18
1006Brazil2024-03-29
1007Spain2024-04-18
1008Australia2024-04-03
1009Russia2024-03-25
1010Italy2024-04-13
1011Brazil2024-04-12
1012Japan2024-04-22
1013Spain2024-04-22
1014Russia2024-04-20
1015France2024-04-02
1016Spain2024-03-25
1017Canada2024-03-30
1018Argentina2024-04-08
1019Brazil2024-04-05
1020Japan2024-04-08
1021United Kingdom2024-04-18
1022France2024-04-17
1023India2024-04-15
1024Russia2024-04-19
1025United Kingdom2024-04-05
1026Spain2024-04-12
1027Australia2024-04-19
1028Argentina2024-04-12
1029Germany2024-04-10
1030Germany2024-04-11
1031Russia2024-03-26
1032Australia2024-04-11
1033Italy2024-04-11
1034United Kingdom2024-04-17
1035Argentina2024-04-06
1036Brazil2024-03-26
1037Canada2024-03-31
1038Brazil2024-04-04
1039Japan2024-04-10
1040Italy2024-03-27
1041Brazil2024-03-31
1042Germany2024-04-11
1043Russia2024-04-05
1044France2024-04-01
1045Germany2024-04-08
1046Russia2024-04-09
1047Brazil2024-04-05
1048Italy2024-04-05
1049United Kingdom2024-03-30

On-Demand Data

NameIdCountryDate
Juan P Malet1000Argentina2024-04-02
Leja K Paprocki1001Australia2024-04-19
Silvio Z Kolmetz1002Russia2024-04-20
Greenwood G Waycott1003Italy2024-04-08
Smith K Campain1004Japan2024-04-03
Arvin X Venere1005India2024-04-01
Leja K Iturbide1006Canada2024-04-18
Nicolas M Chui1007Germany2024-04-06
Kaitlin T Venere1008Spain2024-03-31
Octavia Q Ostrosky1009Germany2024-04-07
Juan B Foller1010Russia2024-03-28
Julie I Campain1011Japan2024-04-15
Costa B Wieser1012France2024-03-29
Chavez M Glick1013Canada2024-03-31
Octavia C Iturbide1014Italy2024-03-28
Darci Y Rulapaugh1015Italy2024-03-28
Maisha D Oldroyd1016France2024-04-17
Aditya A Foller1017Spain2024-04-16
Mujtaba V Stenseth1018Spain2024-03-27
Cody P Caudy1019Japan2024-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro V StockhamIndiaIvan Magalhaes PROPOSAL
James G ButtFranceAsiya Javayant QUALIFIED
Morrow G GillianItalyAnna Fali NEGOTIATION
Johnson E OldroydIndiaElwin Sharvill NEGOTIATION
James Z MaletFranceStephen Shaw PROPOSAL
Johnson W SergiSpainIvan Magalhaes QUALIFIED
Leja O PoquetteSpainAsiya Javayant NEW
Greenwood J WieserGermanyStephen Shaw QUALIFIED
Mujtaba L AmigonUnited KingdomOnyama Limba UNQUALIFIED
Julie P RutaItalyStephen Shaw PROPOSAL
Johnson D ButtRussiaAmy Elsner PROPOSAL
Francesco Q MacleadJapanElwin Sharvill NEW
Cody X GarufiFranceBernardo Dominic RENEWAL
Murillo I FlosiItalyIvan Magalhaes NEW
Aditya U SlusarskiIndiaIvan Magalhaes NEGOTIATION
Maisha Z KuskoIndiaAmy Elsner RENEWAL
Deepesh V DoeGermanyAmy Elsner PROPOSAL
Morrow H ShinkoArgentinaElwin Sharvill NEW
Darci Q SergiSpainAsiya Javayant RENEWAL
Ricardo O MaletArgentinaIoni Bowcher QUALIFIED
Octavia W BowleyJapanAnna Fali RENEWAL
Aditya F GlickBrazilAmy Elsner UNQUALIFIED
Jeanfrancois N RoysterFranceStephen Shaw RENEWAL
Cody E RulapaughCanadaStephen Shaw UNQUALIFIED
Sinclair A DarakjyCanadaIoni Bowcher RENEWAL
Greenwood T KuskoSpainXuxue Feng PROPOSAL
Jones M CampainUnited KingdomOnyama Limba RENEWAL
Faith Y FollerFranceStephen Shaw NEGOTIATION
Stacey X KolmetzRussiaOnyama Limba RENEWAL
Clifford T BologniaJapanStephen Shaw PROPOSAL
Misaki Q FollerBrazilIvan Magalhaes UNQUALIFIED
Ricardo S MarrierFranceIvan Magalhaes UNQUALIFIED
Isabel U RimItalyOnyama Limba RENEWAL
Silvio K KolmetzUnited KingdomIvan Magalhaes QUALIFIED
Jeanfrancois B InouyeItalyElwin Sharvill NEW
Kadeem V RutaFranceAmy Elsner NEGOTIATION
Ricardo F KuskoIndiaBernardo Dominic UNQUALIFIED
Rodrigues S DoeRussiaAsiya Javayant UNQUALIFIED
Ricardo H PoquetteFranceAmy Elsner PROPOSAL
Wickens T NestleSpainElwin Sharvill PROPOSAL

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