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
Nicolas D NestleFranceIoni Bowcher UNQUALIFIED
Murillo F FerenczItalyIoni Bowcher PROPOSAL
Leja C SergiRussiaIvan Magalhaes NEW
Ashley G PaprockiBrazilOnyama Limba QUALIFIED
Kaitlin L MarrierItalyStephen Shaw NEW
Maisha C GillianArgentinaAmy Elsner QUALIFIED
Morrow K KuskoFranceAnna Fali UNQUALIFIED
Izzy U StockhamBrazilOnyama Limba QUALIFIED
Alejandro K MorascaIndiaIoni Bowcher NEGOTIATION
Kadeem Y BologniaBrazilAmy Elsner NEGOTIATION
Arvin O MacleadItalyIoni Bowcher QUALIFIED
Aditya Y IturbideFranceAmy Elsner NEW
Sinclair I MorascaJapanStephen Shaw NEW
Cody L FigeroaGermanyOnyama Limba UNQUALIFIED
Aruna I GlickAustraliaElwin Sharvill RENEWAL
Greenwood C AmigonGermanyBernardo Dominic QUALIFIED
Morrow C BriddickJapanBernardo Dominic NEGOTIATION
Clifford H VenereFranceAmy Elsner NEW
Rodrigues U MorascaAustraliaAnna Fali PROPOSAL
Jones I WaycottCanadaIvan Magalhaes PROPOSAL
Tony Y ShinkoRussiaBernardo Dominic UNQUALIFIED
Costa O KolmetzBrazilStephen Shaw QUALIFIED
Octavia L FlosiBrazilAsiya Javayant NEW
Faith W AmigonGermanyXuxue Feng QUALIFIED
Tony E KolmetzCanadaStephen Shaw PROPOSAL
Misaki G ButtIndiaAnna Fali NEW
Maisha H WaycottJapanXuxue Feng UNQUALIFIED
Arvin J VenereIndiaIvan Magalhaes QUALIFIED
Leja D InouyeArgentinaIoni Bowcher RENEWAL
Leon W WaycottGermanyIoni Bowcher NEW
Juan E GarufiFranceIvan Magalhaes PROPOSAL
Jennifer E GauchoGermanyXuxue Feng QUALIFIED
Arvin T MorascaItalyAmy Elsner RENEWAL
Julie S PoquetteItalyAnna Fali QUALIFIED
Claire R PaprockiGermanyIoni Bowcher NEGOTIATION
Adams F SchemmerJapanIvan Magalhaes UNQUALIFIED
David V MarrierItalyElwin Sharvill NEGOTIATION
Maria P MaletItalyElwin Sharvill NEGOTIATION
Leja I WaycottBrazilAmy Elsner RENEWAL
Murillo L AlbaresArgentinaXuxue Feng RENEWAL
Clifford H FlosiItalyAnna Fali UNQUALIFIED
Tony G MaletSpainElwin Sharvill PROPOSAL
Antonio C OldroydItalyBernardo Dominic NEW
Darci A DoeRussiaAsiya Javayant RENEWAL
Ashley H WieserUnited KingdomBernardo Dominic PROPOSAL
Adams G DoeFranceXuxue Feng RENEWAL
Claire K GillianAustraliaAnna Fali NEGOTIATION
Antonio W KuskoItalyAsiya Javayant UNQUALIFIED
Jennifer V RimAustraliaOnyama Limba NEGOTIATION
Aika Z InouyeUnited KingdomOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Julie A MaletSpainOnyama Limba NEW
Tony O NickaFranceIvan Magalhaes QUALIFIED
Izzy V DilliardUnited KingdomStephen Shaw NEGOTIATION
Isabel D DarakjyAustraliaAmy Elsner NEGOTIATION
Costa L MarrierGermanyIoni Bowcher PROPOSAL
Maria D SergiAustraliaBernardo Dominic RENEWAL
Claire C FerenczRussiaStephen Shaw NEGOTIATION
Deepesh J BowleyArgentinaXuxue Feng QUALIFIED
Arvin M ButtBrazilStephen Shaw QUALIFIED
Francesco Z SlusarskiUnited KingdomElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson A TollnerFrance2024-05-21Morlong Associates QUALIFIED35Asiya Javayant
1001Maria A RoysterItaly2024-05-02Printing Dimensions UNQUALIFIED18Xuxue Feng
1002Ivar S GillianRussia2024-04-28Rangoni Of Florence PROPOSAL45Stephen Shaw
1003Alejandro W BowleyJapan2024-04-25Chemel, James L Cpa RENEWAL9Elwin Sharvill
1004Darci K OstroskyItaly2024-05-17Benton, John B Jr QUALIFIED93Onyama Limba
1005Misaki W OldroydArgentina2024-04-30Buckley Miller Wright RENEWAL98Amy Elsner
1006Cody T FigeroaSpain2024-05-17Benton, John B Jr NEW4Asiya Javayant
1007Izzy N FollerUnited Kingdom2024-04-28Feiner Bros NEW32Onyama Limba
1008Claire R VocelkaItaly2024-04-28Buckley Miller Wright NEGOTIATION25Elwin Sharvill
1009Arvin Y RimSpain2024-05-18Morlong Associates QUALIFIED17Anna Fali
1010Julie W RoysterAustralia2024-05-12Chemel, James L Cpa UNQUALIFIED81Onyama Limba
1011Emily X PerinFrance2024-05-18Truhlar And Truhlar Attys QUALIFIED38Bernardo Dominic
1012Isabel B PerinItaly2024-04-26Chanay, Jeffrey A Esq NEGOTIATION18Anna Fali
1013Tony H MacleadArgentina2024-05-01Morlong Associates RENEWAL92Ivan Magalhaes
1014Aika J SaylorsBrazil2024-05-15Truhlar And Truhlar Attys UNQUALIFIED78Ivan Magalhaes
1015Ashley K SlusarskiFrance2024-05-17Buckley Miller Wright NEW46Asiya Javayant
1016Jones W PaprockiBrazil2024-05-05Printing Dimensions NEGOTIATION72Onyama Limba
1017Ricardo S AmigonAustralia2024-05-13Morlong Associates NEW56Ivan Magalhaes
1018Ashley I CaudyIndia2024-05-04Chanay, Jeffrey A Esq PROPOSAL7Asiya Javayant
1019Cody X MaletGermany2024-05-14Feiner Bros QUALIFIED79Xuxue Feng
1020Kadeem Z GlickFrance2024-05-08Chapman, Ross E Esq NEW87Elwin Sharvill
1021Claire C WaycottBrazil2024-05-06Chanay, Jeffrey A Esq NEGOTIATION51Amy Elsner
1022Aditya S ShinkoArgentina2024-04-30Chapman, Ross E Esq QUALIFIED75Asiya Javayant
1023Juan Y BologniaIndia2024-04-29Chapman, Ross E Esq QUALIFIED62Amy Elsner
1024Rodrigues R PerinAustralia2024-05-14Rangoni Of Florence UNQUALIFIED78Onyama Limba
1025Morrow K CaldareraFrance2024-05-15Chapman, Ross E Esq RENEWAL28Stephen Shaw
1026Leja S GlickAustralia2024-04-23Chanay, Jeffrey A Esq PROPOSAL54Elwin Sharvill
1027Jennifer M CampainRussia2024-05-10Printing Dimensions NEW8Onyama Limba
1028Greenwood F OstroskyArgentina2024-05-16Feiner Bros PROPOSAL38Ivan Magalhaes
1029Aika H KuskoGermany2024-05-16Feltz Printing Service RENEWAL28Elwin Sharvill
1030Costa H MaletSpain2024-04-28Feiner Bros NEGOTIATION71Anna Fali
1031Darci G IturbideSpain2024-04-28Commercial Press UNQUALIFIED25Ivan Magalhaes
1032Jennifer T MacleadSpain2024-04-24Chanay, Jeffrey A Esq QUALIFIED28Xuxue Feng
1033Misaki Z VenereGermany2024-05-14Buckley Miller Wright NEGOTIATION29Anna Fali
1034Ricardo X FigeroaItaly2024-04-26Feltz Printing Service RENEWAL35Asiya Javayant
1035Murillo F ChuiRussia2024-05-11Rangoni Of Florence NEGOTIATION83Onyama Limba
1036Octavia J DarakjyArgentina2024-05-15Commercial Press NEGOTIATION72Ioni Bowcher
1037Alejandro P MaletGermany2024-05-08Rousseaux, Michael Esq PROPOSAL2Onyama Limba
1038Juan X RutaItaly2024-04-23King, Christopher A Esq NEGOTIATION49Asiya Javayant
1039Isabel J BriddickRussia2024-05-06Feiner Bros UNQUALIFIED61Elwin Sharvill
1040Munro Z FigeroaBrazil2024-05-07Dorl, James J Esq NEW95Anna Fali
1041Jones Q CaudySpain2024-05-02Buckley Miller Wright UNQUALIFIED95Bernardo Dominic
1042Antonio B PerinRussia2024-05-06Benton, John B Jr NEGOTIATION63Amy Elsner
1043Antonio C OldroydItaly2024-05-17Feltz Printing Service NEW43Anna Fali
1044Nicolas Q DarakjyRussia2024-05-02Truhlar And Truhlar Attys NEW29Anna Fali
1045Juan I DarakjySpain2024-05-04Buckley Miller Wright NEGOTIATION30Xuxue Feng
1046Aruna W AmigonArgentina2024-04-28Chapman, Ross E Esq UNQUALIFIED17Ioni Bowcher
1047Nicolas S VocelkaRussia2024-05-13Buckley Miller Wright UNQUALIFIED63Onyama Limba
1048Stacey T AmigonCanada2024-04-25Commercial Press PROPOSAL13Anna Fali
1049Ivar F MaletSpain2024-05-13Morlong Associates UNQUALIFIED92Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jones I VocelkaGermanyAnna Fali NEW
Arvin B NestleUnited KingdomBernardo Dominic NEW
Smith I RutaSpainXuxue Feng NEW
Salvatore A WhobreyBrazilXuxue Feng RENEWAL
Kadeem S MacleadIndiaBernardo Dominic QUALIFIED
Maria V DarakjyGermanyXuxue Feng NEW
Murillo Q CampainIndiaAnna Fali NEW
Aika Y RutaIndiaStephen Shaw QUALIFIED
Isabel Q CaldareraItalyStephen Shaw UNQUALIFIED
David E NestleSpainElwin Sharvill QUALIFIED
Nicolas H ChuiSpainXuxue Feng NEW
Jefferson N MaletJapanElwin Sharvill QUALIFIED
Stacey W MaletGermanyIoni Bowcher NEW
Alejandro L KuskoRussiaOnyama Limba QUALIFIED
Arvin E IturbideFranceIvan Magalhaes UNQUALIFIED
Jeanfrancois K InouyeItalyStephen Shaw RENEWAL
Johnson V RimItalyAsiya Javayant RENEWAL
Munro T BologniaCanadaAsiya Javayant QUALIFIED
Maisha B RimJapanBernardo Dominic NEW
Johnson U RoysterJapanAnna Fali NEW
Silvio A SlusarskiFranceIvan Magalhaes NEW
Greenwood H ChuiCanadaIvan Magalhaes RENEWAL
Claire K FigeroaFranceAsiya Javayant NEW
Misaki U FigeroaCanadaIoni Bowcher NEW
Deepesh N SergiFranceIvan Magalhaes NEGOTIATION
Cody H CaudyItalyBernardo Dominic NEGOTIATION
Tony Z ButtFranceStephen Shaw QUALIFIED
Silvio N SaylorsItalyXuxue Feng NEW
Ricardo J KuskoArgentinaAnna Fali NEGOTIATION
David E GauchoItalyIoni Bowcher UNQUALIFIED
Leja U OstroskyBrazilAmy Elsner NEW
Smith S NestleArgentinaIvan Magalhaes QUALIFIED
Francesco O IturbideIndiaIoni Bowcher PROPOSAL
Mujtaba H WieserIndiaBernardo Dominic QUALIFIED
Clifford R SlusarskiAustraliaAnna Fali UNQUALIFIED
Juan Y WieserItalyAnna Fali PROPOSAL
Salvatore A TollnerGermanyStephen Shaw RENEWAL
Johnson J FerenczCanadaXuxue Feng QUALIFIED
Octavia T InouyeSpainXuxue Feng UNQUALIFIED
Kaitlin S PoquetteJapanAnna Fali QUALIFIED
Greenwood R ButtGermanyElwin Sharvill PROPOSAL
Alejandro N NestleAustraliaBernardo Dominic NEGOTIATION
Aika C FerenczBrazilStephen Shaw NEW
Ivar I NestleArgentinaBernardo Dominic UNQUALIFIED
Johnson O RulapaughBrazilAmy Elsner NEGOTIATION
Emily M CampainJapanAsiya Javayant UNQUALIFIED
Leon W GlickUnited KingdomElwin Sharvill QUALIFIED
Julie S PerinItalyOnyama Limba RENEWAL
Silvio J MaletUnited KingdomBernardo Dominic NEW
Kadeem C AmigonUnited KingdomElwin Sharvill QUALIFIED
Frozen Columns
Name
Sinclair B Nicka
Jeanfrancois J Foller
Nicolas R Malet
Misaki G Saylors
Jeanfrancois N Tollner
Stacey G Rim
Jeanfrancois U Caldarera
Costa J Darakjy
Faith W Nestle
Morrow V Inouye
Smith A Saylors
Faith B Albares
Smith A Chui
Izzy W Nicka
Chavez R Albares
Salvatore O Caudy
Salvatore I Morasca
Maisha Z Darakjy
Morrow W Wieser
Misaki L Rim
Octavia V Shinko
Octavia U Butt
Arvin E Malet
Jennifer Z Bowley
Morrow P Ruta
Izzy A Bowley
Adams S Albares
Emily A Tollner
Aditya W Foller
Faith D Flosi
Emily T Darakjy
Maria J Campain
Izzy I Malet
Deepesh V Oldroyd
Nicolas W Tollner
Wickens K Iturbide
Murillo P Stockham
Adams D Butt
Clifford R Malet
Julie A Saylors
Munro Z Oldroyd
Alejandro F Perin
Maria A Nicka
Misaki Y Caldarera
Costa S Poquette
Nicolas F Foller
Antonio O Darakjy
Ivar D Vocelka
Aika D Stockham
Costa U Malet
IdCountryDate
1000France2024-04-27
1001France2024-05-03
1002Italy2024-04-27
1003Japan2024-05-11
1004Japan2024-04-26
1005Italy2024-05-11
1006Argentina2024-05-10
1007United Kingdom2024-04-22
1008India2024-05-15
1009Canada2024-05-02
1010Australia2024-05-04
1011Argentina2024-05-18
1012India2024-05-21
1013Italy2024-05-03
1014Germany2024-05-08
1015Italy2024-05-20
1016Spain2024-05-02
1017Japan2024-05-10
1018United Kingdom2024-05-16
1019Brazil2024-05-02
1020Japan2024-05-07
1021Brazil2024-04-30
1022Australia2024-05-09
1023India2024-05-16
1024United Kingdom2024-05-17
1025Germany2024-05-04
1026Germany2024-04-24
1027Australia2024-05-07
1028Germany2024-05-02
1029India2024-05-16
1030Italy2024-05-07
1031Argentina2024-05-16
1032Germany2024-05-14
1033Australia2024-05-04
1034Brazil2024-05-13
1035India2024-05-05
1036Australia2024-05-16
1037Canada2024-05-10
1038Australia2024-04-28
1039Japan2024-04-29
1040Argentina2024-04-29
1041Italy2024-05-01
1042United Kingdom2024-04-24
1043France2024-04-22
1044Canada2024-05-18
1045India2024-04-24
1046Spain2024-04-30
1047Japan2024-05-06
1048Canada2024-05-14
1049India2024-05-10

On-Demand Data

NameIdCountryDate
Wickens F Gaucho1000Japan2024-04-28
Kadeem H Iturbide1001Germany2024-05-06
Ivar V Ostrosky1002Italy2024-05-19
Faith Q Shinko1003United Kingdom2024-05-03
Stacey C Iturbide1004Canada2024-04-25
Salvatore O Ferencz1005Argentina2024-05-02
Greenwood Z Stockham1006Japan2024-05-16
Johnson Z Royster1007Australia2024-05-13
Isabel V Tollner1008Australia2024-05-06
Adams X Doe1009Italy2024-05-15
David F Malet1010Australia2024-04-25
Stacey Z Caudy1011Argentina2024-05-20
James L Paprocki1012Argentina2024-04-25
Jefferson N Glick1013Brazil2024-04-24
Ashley H Royster1014United Kingdom2024-05-18
Johnson J Rulapaugh1015Italy2024-04-29
Maria H Inouye1016United Kingdom2024-04-30
Juan K Albares1017Canada2024-05-18
Ashley F Gillian1018Australia2024-05-08
Salvatore U Paprocki1019Canada2024-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily F WaycottGermanyAmy Elsner NEW
Faith E PerinArgentinaXuxue Feng NEGOTIATION
Jennifer V ChuiJapanElwin Sharvill NEGOTIATION
Salvatore J OstroskyJapanElwin Sharvill QUALIFIED
Kadeem O ButtJapanAsiya Javayant NEW
Darci W GlickBrazilAnna Fali QUALIFIED
Faith J DilliardJapanAnna Fali NEW
Juan I KuskoBrazilElwin Sharvill PROPOSAL
Silvio J SaylorsFranceIoni Bowcher PROPOSAL
Kaitlin K MaletFranceAmy Elsner UNQUALIFIED
Stacey A RimGermanyStephen Shaw NEW
Alejandro P GillianCanadaIoni Bowcher NEW
Isabel B CaldareraSpainAnna Fali NEW
Darci R RimRussiaAnna Fali QUALIFIED
Aruna L InouyeUnited KingdomIoni Bowcher QUALIFIED
Munro B CaldareraIndiaAsiya Javayant UNQUALIFIED
Francesco H WieserArgentinaStephen Shaw RENEWAL
Nicolas H ShinkoRussiaOnyama Limba UNQUALIFIED
Darci L RoysterIndiaIvan Magalhaes NEW
Smith F GlickCanadaAmy Elsner NEGOTIATION
Antonio C WhobreyGermanyAmy Elsner QUALIFIED
Aditya M PerinBrazilOnyama Limba NEGOTIATION
Mayumi H NestleUnited KingdomStephen Shaw UNQUALIFIED
Aditya K RulapaughGermanyAmy Elsner RENEWAL
Maisha F ButtItalyIoni Bowcher PROPOSAL
Maria K AmigonRussiaOnyama Limba QUALIFIED
Ashley R DarakjySpainStephen Shaw PROPOSAL
Ricardo P PoquetteUnited KingdomIoni Bowcher RENEWAL
Arvin X TollnerSpainAnna Fali RENEWAL
Leon G DilliardSpainIvan Magalhaes RENEWAL
Costa H VocelkaRussiaAnna Fali QUALIFIED
Aika X CampainIndiaIoni Bowcher NEGOTIATION
Jones K SergiFranceIoni Bowcher NEGOTIATION
Greenwood R FlosiArgentinaAsiya Javayant NEW
Francesco I KolmetzArgentinaStephen Shaw QUALIFIED
Emily W MarrierUnited KingdomIoni Bowcher RENEWAL
Antonio U SergiJapanStephen Shaw RENEWAL
Francesco W FlosiRussiaOnyama Limba NEGOTIATION
Kaitlin G WaycottCanadaOnyama Limba UNQUALIFIED
James H MaletJapanXuxue Feng 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>