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
Salvatore Z BologniaBrazilXuxue Feng PROPOSAL
Izzy F WieserItalyXuxue Feng PROPOSAL
Tony C FlosiSpainStephen Shaw QUALIFIED
Jennifer K BriddickBrazilStephen Shaw PROPOSAL
Jennifer T CampainItalyXuxue Feng UNQUALIFIED
Tony G KuskoUnited KingdomAmy Elsner UNQUALIFIED
Julie W ChuiSpainXuxue Feng NEW
Isabel U KuskoJapanBernardo Dominic PROPOSAL
James E VocelkaArgentinaAsiya Javayant UNQUALIFIED
Jeanfrancois P CampainSpainAmy Elsner QUALIFIED
Jones J SergiFranceBernardo Dominic QUALIFIED
Sinclair G PoquetteCanadaAnna Fali NEGOTIATION
Francesco G RimItalyAnna Fali NEGOTIATION
Johnson Z GauchoFranceStephen Shaw QUALIFIED
Greenwood O WaycottJapanAmy Elsner PROPOSAL
Faith N InouyeItalyAnna Fali QUALIFIED
Octavia P NestleJapanBernardo Dominic QUALIFIED
Munro E MarrierSpainElwin Sharvill RENEWAL
Aditya J RimCanadaOnyama Limba UNQUALIFIED
Cody Y RoysterGermanyIoni Bowcher RENEWAL
Greenwood U GarufiAustraliaIvan Magalhaes QUALIFIED
Silvio K AmigonCanadaAnna Fali NEGOTIATION
Aditya N RutaSpainOnyama Limba NEW
Rodrigues N CaldareraIndiaIoni Bowcher UNQUALIFIED
Munro V IturbideUnited KingdomAnna Fali NEW
Francesco T VocelkaIndiaIoni Bowcher NEW
Chavez C ChuiSpainXuxue Feng UNQUALIFIED
Stacey B CampainSpainAsiya Javayant PROPOSAL
Smith M IturbideIndiaElwin Sharvill NEGOTIATION
Adams X DarakjyItalyAnna Fali NEW
Faith E AlbaresAustraliaElwin Sharvill NEGOTIATION
Misaki G IturbideGermanyAnna Fali UNQUALIFIED
Aruna P DilliardUnited KingdomIvan Magalhaes UNQUALIFIED
Octavia N GauchoGermanyElwin Sharvill PROPOSAL
Mayumi P KolmetzUnited KingdomBernardo Dominic NEGOTIATION
Arvin K NestleIndiaOnyama Limba QUALIFIED
Francesco Q FollerArgentinaIoni Bowcher RENEWAL
Leja V PoquetteUnited KingdomElwin Sharvill NEW
Kadeem B RimIndiaStephen Shaw NEW
Ricardo X VenereUnited KingdomOnyama Limba QUALIFIED
Ashley C MarrierItalyXuxue Feng PROPOSAL
Octavia I WieserRussiaStephen Shaw NEW
Jeanfrancois Z WhobreyIndiaAnna Fali PROPOSAL
Cody A VocelkaUnited KingdomAnna Fali NEW
Wickens T GillianSpainElwin Sharvill PROPOSAL
Murillo Q StensethJapanStephen Shaw NEGOTIATION
Adams A MacleadIndiaXuxue Feng QUALIFIED
Aruna G CaudyArgentinaBernardo Dominic NEW
Kadeem Z ShinkoArgentinaElwin Sharvill QUALIFIED
Adams Y SergiCanadaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Antonio K PoquetteItalyAnna Fali QUALIFIED
Jennifer X SlusarskiItalyElwin Sharvill QUALIFIED
Morrow P MarrierAustraliaOnyama Limba NEGOTIATION
Smith P OldroydBrazilElwin Sharvill QUALIFIED
Misaki L WaycottIndiaAnna Fali UNQUALIFIED
Jeanfrancois F KolmetzUnited KingdomElwin Sharvill NEW
Leja O MaletItalyElwin Sharvill UNQUALIFIED
Claire I InouyeAustraliaIoni Bowcher NEW
Darci S NickaUnited KingdomAnna Fali RENEWAL
Octavia L ShinkoAustraliaStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya T DoeItaly2024-04-14Feiner Bros RENEWAL52Stephen Shaw
1001Clifford P TollnerJapan2024-04-06Chanay, Jeffrey A Esq PROPOSAL68Onyama Limba
1002Johnson N CaudyIndia2024-03-31Commercial Press QUALIFIED13Stephen Shaw
1003Misaki Y OldroydIndia2024-04-02Printing Dimensions PROPOSAL34Stephen Shaw
1004Tony I BowleyArgentina2024-04-07Feltz Printing Service RENEWAL46Stephen Shaw
1005Julie G RimGermany2024-04-06Rousseaux, Michael Esq NEW47Ivan Magalhaes
1006Faith I OstroskyItaly2024-04-12Benton, John B Jr QUALIFIED23Asiya Javayant
1007Claire X AmigonSpain2024-04-21Truhlar And Truhlar Attys UNQUALIFIED52Amy Elsner
1008Maisha J PoquetteBrazil2024-04-04Chanay, Jeffrey A Esq RENEWAL18Asiya Javayant
1009Aika G StensethUnited Kingdom2024-04-18Chemel, James L Cpa UNQUALIFIED11Xuxue Feng
1010Salvatore M SaylorsJapan2024-04-25King, Christopher A Esq UNQUALIFIED82Anna Fali
1011Adams F KuskoGermany2024-04-20Feiner Bros NEW66Anna Fali
1012Ivar N VocelkaArgentina2024-04-06Chanay, Jeffrey A Esq PROPOSAL81Ioni Bowcher
1013Octavia N SaylorsFrance2024-04-20Dorl, James J Esq QUALIFIED62Asiya Javayant
1014Greenwood M MorascaFrance2024-03-31Feiner Bros QUALIFIED29Amy Elsner
1015Salvatore O GarufiBrazil2024-04-23Feiner Bros RENEWAL15Stephen Shaw
1016Adams D DoeJapan2024-04-19Printing Dimensions NEW45Stephen Shaw
1017Faith K DilliardAustralia2024-04-20Dorl, James J Esq NEGOTIATION29Stephen Shaw
1018Aika J DoeCanada2024-04-09Chemel, James L Cpa NEGOTIATION96Bernardo Dominic
1019Murillo X ShinkoUnited Kingdom2024-04-13Chapman, Ross E Esq PROPOSAL97Amy Elsner
1020Johnson G ChuiBrazil2024-04-13Rangoni Of Florence PROPOSAL53Stephen Shaw
1021Munro J OstroskyCanada2024-04-13Printing Dimensions NEW68Asiya Javayant
1022Darci Y FlosiArgentina2024-04-13Benton, John B Jr UNQUALIFIED29Anna Fali
1023Wickens U NickaGermany2024-04-15Chapman, Ross E Esq PROPOSAL35Asiya Javayant
1024Ivar A StockhamJapan2024-03-31Commercial Press NEW64Anna Fali
1025Ivar X AmigonUnited Kingdom2024-04-25Dorl, James J Esq RENEWAL5Xuxue Feng
1026Jeanfrancois Q ButtFrance2024-04-13Benton, John B Jr QUALIFIED0Elwin Sharvill
1027Juan H SaylorsItaly2024-04-11Benton, John B Jr RENEWAL48Stephen Shaw
1028Kaitlin L BriddickItaly2024-04-10Commercial Press NEW69Bernardo Dominic
1029Johnson W BowleyRussia2024-04-22Dorl, James J Esq NEW79Stephen Shaw
1030Isabel R SaylorsIndia2024-04-25Feltz Printing Service NEW10Xuxue Feng
1031Munro E CaldareraFrance2024-04-20King, Christopher A Esq PROPOSAL19Stephen Shaw
1032Johnson B CaudyFrance2024-04-02Chanay, Jeffrey A Esq QUALIFIED13Ioni Bowcher
1033Emily X MarrierArgentina2024-04-08Buckley Miller Wright NEGOTIATION34Asiya Javayant
1034Clifford H GauchoGermany2024-04-14Benton, John B Jr PROPOSAL95Ioni Bowcher
1035Julie G KuskoIndia2024-04-22Feltz Printing Service QUALIFIED40Onyama Limba
1036Aditya R RoysterGermany2024-04-27King, Christopher A Esq RENEWAL42Xuxue Feng
1037Costa H StensethRussia2024-04-17Buckley Miller Wright NEW70Amy Elsner
1038Leja X RutaUnited Kingdom2024-04-27Morlong Associates NEGOTIATION2Elwin Sharvill
1039Emily F MacleadAustralia2024-04-21Rangoni Of Florence UNQUALIFIED12Bernardo Dominic
1040Tony V KuskoArgentina2024-04-21Feiner Bros RENEWAL14Onyama Limba
1041Salvatore E BologniaIndia2024-04-13Rangoni Of Florence QUALIFIED14Stephen Shaw
1042Rodrigues P GillianCanada2024-04-14Truhlar And Truhlar Attys NEW33Stephen Shaw
1043Ivar M StockhamFrance2024-04-21Buckley Miller Wright PROPOSAL97Elwin Sharvill
1044Faith X IturbideUnited Kingdom2024-04-25Rousseaux, Michael Esq NEGOTIATION8Amy Elsner
1045Salvatore H PoquetteJapan2024-04-08Benton, John B Jr RENEWAL53Xuxue Feng
1046Clifford X VenereJapan2024-04-06Chanay, Jeffrey A Esq QUALIFIED32Onyama Limba
1047Silvio D RimJapan2024-04-10Commercial Press RENEWAL86Ivan Magalhaes
1048Nicolas D StockhamIndia2024-04-19Commercial Press NEW35Xuxue Feng
1049Wickens W RutaBrazil2024-04-21Rousseaux, Michael Esq QUALIFIED30Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Costa Z SaylorsAustraliaIoni Bowcher UNQUALIFIED
Murillo D DoeFranceAnna Fali NEW
Maria D NestleBrazilAnna Fali QUALIFIED
Silvio A FollerAustraliaIvan Magalhaes NEGOTIATION
Munro P DarakjyFranceAsiya Javayant QUALIFIED
Jefferson Z CaudyArgentinaIoni Bowcher UNQUALIFIED
Morrow R RimBrazilXuxue Feng PROPOSAL
Morrow A NickaBrazilIvan Magalhaes NEW
Nicolas W FigeroaRussiaXuxue Feng PROPOSAL
Aditya O AlbaresJapanOnyama Limba PROPOSAL
Arvin P ButtJapanXuxue Feng RENEWAL
Darci R DoeItalyXuxue Feng QUALIFIED
Ivar W WhobreyAustraliaAnna Fali UNQUALIFIED
David M KuskoSpainXuxue Feng RENEWAL
Leja D InouyeAustraliaIoni Bowcher PROPOSAL
Costa G NickaCanadaElwin Sharvill UNQUALIFIED
Julie G MaletJapanAsiya Javayant QUALIFIED
Jeanfrancois E RimUnited KingdomAnna Fali NEGOTIATION
Salvatore E WieserIndiaIvan Magalhaes NEGOTIATION
Jeanfrancois G VocelkaBrazilOnyama Limba NEW
Greenwood U CampainRussiaXuxue Feng QUALIFIED
James V RimArgentinaIvan Magalhaes QUALIFIED
Chavez E KolmetzGermanyXuxue Feng UNQUALIFIED
Faith B MaletSpainStephen Shaw UNQUALIFIED
Ashley F AmigonUnited KingdomIvan Magalhaes NEW
Emily M GillianItalyElwin Sharvill RENEWAL
Chavez U PerinAustraliaXuxue Feng NEGOTIATION
Isabel L BologniaArgentinaStephen Shaw UNQUALIFIED
Deepesh G FollerBrazilIvan Magalhaes RENEWAL
James J OstroskyAustraliaAsiya Javayant NEW
Jennifer N CampainSpainBernardo Dominic NEW
Juan N MaletSpainXuxue Feng QUALIFIED
Ricardo X GarufiBrazilAnna Fali UNQUALIFIED
Rodrigues U RoysterCanadaAmy Elsner QUALIFIED
Morrow J BriddickUnited KingdomAsiya Javayant PROPOSAL
Mayumi E MaletUnited KingdomAsiya Javayant QUALIFIED
Maisha R PaprockiIndiaAsiya Javayant RENEWAL
Aika T DilliardArgentinaElwin Sharvill PROPOSAL
Maria C GillianIndiaBernardo Dominic NEGOTIATION
Silvio N BriddickCanadaAsiya Javayant PROPOSAL
Adams T CaldareraBrazilStephen Shaw NEW
Tony K GarufiRussiaAnna Fali QUALIFIED
Antonio K FollerCanadaIvan Magalhaes NEW
Rodrigues Z GillianItalyIoni Bowcher RENEWAL
Smith D SergiIndiaOnyama Limba QUALIFIED
Francesco T AlbaresUnited KingdomAsiya Javayant NEW
Julie D BologniaItalyBernardo Dominic QUALIFIED
Sinclair R FerenczJapanIvan Magalhaes RENEWAL
Antonio U SlusarskiFranceXuxue Feng UNQUALIFIED
Faith J TollnerBrazilElwin Sharvill QUALIFIED
Frozen Columns
Name
Munro V Sergi
Isabel I Darakjy
David A Bowley
Silvio P Tollner
Greenwood R Vocelka
James Z Caldarera
Mayumi Q Amigon
Clifford B Gillian
Maria I Iturbide
David Y Darakjy
Emily L Tollner
Aruna B Briddick
Juan B Venere
Morrow Q Inouye
Aika A Doe
Julie H Morasca
Kadeem G Bowley
Alejandro Q Rulapaugh
Juan F Ostrosky
Maria E Schemmer
Maisha C Gillian
Izzy L Shinko
Francesco P Vocelka
Adams S Slusarski
Julie D Flosi
Jeanfrancois Q Poquette
Rodrigues C Kolmetz
Juan K Shinko
David V Nestle
Darci D Campain
Aruna D Saylors
Nicolas T Foller
Ashley B Gaucho
Jefferson N Perin
Salvatore Q Sergi
Smith Z Sergi
Juan O Malet
Isabel U Inouye
Tony S Maclead
Ivar J Amigon
Silvio O Figeroa
Sinclair W Stenseth
Maisha U Saylors
Ashley M Kolmetz
Octavia F Gaucho
Tony V Butt
Kadeem J Schemmer
Misaki J Foller
Arvin P Oldroyd
Rodrigues R Slusarski
IdCountryDate
1000Brazil2024-04-24
1001Japan2024-04-01
1002Russia2024-04-08
1003India2024-04-12
1004France2024-04-07
1005United Kingdom2024-04-21
1006Argentina2024-04-13
1007India2024-04-07
1008Russia2024-04-18
1009France2024-04-27
1010Spain2024-04-18
1011Argentina2024-04-06
1012Germany2024-04-11
1013Argentina2024-04-26
1014Germany2024-04-06
1015Germany2024-04-08
1016Australia2024-04-15
1017United Kingdom2024-04-26
1018Argentina2024-04-09
1019Italy2024-04-29
1020United Kingdom2024-04-26
1021Canada2024-04-26
1022India2024-04-15
1023Russia2024-04-16
1024Brazil2024-04-14
1025Brazil2024-04-21
1026Germany2024-04-24
1027India2024-04-22
1028United Kingdom2024-04-04
1029Brazil2024-04-13
1030Canada2024-04-07
1031Spain2024-04-22
1032France2024-04-29
1033Australia2024-04-22
1034Spain2024-04-25
1035Germany2024-04-10
1036United Kingdom2024-04-05
1037United Kingdom2024-04-15
1038Argentina2024-04-13
1039France2024-04-26
1040Australia2024-04-09
1041Argentina2024-04-21
1042France2024-04-18
1043Brazil2024-04-03
1044Germany2024-04-28
1045Japan2024-04-24
1046France2024-04-14
1047United Kingdom2024-04-15
1048Argentina2024-04-16
1049Spain2024-03-31

On-Demand Data

NameIdCountryDate
Francesco H Morasca1000Australia2024-04-24
Chavez O Oldroyd1001Germany2024-04-13
Aika K Ruta1002France2024-04-07
Jennifer L Perin1003Italy2024-04-21
Costa Q Sergi1004Canada2024-04-23
Stacey Y Caudy1005Australia2024-04-09
Maisha B Saylors1006Spain2024-04-29
Faith G Maclead1007India2024-04-11
Alejandro D Wieser1008France2024-04-13
Maisha W Rim1009Australia2024-04-15
Leja M Dilliard1010Brazil2024-04-23
Costa O Nicka1011Japan2024-04-08
Jefferson I Briddick1012Germany2024-04-14
Jefferson Y Bolognia1013United Kingdom2024-04-02
Isabel V Royster1014Russia2024-04-16
Ashley Z Whobrey1015Brazil2024-04-11
Sinclair C Royster1016Spain2024-04-05
Munro B Glick1017Japan2024-04-22
Ashley I Darakjy1018Russia2024-04-02
Johnson I Nestle1019Japan2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi N AlbaresRussiaElwin Sharvill PROPOSAL
Jennifer Y CaudyUnited KingdomAnna Fali QUALIFIED
Cody I PoquetteAustraliaStephen Shaw NEGOTIATION
Munro Y IturbideItalyStephen Shaw RENEWAL
Maria A SlusarskiArgentinaOnyama Limba NEGOTIATION
Smith O PoquetteItalyAmy Elsner NEW
Aruna T ButtUnited KingdomAsiya Javayant NEW
Julie Z DilliardCanadaOnyama Limba NEW
Adams U DoeBrazilIvan Magalhaes NEW
Morrow V ButtJapanAmy Elsner NEGOTIATION
Jennifer Z MorascaJapanOnyama Limba RENEWAL
Francesco L KolmetzSpainXuxue Feng PROPOSAL
Morrow L StockhamItalyElwin Sharvill PROPOSAL
Jennifer I InouyeUnited KingdomElwin Sharvill RENEWAL
Chavez K StockhamIndiaElwin Sharvill NEW
Jones Q DarakjyRussiaAmy Elsner NEW
Chavez W PerinIndiaIoni Bowcher NEW
Sinclair H VocelkaIndiaIvan Magalhaes NEW
Maisha L GauchoSpainXuxue Feng QUALIFIED
Jeanfrancois A FlosiJapanAmy Elsner QUALIFIED
Costa D CaudyArgentinaXuxue Feng PROPOSAL
Chavez X WaycottGermanyOnyama Limba NEW
Greenwood O NestleCanadaElwin Sharvill QUALIFIED
Ivar P KuskoJapanXuxue Feng QUALIFIED
Johnson A MacleadRussiaOnyama Limba NEW
Izzy I StockhamCanadaAmy Elsner NEW
Jeanfrancois T AmigonItalyXuxue Feng RENEWAL
Antonio G MarrierArgentinaIoni Bowcher NEW
Tony C AlbaresJapanAnna Fali PROPOSAL
Arvin T InouyeSpainStephen Shaw RENEWAL
Chavez V TollnerBrazilAsiya Javayant PROPOSAL
Isabel H IturbideItalyBernardo Dominic RENEWAL
Smith P PaprockiItalyOnyama Limba RENEWAL
Costa K GlickAustraliaIvan Magalhaes RENEWAL
Greenwood M WieserBrazilAmy Elsner NEGOTIATION
Emily X DarakjyArgentinaIoni Bowcher RENEWAL
Greenwood X SergiIndiaStephen Shaw NEGOTIATION
Rodrigues H StockhamIndiaAmy Elsner RENEWAL
Aruna U DoeIndiaAnna Fali NEW
Misaki W VocelkaRussiaXuxue Feng UNQUALIFIED

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