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
Mayumi X FollerGermanyStephen Shaw QUALIFIED
David G SergiGermanyOnyama Limba NEGOTIATION
Greenwood W ButtItalyAsiya Javayant NEW
Chavez I KuskoIndiaElwin Sharvill QUALIFIED
Izzy U PaprockiFranceElwin Sharvill RENEWAL
Nicolas W MarrierUnited KingdomAnna Fali NEGOTIATION
Greenwood X SergiSpainIvan Magalhaes QUALIFIED
Murillo W ChuiAustraliaAnna Fali NEW
Rodrigues A CampainJapanAnna Fali UNQUALIFIED
Aditya E ButtUnited KingdomIoni Bowcher RENEWAL
Johnson D MorascaRussiaBernardo Dominic RENEWAL
Clifford D BowleyJapanAsiya Javayant QUALIFIED
Salvatore Z StockhamAustraliaAsiya Javayant QUALIFIED
Murillo W MorascaRussiaElwin Sharvill QUALIFIED
Arvin C FollerJapanIvan Magalhaes NEW
Jones N BriddickArgentinaXuxue Feng QUALIFIED
Ivar D DarakjyFranceIoni Bowcher NEW
Murillo Y CaudyItalyIvan Magalhaes NEGOTIATION
Tony M CaudyIndiaIoni Bowcher RENEWAL
Francesco K BriddickGermanyBernardo Dominic QUALIFIED
Wickens G FerenczCanadaStephen Shaw NEGOTIATION
Antonio X SaylorsAustraliaAsiya Javayant NEGOTIATION
Jefferson K AlbaresItalyBernardo Dominic RENEWAL
James Z AmigonBrazilAnna Fali PROPOSAL
Aruna X BologniaUnited KingdomOnyama Limba NEW
Clifford D GillianUnited KingdomBernardo Dominic RENEWAL
James V BowleyAustraliaIvan Magalhaes NEGOTIATION
James U FigeroaGermanyOnyama Limba QUALIFIED
Silvio F CaudyBrazilStephen Shaw UNQUALIFIED
Francesco Q GarufiBrazilIoni Bowcher NEW
Jefferson O CampainIndiaStephen Shaw UNQUALIFIED
Arvin O SlusarskiJapanXuxue Feng PROPOSAL
Isabel X MorascaIndiaAnna Fali UNQUALIFIED
Smith T OstroskySpainElwin Sharvill RENEWAL
Izzy K FigeroaCanadaAnna Fali PROPOSAL
Jones F AmigonIndiaAsiya Javayant NEW
Jennifer Y AmigonBrazilIvan Magalhaes PROPOSAL
Clifford N FerenczRussiaIoni Bowcher NEGOTIATION
Mujtaba L PerinAustraliaXuxue Feng NEW
Darci U SergiSpainStephen Shaw NEGOTIATION
Darci R RutaJapanBernardo Dominic QUALIFIED
Murillo V AlbaresBrazilXuxue Feng PROPOSAL
Jeanfrancois H NickaItalyAmy Elsner QUALIFIED
James J WieserRussiaXuxue Feng NEW
Aika H CaldareraRussiaStephen Shaw NEGOTIATION
Sinclair T KuskoItalyIoni Bowcher QUALIFIED
Izzy M BowleyJapanAnna Fali NEW
Jeanfrancois L KolmetzCanadaOnyama Limba RENEWAL
Claire O WaycottJapanStephen Shaw RENEWAL
Morrow A MaletFranceStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Morrow Q MaletGermanyAsiya Javayant UNQUALIFIED
Aruna C KolmetzCanadaStephen Shaw UNQUALIFIED
Munro S MaletRussiaAmy Elsner NEW
Jeanfrancois V PerinArgentinaAnna Fali RENEWAL
Stacey A CaudySpainAsiya Javayant NEGOTIATION
Nicolas I SchemmerItalyXuxue Feng NEGOTIATION
Darci L ShinkoGermanyElwin Sharvill PROPOSAL
Chavez S SchemmerArgentinaIvan Magalhaes UNQUALIFIED
Darci I RulapaughSpainAsiya Javayant NEW
James B GauchoBrazilBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem S DoeJapan2024-04-10Commercial Press NEGOTIATION6Onyama Limba
1001Murillo Z BowleyItaly2024-04-16Dorl, James J Esq NEGOTIATION52Bernardo Dominic
1002Costa M TollnerArgentina2024-03-27Chanay, Jeffrey A Esq PROPOSAL12Elwin Sharvill
1003Emily B VocelkaItaly2024-03-30Rousseaux, Michael Esq UNQUALIFIED52Ivan Magalhaes
1004Morrow W KuskoRussia2024-04-25Rousseaux, Michael Esq NEW77Amy Elsner
1005Kaitlin V GauchoBrazil2024-03-28Chemel, James L Cpa UNQUALIFIED7Anna Fali
1006Silvio T TollnerArgentina2024-03-29Truhlar And Truhlar Attys UNQUALIFIED57Ioni Bowcher
1007Leon D PaprockiJapan2024-04-09Feltz Printing Service NEW60Xuxue Feng
1008Izzy W SaylorsGermany2024-04-16Chapman, Ross E Esq RENEWAL40Bernardo Dominic
1009Greenwood X AmigonCanada2024-04-02Commercial Press QUALIFIED54Onyama Limba
1010Maisha Y InouyeSpain2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED8Stephen Shaw
1011Jones I CaudyItaly2024-04-08Rousseaux, Michael Esq UNQUALIFIED68Xuxue Feng
1012Smith R GillianUnited Kingdom2024-04-02Buckley Miller Wright PROPOSAL80Elwin Sharvill
1013Salvatore Y FerenczItaly2024-03-28Truhlar And Truhlar Attys PROPOSAL3Xuxue Feng
1014Kadeem W VocelkaAustralia2024-04-15Printing Dimensions RENEWAL64Bernardo Dominic
1015Maisha L MorascaFrance2024-03-27Feiner Bros RENEWAL24Xuxue Feng
1016Faith M PaprockiAustralia2024-04-15Morlong Associates NEGOTIATION66Asiya Javayant
1017Octavia E SlusarskiItaly2024-04-19King, Christopher A Esq NEGOTIATION27Onyama Limba
1018Antonio V MaletArgentina2024-04-23Benton, John B Jr QUALIFIED50Ivan Magalhaes
1019David L GillianCanada2024-04-12Chemel, James L Cpa NEW58Xuxue Feng
1020Arvin Z FlosiGermany2024-04-16Printing Dimensions RENEWAL28Ivan Magalhaes
1021Stacey U RoysterRussia2024-04-13Chanay, Jeffrey A Esq PROPOSAL64Elwin Sharvill
1022Stacey Z SaylorsIndia2024-04-25Commercial Press NEW50Elwin Sharvill
1023Leja F WhobreyRussia2024-04-21Feiner Bros RENEWAL29Onyama Limba
1024Ricardo J GauchoCanada2024-04-13Morlong Associates UNQUALIFIED15Onyama Limba
1025Salvatore P SlusarskiBrazil2024-04-24Chapman, Ross E Esq NEW57Elwin Sharvill
1026Cody B FerenczGermany2024-04-19Commercial Press UNQUALIFIED9Stephen Shaw
1027Johnson D DoeItaly2024-04-25Truhlar And Truhlar Attys NEW60Elwin Sharvill
1028Leon G RulapaughItaly2024-03-31Rousseaux, Michael Esq RENEWAL62Anna Fali
1029Julie H CaldareraItaly2024-04-24King, Christopher A Esq NEGOTIATION72Bernardo Dominic
1030Jennifer U GarufiRussia2024-04-07King, Christopher A Esq PROPOSAL79Elwin Sharvill
1031Aika S DoeBrazil2024-04-23Printing Dimensions NEW41Bernardo Dominic
1032David Z BriddickSpain2024-04-20Dorl, James J Esq UNQUALIFIED80Amy Elsner
1033Aruna A StensethUnited Kingdom2024-04-09Printing Dimensions NEGOTIATION54Amy Elsner
1034Costa I CaudyRussia2024-04-10Rangoni Of Florence RENEWAL23Xuxue Feng
1035Kaitlin F BologniaFrance2024-04-01Rousseaux, Michael Esq RENEWAL56Stephen Shaw
1036Darci E SchemmerSpain2024-04-25Benton, John B Jr RENEWAL99Ivan Magalhaes
1037Jefferson V WhobreyItaly2024-03-27Truhlar And Truhlar Attys QUALIFIED40Ivan Magalhaes
1038Salvatore O SlusarskiBrazil2024-04-10Buckley Miller Wright NEGOTIATION28Bernardo Dominic
1039Smith K ChuiFrance2024-03-30Feltz Printing Service NEGOTIATION20Onyama Limba
1040Emily Q WaycottIndia2024-04-04Buckley Miller Wright QUALIFIED0Amy Elsner
1041Cody A NickaFrance2024-04-21Rangoni Of Florence NEGOTIATION40Anna Fali
1042Tony E DoeFrance2024-04-19Chapman, Ross E Esq RENEWAL29Bernardo Dominic
1043David H PerinArgentina2024-04-10Rangoni Of Florence NEW24Anna Fali
1044Deepesh C RimFrance2024-04-06Morlong Associates PROPOSAL20Anna Fali
1045Jeanfrancois J CaudyUnited Kingdom2024-04-23Chemel, James L Cpa NEGOTIATION62Xuxue Feng
1046Emily S StensethCanada2024-04-14Feltz Printing Service QUALIFIED66Onyama Limba
1047Antonio G ShinkoItaly2024-04-11Truhlar And Truhlar Attys QUALIFIED56Amy Elsner
1048Stacey M DilliardCanada2024-03-27Dorl, James J Esq UNQUALIFIED93Xuxue Feng
1049Greenwood P AlbaresSpain2024-03-28Chanay, Jeffrey A Esq NEW62Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
David N OldroydRussiaStephen Shaw RENEWAL
Claire J IturbideCanadaOnyama Limba UNQUALIFIED
Stacey P MarrierRussiaStephen Shaw NEGOTIATION
Nicolas D TollnerIndiaIvan Magalhaes PROPOSAL
Emily H RulapaughArgentinaIvan Magalhaes NEW
Clifford J WieserJapanIvan Magalhaes QUALIFIED
Maisha D TollnerUnited KingdomAsiya Javayant NEW
Aruna S BriddickRussiaElwin Sharvill PROPOSAL
Chavez F SaylorsRussiaElwin Sharvill NEGOTIATION
Jones S PaprockiCanadaAnna Fali PROPOSAL
Adams D AlbaresBrazilIoni Bowcher PROPOSAL
Mujtaba V NickaAustraliaAsiya Javayant QUALIFIED
Darci G WieserArgentinaElwin Sharvill NEGOTIATION
Adams P CaudyArgentinaXuxue Feng RENEWAL
Johnson S PaprockiAustraliaBernardo Dominic QUALIFIED
James D BowleyFranceIvan Magalhaes RENEWAL
Ricardo P MacleadSpainStephen Shaw PROPOSAL
Antonio Q TollnerFranceAmy Elsner NEGOTIATION
Alejandro C SlusarskiSpainAnna Fali NEW
Octavia Y MaletAustraliaAnna Fali PROPOSAL
Salvatore G FollerRussiaAmy Elsner UNQUALIFIED
Smith P MarrierSpainXuxue Feng RENEWAL
Ashley I PaprockiRussiaAsiya Javayant RENEWAL
Arvin D SlusarskiAustraliaXuxue Feng NEW
Nicolas S NestleGermanyStephen Shaw QUALIFIED
Aika I WaycottUnited KingdomStephen Shaw NEW
Morrow C WaycottSpainElwin Sharvill QUALIFIED
Mujtaba U CaldareraFranceElwin Sharvill RENEWAL
Antonio S BowleyItalyStephen Shaw QUALIFIED
Misaki J CaudyIndiaXuxue Feng RENEWAL
Stacey V SchemmerGermanyElwin Sharvill NEW
Stacey M WaycottFranceIoni Bowcher QUALIFIED
Aruna V StensethGermanyOnyama Limba QUALIFIED
Stacey T CaudyItalyOnyama Limba QUALIFIED
Ashley D DoeIndiaElwin Sharvill QUALIFIED
Adams S NestleAustraliaBernardo Dominic UNQUALIFIED
Tony A MaletItalyAnna Fali RENEWAL
Jefferson S RutaArgentinaIvan Magalhaes QUALIFIED
Leja V GillianUnited KingdomAsiya Javayant UNQUALIFIED
Cody L NickaSpainAnna Fali NEGOTIATION
Smith N SchemmerRussiaElwin Sharvill RENEWAL
Ricardo E ButtRussiaIvan Magalhaes UNQUALIFIED
Izzy P StockhamRussiaBernardo Dominic UNQUALIFIED
Deepesh V GauchoArgentinaElwin Sharvill QUALIFIED
Ivar L WhobreyFranceStephen Shaw RENEWAL
Greenwood U WaycottAustraliaOnyama Limba NEGOTIATION
Wickens S FerenczRussiaElwin Sharvill RENEWAL
Kadeem O IturbideArgentinaStephen Shaw NEW
Murillo F PaprockiSpainElwin Sharvill NEGOTIATION
Mayumi C RimArgentinaXuxue Feng PROPOSAL
Frozen Columns
Name
James C Tollner
Nicolas I Foller
Leon U Stenseth
Adams F Caldarera
Jones E Inouye
Jennifer B Rim
Murillo J Bowley
Deepesh I Figeroa
Costa S Figeroa
Octavia V Nestle
Aditya J Morasca
Ashley F Oldroyd
Emily S Ostrosky
Mayumi I Nestle
Maisha X Morasca
Mayumi J Perin
Jennifer S Butt
Wickens K Dilliard
Leon L Wieser
Deepesh K Marrier
Jeanfrancois Y Darakjy
Silvio V Ferencz
Izzy U Rulapaugh
David O Malet
Maisha E Albares
Jennifer H Amigon
Jefferson X Slusarski
Faith Y Stenseth
Sinclair J Shinko
Adams Z Iturbide
Juan O Doe
Stacey E Briddick
Arvin C Morasca
Maria A Oldroyd
Silvio H Iturbide
Tony R Slusarski
Octavia H Rim
Jeanfrancois A Bolognia
Adams O Glick
Darci R Malet
Chavez M Kusko
Darci I Rim
Murillo V Ruta
Jones R Campain
Mujtaba F Kolmetz
Aika X Oldroyd
Aika V Flosi
Nicolas I Saylors
Emily S Inouye
Antonio M Poquette
IdCountryDate
1000France2024-04-04
1001India2024-04-11
1002France2024-04-11
1003Australia2024-04-13
1004Australia2024-04-08
1005Italy2024-04-23
1006Argentina2024-04-13
1007Russia2024-04-20
1008Argentina2024-03-30
1009Italy2024-03-30
1010France2024-03-28
1011United Kingdom2024-03-31
1012Germany2024-03-27
1013France2024-04-24
1014Italy2024-04-07
1015Canada2024-04-21
1016Spain2024-04-19
1017Russia2024-04-01
1018Canada2024-04-09
1019Germany2024-04-18
1020United Kingdom2024-04-14
1021Brazil2024-04-08
1022Italy2024-03-28
1023India2024-03-31
1024Russia2024-04-11
1025Spain2024-04-12
1026Japan2024-04-13
1027Italy2024-04-07
1028Brazil2024-04-10
1029Argentina2024-04-21
1030Russia2024-03-30
1031Canada2024-04-10
1032Italy2024-04-07
1033Brazil2024-04-06
1034Spain2024-04-22
1035India2024-04-03
1036Brazil2024-04-08
1037Russia2024-04-11
1038India2024-04-20
1039Spain2024-04-19
1040Italy2024-04-10
1041France2024-04-10
1042Argentina2024-04-05
1043Spain2024-04-04
1044Germany2024-03-27
1045Japan2024-04-11
1046France2024-04-24
1047Russia2024-04-13
1048Australia2024-04-01
1049Japan2024-04-16

On-Demand Data

NameIdCountryDate
David R Chui1000Italy2024-04-24
Jefferson H Ferencz1001India2024-04-25
Nicolas L Malet1002United Kingdom2024-04-19
David F Chui1003Argentina2024-04-02
Costa T Stockham1004Canada2024-04-19
Jones Q Marrier1005Russia2024-04-01
Smith R Schemmer1006Japan2024-04-03
Misaki Z Sergi1007Russia2024-04-04
Cody X Flosi1008France2024-04-02
Faith G Malet1009Russia2024-04-12
Greenwood S Bolognia1010Canada2024-04-02
Mayumi C Bolognia1011India2024-04-23
Salvatore Z Ruta1012Brazil2024-04-13
Costa S Nestle1013Australia2024-04-13
David H Perin1014United Kingdom2024-03-27
Mujtaba S Kusko1015Italy2024-03-27
Ivar E Garufi1016Spain2024-04-02
Octavia C Flosi1017Canada2024-04-18
Leon I Wieser1018United Kingdom2024-04-20
James J Slusarski1019India2024-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa K SlusarskiSpainXuxue Feng QUALIFIED
Cody E BologniaBrazilAsiya Javayant NEGOTIATION
Tony I FollerFranceIvan Magalhaes RENEWAL
Stacey S FigeroaIndiaStephen Shaw UNQUALIFIED
Jefferson B OldroydAustraliaIvan Magalhaes NEGOTIATION
Cody H MarrierItalyAmy Elsner UNQUALIFIED
Johnson B FlosiArgentinaStephen Shaw RENEWAL
Costa L NickaArgentinaOnyama Limba QUALIFIED
Darci C MorascaCanadaBernardo Dominic PROPOSAL
Mujtaba S VenereBrazilAsiya Javayant NEW
Adams R ButtIndiaBernardo Dominic NEW
Jones J IturbideUnited KingdomAsiya Javayant NEGOTIATION
Stacey V MaletCanadaAnna Fali RENEWAL
Rodrigues X MacleadArgentinaStephen Shaw QUALIFIED
Tony C FigeroaGermanyAsiya Javayant PROPOSAL
Alejandro U VenereJapanIoni Bowcher RENEWAL
David O NestleRussiaIvan Magalhaes NEGOTIATION
Izzy M RutaSpainAsiya Javayant QUALIFIED
Izzy B GlickBrazilStephen Shaw UNQUALIFIED
James M BriddickItalyIoni Bowcher NEGOTIATION
Smith T StensethJapanXuxue Feng RENEWAL
Julie G StockhamGermanyXuxue Feng UNQUALIFIED
Adams V CampainArgentinaStephen Shaw QUALIFIED
Morrow P NickaAustraliaAnna Fali UNQUALIFIED
Aruna K PoquetteItalyStephen Shaw UNQUALIFIED
Johnson Z GarufiRussiaIvan Magalhaes RENEWAL
Jennifer M FigeroaBrazilAmy Elsner NEW
Sinclair X CampainFranceOnyama Limba NEGOTIATION
Munro U PaprockiBrazilIvan Magalhaes PROPOSAL
Nicolas X StensethArgentinaBernardo Dominic UNQUALIFIED
Claire K MorascaItalyElwin Sharvill NEW
Aditya B InouyeAustraliaAsiya Javayant PROPOSAL
Isabel K RimAustraliaElwin Sharvill RENEWAL
Antonio D SergiRussiaElwin Sharvill UNQUALIFIED
Francesco L GauchoJapanElwin Sharvill UNQUALIFIED
Morrow V ChuiGermanyAsiya Javayant NEW
Misaki S StockhamArgentinaAnna Fali RENEWAL
Faith Z VenereIndiaIoni Bowcher NEGOTIATION
Alejandro G PoquetteJapanElwin Sharvill UNQUALIFIED
Morrow R RimRussiaAmy Elsner 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>