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
Johnson S PerinArgentinaXuxue Feng NEW
Salvatore S ChuiFranceAmy Elsner UNQUALIFIED
Kaitlin X WieserFranceStephen Shaw UNQUALIFIED
Jones X GarufiArgentinaIvan Magalhaes RENEWAL
Ricardo I SaylorsAustraliaBernardo Dominic UNQUALIFIED
Leon H MaletAustraliaBernardo Dominic NEW
Aika J DoeArgentinaElwin Sharvill QUALIFIED
Deepesh J DilliardRussiaStephen Shaw UNQUALIFIED
James Y SchemmerIndiaXuxue Feng RENEWAL
Munro P ChuiIndiaAsiya Javayant QUALIFIED
Faith N MaletArgentinaBernardo Dominic UNQUALIFIED
Jennifer V MarrierBrazilBernardo Dominic QUALIFIED
Maisha L OstroskyJapanAsiya Javayant UNQUALIFIED
Arvin K MorascaJapanBernardo Dominic RENEWAL
Munro O PaprockiIndiaElwin Sharvill RENEWAL
Wickens Q GarufiUnited KingdomStephen Shaw QUALIFIED
Misaki D GauchoRussiaBernardo Dominic QUALIFIED
Isabel C GlickRussiaBernardo Dominic UNQUALIFIED
Salvatore C TollnerJapanOnyama Limba RENEWAL
Aika N BriddickCanadaIoni Bowcher RENEWAL
Chavez F CaudyFranceXuxue Feng NEGOTIATION
Kadeem O AlbaresGermanyIoni Bowcher UNQUALIFIED
Mujtaba E ButtJapanAmy Elsner NEGOTIATION
Aika O SlusarskiJapanBernardo Dominic RENEWAL
Ivar W SergiFranceAnna Fali RENEWAL
Silvio B DoeIndiaBernardo Dominic NEW
Cody O CaldareraFranceBernardo Dominic NEW
Kaitlin G WhobreyIndiaElwin Sharvill PROPOSAL
Johnson X RulapaughItalyAnna Fali UNQUALIFIED
Julie C PaprockiJapanAnna Fali PROPOSAL
Claire K BowleyBrazilAnna Fali QUALIFIED
Murillo Q CaldareraItalyStephen Shaw UNQUALIFIED
Faith P FlosiGermanyIvan Magalhaes RENEWAL
Stacey Z ButtAustraliaAnna Fali PROPOSAL
Stacey Y BologniaGermanyAnna Fali QUALIFIED
Isabel T SchemmerGermanyAsiya Javayant PROPOSAL
Deepesh C SlusarskiFranceAnna Fali NEW
Ashley X OldroydRussiaBernardo Dominic UNQUALIFIED
Alejandro H InouyeSpainIoni Bowcher UNQUALIFIED
Mayumi Y CampainSpainAsiya Javayant NEW
Greenwood I InouyeSpainAnna Fali RENEWAL
Maria X OldroydGermanyElwin Sharvill NEGOTIATION
Isabel N GillianRussiaAmy Elsner NEW
Morrow E BologniaItalyStephen Shaw NEW
Faith X StockhamAustraliaIvan Magalhaes QUALIFIED
Jeanfrancois Y FigeroaArgentinaBernardo Dominic NEW
Leon N VocelkaIndiaIoni Bowcher PROPOSAL
Juan J FollerUnited KingdomElwin Sharvill PROPOSAL
Arvin O TollnerBrazilElwin Sharvill PROPOSAL
Costa P ChuiFranceXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith V BowleyBrazilBernardo Dominic NEGOTIATION
Rodrigues C StockhamBrazilAmy Elsner QUALIFIED
Octavia D WaycottUnited KingdomAnna Fali RENEWAL
Octavia O PoquetteUnited KingdomAmy Elsner RENEWAL
Morrow V DoeIndiaIvan Magalhaes UNQUALIFIED
Smith N RulapaughIndiaAnna Fali NEW
Kadeem B KolmetzArgentinaIvan Magalhaes QUALIFIED
Maria P PerinRussiaOnyama Limba NEGOTIATION
Aditya D ChuiIndiaIvan Magalhaes QUALIFIED
Johnson P VenereAustraliaXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon I AmigonGermany2024-04-20Chapman, Ross E Esq UNQUALIFIED35Stephen Shaw
1001Clifford G GarufiUnited Kingdom2024-04-01Truhlar And Truhlar Attys NEGOTIATION10Stephen Shaw
1002Aruna P VocelkaFrance2024-03-30Morlong Associates PROPOSAL12Anna Fali
1003Ivar N StockhamFrance2024-04-18Benton, John B Jr PROPOSAL7Asiya Javayant
1004Jones D PaprockiGermany2024-04-22King, Christopher A Esq NEGOTIATION21Elwin Sharvill
1005Julie I MorascaCanada2024-04-12Feiner Bros UNQUALIFIED34Stephen Shaw
1006Aditya O RoysterRussia2024-04-11Rangoni Of Florence NEGOTIATION48Bernardo Dominic
1007Maria N NestleFrance2024-03-31King, Christopher A Esq NEW3Anna Fali
1008David F GauchoArgentina2024-04-14Chemel, James L Cpa NEGOTIATION55Anna Fali
1009Jefferson Z BowleyArgentina2024-04-22Truhlar And Truhlar Attys NEW8Stephen Shaw
1010Deepesh A CaldareraGermany2024-04-04Dorl, James J Esq NEW70Stephen Shaw
1011Jones O CaudyUnited Kingdom2024-03-29Feltz Printing Service RENEWAL52Xuxue Feng
1012Leon O KuskoIndia2024-04-19Feiner Bros QUALIFIED65Onyama Limba
1013Izzy Z WaycottGermany2024-04-10Rangoni Of Florence NEGOTIATION96Onyama Limba
1014Morrow W GarufiSpain2024-03-31Feiner Bros RENEWAL93Bernardo Dominic
1015Adams Q FollerGermany2024-04-01King, Christopher A Esq QUALIFIED70Asiya Javayant
1016Adams O PerinIndia2024-04-25Morlong Associates NEGOTIATION18Ivan Magalhaes
1017Faith Q StensethRussia2024-04-15Benton, John B Jr NEGOTIATION34Onyama Limba
1018Aika D CampainGermany2024-03-29King, Christopher A Esq PROPOSAL44Onyama Limba
1019Aika J StensethRussia2024-04-10Chemel, James L Cpa PROPOSAL7Stephen Shaw
1020James X CampainSpain2024-03-31Commercial Press UNQUALIFIED87Anna Fali
1021Mujtaba F GauchoUnited Kingdom2024-04-10Feiner Bros NEW14Onyama Limba
1022Leja Y DilliardBrazil2024-03-29Feltz Printing Service RENEWAL90Stephen Shaw
1023Kaitlin P TollnerGermany2024-04-10Morlong Associates UNQUALIFIED28Bernardo Dominic
1024Octavia J SaylorsGermany2024-04-10Printing Dimensions NEW78Xuxue Feng
1025Antonio Y PerinCanada2024-04-14Buckley Miller Wright UNQUALIFIED26Onyama Limba
1026Julie G ButtIndia2024-04-18Truhlar And Truhlar Attys NEW51Ivan Magalhaes
1027Mayumi R RoysterJapan2024-04-26Truhlar And Truhlar Attys QUALIFIED89Bernardo Dominic
1028Leja N PoquetteItaly2024-03-29Printing Dimensions RENEWAL3Bernardo Dominic
1029Morrow C WieserFrance2024-04-18Morlong Associates NEW0Ivan Magalhaes
1030Wickens L StensethAustralia2024-04-25Morlong Associates UNQUALIFIED70Elwin Sharvill
1031Cody B OldroydArgentina2024-04-08Chanay, Jeffrey A Esq NEW59Elwin Sharvill
1032Octavia Z OldroydSpain2024-04-02Morlong Associates PROPOSAL59Elwin Sharvill
1033Chavez E DarakjyCanada2024-04-20Buckley Miller Wright RENEWAL93Stephen Shaw
1034Darci N SaylorsSpain2024-04-20King, Christopher A Esq PROPOSAL45Asiya Javayant
1035Aditya K MaletArgentina2024-04-15King, Christopher A Esq NEW19Ivan Magalhaes
1036Isabel W RulapaughRussia2024-04-13Rousseaux, Michael Esq PROPOSAL85Ivan Magalhaes
1037Chavez N IturbideItaly2024-04-12Rousseaux, Michael Esq UNQUALIFIED90Ivan Magalhaes
1038Maisha F ButtBrazil2024-04-02Dorl, James J Esq QUALIFIED82Stephen Shaw
1039Aditya H BriddickCanada2024-04-03Chemel, James L Cpa NEW98Bernardo Dominic
1040Ricardo F WieserBrazil2024-04-17Benton, John B Jr UNQUALIFIED56Ivan Magalhaes
1041Ricardo Y AlbaresFrance2024-03-28Benton, John B Jr NEW77Elwin Sharvill
1042Maisha N RutaItaly2024-04-20Truhlar And Truhlar Attys RENEWAL59Bernardo Dominic
1043Mujtaba V VenereJapan2024-04-07Truhlar And Truhlar Attys NEW67Ivan Magalhaes
1044Cody O BologniaAustralia2024-03-29Rangoni Of Florence NEW66Asiya Javayant
1045Munro J ButtJapan2024-04-17Feiner Bros NEW32Asiya Javayant
1046Jeanfrancois N KolmetzJapan2024-04-17Commercial Press NEW77Ivan Magalhaes
1047Aruna T DarakjyRussia2024-04-21Chanay, Jeffrey A Esq NEGOTIATION36Stephen Shaw
1048Claire E SlusarskiUnited Kingdom2024-04-08Rangoni Of Florence UNQUALIFIED40Onyama Limba
1049Claire U VocelkaBrazil2024-04-08Benton, John B Jr NEGOTIATION74Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Misaki I DilliardGermanyIoni Bowcher QUALIFIED
Sinclair Y ButtRussiaXuxue Feng NEW
Ricardo U PoquetteUnited KingdomIoni Bowcher RENEWAL
Arvin Z InouyeCanadaIvan Magalhaes UNQUALIFIED
Johnson X SlusarskiArgentinaIoni Bowcher RENEWAL
Alejandro F BriddickBrazilOnyama Limba QUALIFIED
Wickens A FollerBrazilAnna Fali PROPOSAL
Smith H AlbaresSpainElwin Sharvill UNQUALIFIED
Aditya H NestleBrazilAmy Elsner UNQUALIFIED
Izzy O NickaRussiaBernardo Dominic UNQUALIFIED
Munro I PaprockiIndiaStephen Shaw PROPOSAL
Murillo I BologniaIndiaBernardo Dominic PROPOSAL
Sinclair G BologniaUnited KingdomIoni Bowcher NEGOTIATION
Sinclair E MarrierBrazilStephen Shaw NEGOTIATION
Salvatore D FlosiCanadaElwin Sharvill UNQUALIFIED
Claire U WieserBrazilIoni Bowcher NEW
Jones G IturbideAustraliaAsiya Javayant UNQUALIFIED
Kaitlin R TollnerItalyXuxue Feng RENEWAL
Murillo I ChuiRussiaAmy Elsner UNQUALIFIED
Mayumi N GauchoBrazilOnyama Limba PROPOSAL
Smith X MaletItalyAnna Fali RENEWAL
Aika J RulapaughSpainAmy Elsner UNQUALIFIED
Silvio X AlbaresGermanyStephen Shaw PROPOSAL
Arvin D CaldareraSpainOnyama Limba UNQUALIFIED
Jennifer I PaprockiCanadaBernardo Dominic QUALIFIED
Munro O GarufiRussiaAnna Fali QUALIFIED
Faith B GillianUnited KingdomAmy Elsner PROPOSAL
Aditya T CampainSpainAmy Elsner NEW
Wickens X DarakjyBrazilIoni Bowcher NEW
Deepesh N RulapaughIndiaOnyama Limba RENEWAL
Alejandro W CampainIndiaXuxue Feng QUALIFIED
Salvatore E BriddickGermanyOnyama Limba QUALIFIED
Izzy M PoquetteCanadaIvan Magalhaes PROPOSAL
Julie N BologniaItalyBernardo Dominic RENEWAL
Mujtaba T NestleSpainBernardo Dominic NEGOTIATION
Rodrigues K KuskoSpainXuxue Feng NEW
Arvin E FlosiFranceIvan Magalhaes UNQUALIFIED
Rodrigues Z NickaItalyAnna Fali QUALIFIED
James O WaycottFranceStephen Shaw NEW
Mujtaba R OstroskyBrazilIvan Magalhaes NEW
Morrow M WieserItalyIvan Magalhaes NEW
Claire T GauchoSpainStephen Shaw NEW
Greenwood O PaprockiCanadaBernardo Dominic RENEWAL
James Y BologniaBrazilStephen Shaw UNQUALIFIED
Faith I StockhamFranceAmy Elsner QUALIFIED
Jennifer H MarrierUnited KingdomAnna Fali QUALIFIED
Wickens C CaldareraItalyAmy Elsner PROPOSAL
Costa B MaletUnited KingdomAnna Fali PROPOSAL
Ricardo D GauchoIndiaIoni Bowcher NEGOTIATION
Johnson M OldroydRussiaAsiya Javayant NEGOTIATION
Frozen Columns
Name
Mayumi E Paprocki
Mujtaba S Gaucho
Arvin R Schemmer
Kadeem H Caudy
Mujtaba C Tollner
Ricardo L Malet
Francesco Q Maclead
Jeanfrancois V Wieser
Isabel E Ostrosky
Ivar F Whobrey
Adams Q Albares
Maisha R Oldroyd
Darci P Bowley
Maria S Oldroyd
Tony C Kolmetz
Darci C Whobrey
Octavia Y Darakjy
Tony A Glick
Chavez Q Paprocki
Kadeem P Maclead
Chavez H Stockham
Aika I Poquette
David C Darakjy
Leon D Bowley
Arvin I Perin
Ashley D Tollner
Chavez F Stockham
Maria H Iturbide
Francesco I Paprocki
Octavia K Kusko
Ivar R Campain
Ashley W Slusarski
Ricardo E Paprocki
Octavia Y Nestle
James D Caldarera
Stacey Q Glick
Mayumi N Oldroyd
Munro G Ferencz
Juan U Campain
Alejandro Y Ferencz
Ivar B Kolmetz
Alejandro M Shinko
Ivar C Tollner
Maisha K Rulapaugh
Johnson W Glick
Adams S Nicka
Octavia F Amigon
Mayumi I Gaucho
Leja K Inouye
Smith T Malet
IdCountryDate
1000Italy2024-04-10
1001India2024-04-01
1002Italy2024-04-20
1003Italy2024-04-07
1004Argentina2024-04-25
1005Japan2024-04-25
1006France2024-04-12
1007Canada2024-04-02
1008Russia2024-04-10
1009Australia2024-04-07
1010Canada2024-03-30
1011France2024-04-08
1012Argentina2024-04-24
1013France2024-04-19
1014Russia2024-03-31
1015Italy2024-04-23
1016Canada2024-04-24
1017Japan2024-04-21
1018India2024-04-04
1019Argentina2024-03-29
1020Russia2024-04-25
1021Spain2024-04-08
1022Brazil2024-04-07
1023Canada2024-04-10
1024Germany2024-04-03
1025Russia2024-04-20
1026Australia2024-04-26
1027Brazil2024-04-18
1028Canada2024-04-09
1029Australia2024-04-10
1030India2024-04-11
1031Japan2024-04-05
1032Canada2024-04-17
1033Brazil2024-04-01
1034Argentina2024-04-23
1035United Kingdom2024-03-28
1036Argentina2024-04-06
1037Italy2024-04-01
1038Brazil2024-04-07
1039Argentina2024-04-18
1040Japan2024-04-24
1041Australia2024-04-23
1042Australia2024-04-04
1043France2024-03-29
1044Australia2024-04-25
1045United Kingdom2024-04-12
1046Argentina2024-04-06
1047Germany2024-04-11
1048India2024-04-25
1049Argentina2024-04-26

On-Demand Data

NameIdCountryDate
Jefferson K Wieser1000India2024-04-17
Aika H Poquette1001Brazil2024-03-31
Leon A Poquette1002India2024-04-23
Wickens K Foller1003Germany2024-04-09
Isabel Q Royster1004Brazil2024-04-15
Stacey Z Venere1005Russia2024-04-19
Maria W Chui1006Russia2024-04-12
Cody E Caudy1007Brazil2024-04-14
Faith L Foller1008Brazil2024-04-04
Julie T Slusarski1009Argentina2024-04-14
Ricardo U Waycott1010Canada2024-04-14
Stacey R Albares1011Russia2024-04-03
Ivar O Ruta1012United Kingdom2024-04-22
David U Marrier1013Russia2024-04-06
Mayumi L Amigon1014Germany2024-04-13
Leja P Figeroa1015Russia2024-03-30
Leja W Poquette1016Italy2024-03-31
Johnson I Gaucho1017Brazil2024-04-15
Claire D Poquette1018Argentina2024-04-13
Claire U Perin1019United Kingdom2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aditya K RutaArgentinaAnna Fali NEW
Smith T FlosiItalyIoni Bowcher QUALIFIED
Kadeem C IturbideIndiaOnyama Limba NEW
Wickens N BologniaCanadaElwin Sharvill NEGOTIATION
Clifford B GillianFranceOnyama Limba NEGOTIATION
Emily O OldroydFranceAnna Fali QUALIFIED
Jeanfrancois Y CampainSpainAmy Elsner UNQUALIFIED
Silvio V SergiAustraliaIvan Magalhaes PROPOSAL
Smith A StensethRussiaAmy Elsner PROPOSAL
Munro Y RimJapanAmy Elsner NEGOTIATION
Silvio B GauchoGermanyAmy Elsner NEGOTIATION
Isabel U OldroydItalyStephen Shaw RENEWAL
Mayumi P StockhamSpainIvan Magalhaes NEW
Murillo Y GauchoJapanElwin Sharvill RENEWAL
Ashley Y BowleyUnited KingdomIvan Magalhaes QUALIFIED
Deepesh Z RimSpainAmy Elsner QUALIFIED
Stacey X DoeSpainAnna Fali QUALIFIED
Cody O KuskoRussiaAnna Fali PROPOSAL
Rodrigues Y WaycottJapanOnyama Limba NEGOTIATION
Sinclair E BologniaJapanOnyama Limba NEW
Tony C BowleyBrazilAsiya Javayant NEW
Nicolas L RulapaughIndiaAmy Elsner NEGOTIATION
Aditya G AlbaresSpainAmy Elsner PROPOSAL
Stacey F TollnerAustraliaAnna Fali PROPOSAL
Jones T RulapaughJapanOnyama Limba PROPOSAL
Octavia I FerenczUnited KingdomXuxue Feng NEGOTIATION
Francesco X MarrierUnited KingdomElwin Sharvill NEW
Wickens Y RulapaughJapanIoni Bowcher RENEWAL
Ashley A RoysterCanadaAmy Elsner UNQUALIFIED
Francesco T PerinRussiaBernardo Dominic RENEWAL
Stacey X RimItalyOnyama Limba UNQUALIFIED
Nicolas E GauchoRussiaAnna Fali PROPOSAL
Munro R ButtArgentinaAmy Elsner NEW
Antonio N OldroydGermanyXuxue Feng NEGOTIATION
Isabel V ButtIndiaBernardo Dominic NEGOTIATION
Nicolas M ShinkoAustraliaAmy Elsner PROPOSAL
Munro C KolmetzItalyElwin Sharvill UNQUALIFIED
Deepesh N NestleIndiaOnyama Limba NEGOTIATION
Leja J TollnerSpainIoni Bowcher PROPOSAL
Octavia H OldroydIndiaAnna Fali RENEWAL

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