Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Central Kurdish
Khmer
Kyrgyz
Kazakh
Lithuanian
Latvian
Malay
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Serbian
Swedish
Thai
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

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 D BriddickUnited KingdomIvan Magalhaes RENEWAL
Darci I GauchoJapanXuxue Feng PROPOSAL
Ricardo E MarrierIndiaAmy Elsner RENEWAL
Maisha X BowleyCanadaAsiya Javayant PROPOSAL
James G StensethRussiaAnna Fali QUALIFIED
Maria K GarufiFranceIvan Magalhaes PROPOSAL
Jennifer S MorascaJapanIoni Bowcher UNQUALIFIED
Stacey E SaylorsCanadaAsiya Javayant RENEWAL
Leon C MarrierRussiaElwin Sharvill NEW
Kaitlin P GillianItalyIoni Bowcher RENEWAL
Adams I RimRussiaBernardo Dominic NEW
David H DarakjyIndiaElwin Sharvill RENEWAL
Stacey B ShinkoCanadaXuxue Feng UNQUALIFIED
Adams I FerenczJapanElwin Sharvill QUALIFIED
Kadeem N SlusarskiRussiaXuxue Feng QUALIFIED
Emily I PaprockiCanadaElwin Sharvill RENEWAL
Nicolas K PaprockiArgentinaElwin Sharvill QUALIFIED
Wickens I VenereGermanyOnyama Limba NEW
Ivar E WhobreyFranceOnyama Limba UNQUALIFIED
Chavez R FerenczSpainAsiya Javayant NEGOTIATION
Stacey U PoquetteSpainIoni Bowcher QUALIFIED
Isabel X OstroskyItalyAsiya Javayant QUALIFIED
Silvio B ShinkoArgentinaAsiya Javayant PROPOSAL
Ashley I KuskoAustraliaAmy Elsner NEGOTIATION
Morrow R BologniaGermanyAmy Elsner UNQUALIFIED
Adams D CaldareraBrazilXuxue Feng PROPOSAL
Costa K MarrierJapanIvan Magalhaes PROPOSAL
Jeanfrancois Z VocelkaCanadaStephen Shaw UNQUALIFIED
Maisha Z ButtGermanyOnyama Limba NEGOTIATION
Emily D RutaAustraliaAmy Elsner RENEWAL
Mayumi V WaycottItalyOnyama Limba RENEWAL
Jones B KolmetzGermanyAsiya Javayant NEGOTIATION
Darci U MacleadRussiaOnyama Limba UNQUALIFIED
Costa S CampainJapanStephen Shaw NEW
Ashley J KolmetzFranceAnna Fali RENEWAL
Tony V InouyeBrazilBernardo Dominic UNQUALIFIED
Smith R ShinkoJapanIoni Bowcher UNQUALIFIED
David U OldroydGermanyAsiya Javayant NEW
Mujtaba Z InouyeIndiaIoni Bowcher RENEWAL
Aditya G KolmetzArgentinaAsiya Javayant NEW
Salvatore A NestleSpainOnyama Limba NEW
Misaki M KuskoItalyStephen Shaw RENEWAL
Jefferson A AlbaresIndiaIoni Bowcher NEGOTIATION
Nicolas M GarufiAustraliaIoni Bowcher QUALIFIED
Arvin E VenereGermanyAnna Fali QUALIFIED
Maisha O WhobreyBrazilBernardo Dominic PROPOSAL
Antonio K BowleyCanadaElwin Sharvill NEW
James M NestleJapanIvan Magalhaes PROPOSAL
Jennifer Y WhobreyAustraliaXuxue Feng PROPOSAL
Kaitlin E VocelkaBrazilIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Wickens D IturbideItalyElwin Sharvill RENEWAL
Emily V DoeJapanBernardo Dominic UNQUALIFIED
Darci N CaldareraGermanyAsiya Javayant PROPOSAL
Sinclair Y RoysterBrazilOnyama Limba QUALIFIED
Mujtaba Z PoquetteArgentinaOnyama Limba PROPOSAL
Octavia U MorascaAustraliaXuxue Feng NEW
David M SergiFranceElwin Sharvill NEW
Clifford A AmigonAustraliaStephen Shaw NEW
Isabel Q FigeroaSpainXuxue Feng NEGOTIATION
Johnson P MacleadJapanIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci J SlusarskiGermany2026-07-04Commercial Press NEGOTIATION59Anna Fali
1001Octavia M KuskoItaly2026-07-07Printing Dimensions RENEWAL95Elwin Sharvill
1002Arvin B MarrierCanada2026-07-02Commercial Press RENEWAL94Amy Elsner
1003Kaitlin D DarakjyJapan2026-07-23Truhlar And Truhlar Attys NEW12Anna Fali
1004Salvatore V StockhamJapan2026-07-16Feiner Bros NEGOTIATION24Anna Fali
1005Stacey Q DilliardSpain2026-07-09Printing Dimensions NEW50Elwin Sharvill
1006Francesco L TollnerRussia2026-07-11Printing Dimensions NEW20Onyama Limba
1007Claire S RoysterBrazil2026-07-22King, Christopher A Esq PROPOSAL82Amy Elsner
1008Aruna F BriddickGermany2026-07-11Benton, John B Jr NEW52Ioni Bowcher
1009Costa M NickaJapan2026-07-20Dorl, James J Esq NEGOTIATION78Stephen Shaw
1010Rodrigues R VocelkaSpain2026-07-18Dorl, James J Esq RENEWAL98Ivan Magalhaes
1011Costa A BriddickUnited Kingdom2026-07-16Printing Dimensions QUALIFIED8Ioni Bowcher
1012Izzy F MaletUnited Kingdom2026-07-21Rangoni Of Florence QUALIFIED0Bernardo Dominic
1013Adams X KuskoCanada2026-07-03Chapman, Ross E Esq UNQUALIFIED26Anna Fali
1014Greenwood U StockhamGermany2026-07-24Feiner Bros PROPOSAL20Onyama Limba
1015Izzy H SergiItaly2026-07-24Chanay, Jeffrey A Esq PROPOSAL54Onyama Limba
1016Ivar F OldroydGermany2026-06-30Feiner Bros NEGOTIATION95Ivan Magalhaes
1017Aditya T FerenczGermany2026-07-12Chapman, Ross E Esq RENEWAL67Stephen Shaw
1018Salvatore Y GarufiAustralia2026-07-10Feltz Printing Service NEGOTIATION65Xuxue Feng
1019Juan A DoeItaly2026-06-26Morlong Associates PROPOSAL90Bernardo Dominic
1020Stacey C TollnerSpain2026-07-05Chemel, James L Cpa QUALIFIED8Onyama Limba
1021Kaitlin C FollerJapan2026-07-11Rousseaux, Michael Esq QUALIFIED53Asiya Javayant
1022Johnson M WieserSpain2026-07-03Morlong Associates QUALIFIED53Elwin Sharvill
1023Silvio B StensethUnited Kingdom2026-07-13Chemel, James L Cpa PROPOSAL52Stephen Shaw
1024Mayumi D KuskoGermany2026-07-08Dorl, James J Esq UNQUALIFIED65Anna Fali
1025Johnson H GillianItaly2026-07-12Chemel, James L Cpa NEGOTIATION97Xuxue Feng
1026Murillo C WhobreyRussia2026-07-20Dorl, James J Esq NEGOTIATION24Stephen Shaw
1027Jennifer Y SergiFrance2026-07-15Commercial Press QUALIFIED56Xuxue Feng
1028Morrow N SaylorsUnited Kingdom2026-07-01Commercial Press PROPOSAL73Bernardo Dominic
1029Munro K AlbaresAustralia2026-07-03Chemel, James L Cpa RENEWAL70Asiya Javayant
1030Aditya B WieserBrazil2026-06-28Dorl, James J Esq UNQUALIFIED39Elwin Sharvill
1031Maisha Q StensethAustralia2026-07-09Feiner Bros NEW81Anna Fali
1032Aruna T VocelkaGermany2026-07-01Chanay, Jeffrey A Esq NEW25Ioni Bowcher
1033Aditya N RimBrazil2026-07-21Printing Dimensions NEW78Ioni Bowcher
1034Kaitlin B AmigonCanada2026-07-23Benton, John B Jr NEW52Asiya Javayant
1035Octavia O SlusarskiJapan2026-07-09King, Christopher A Esq RENEWAL39Elwin Sharvill
1036Mayumi Q WhobreyUnited Kingdom2026-07-25Feiner Bros RENEWAL54Ivan Magalhaes
1037Alejandro L FollerRussia2026-07-02Truhlar And Truhlar Attys NEGOTIATION68Elwin Sharvill
1038Leon E NickaFrance2026-06-29Benton, John B Jr PROPOSAL28Ioni Bowcher
1039Kaitlin G StensethBrazil2026-06-28Dorl, James J Esq UNQUALIFIED29Onyama Limba
1040Jeanfrancois F PaprockiAustralia2026-07-05Rousseaux, Michael Esq NEGOTIATION52Asiya Javayant
1041Rodrigues B WaycottCanada2026-07-16Feiner Bros NEGOTIATION64Anna Fali
1042Arvin G GillianRussia2026-07-12Chemel, James L Cpa NEGOTIATION78Elwin Sharvill
1043Clifford Y AlbaresUnited Kingdom2026-07-15Feiner Bros UNQUALIFIED17Onyama Limba
1044Jones D AlbaresItaly2026-06-30Truhlar And Truhlar Attys NEW76Asiya Javayant
1045Silvio O GillianArgentina2026-07-21Commercial Press PROPOSAL36Onyama Limba
1046Smith E NestleBrazil2026-07-09Chapman, Ross E Esq QUALIFIED8Elwin Sharvill
1047Izzy I SchemmerCanada2026-07-12Commercial Press NEW32Asiya Javayant
1048Jefferson L CaudyIndia2026-07-24Chapman, Ross E Esq PROPOSAL79Bernardo Dominic
1049Claire N KuskoIndia2026-07-07Truhlar And Truhlar Attys UNQUALIFIED41Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Kadeem L PoquetteSpainIoni Bowcher UNQUALIFIED
Aruna X MorascaSpainStephen Shaw UNQUALIFIED
Kadeem Z CampainItalyXuxue Feng PROPOSAL
Rodrigues W SaylorsAustraliaStephen Shaw NEW
Aruna O CaudyFranceAsiya Javayant PROPOSAL
Munro E FerenczRussiaAnna Fali NEGOTIATION
Alejandro Z WieserSpainIvan Magalhaes RENEWAL
Jefferson K WieserArgentinaStephen Shaw PROPOSAL
Emily J SchemmerJapanBernardo Dominic NEW
Morrow B RutaArgentinaElwin Sharvill PROPOSAL
Ashley Z StockhamItalyIoni Bowcher UNQUALIFIED
Aditya G WhobreyJapanIvan Magalhaes UNQUALIFIED
Ricardo S DarakjyBrazilOnyama Limba PROPOSAL
Claire E TollnerItalyXuxue Feng UNQUALIFIED
Kadeem B DilliardBrazilOnyama Limba NEGOTIATION
Johnson L SchemmerItalyStephen Shaw NEW
Nicolas K ButtRussiaAmy Elsner PROPOSAL
Maisha A CaldareraJapanXuxue Feng NEGOTIATION
Jennifer E NickaArgentinaOnyama Limba NEGOTIATION
Misaki T StensethUnited KingdomStephen Shaw NEGOTIATION
Arvin A BowleyUnited KingdomIvan Magalhaes RENEWAL
Johnson Z MorascaItalyIvan Magalhaes UNQUALIFIED
Wickens T VocelkaGermanyAsiya Javayant QUALIFIED
Jefferson A IturbideCanadaElwin Sharvill RENEWAL
Alejandro B NestleSpainBernardo Dominic NEW
Ricardo N CaldareraSpainIvan Magalhaes UNQUALIFIED
Munro L BologniaItalyElwin Sharvill NEGOTIATION
Adams U CampainBrazilAnna Fali NEGOTIATION
Emily I WaycottCanadaIoni Bowcher PROPOSAL
Clifford K KolmetzJapanAsiya Javayant PROPOSAL
Ricardo T NickaCanadaAnna Fali NEGOTIATION
Arvin G NickaIndiaXuxue Feng NEGOTIATION
Wickens U PaprockiArgentinaAmy Elsner UNQUALIFIED
Darci G NestleArgentinaElwin Sharvill NEGOTIATION
Julie K IturbideFranceStephen Shaw QUALIFIED
Adams M KuskoFranceStephen Shaw QUALIFIED
Francesco A BowleyIndiaElwin Sharvill UNQUALIFIED
Deepesh U RimItalyAsiya Javayant NEW
Maisha Y BowleyCanadaStephen Shaw QUALIFIED
Misaki X TollnerGermanyAmy Elsner UNQUALIFIED
Ricardo X SergiArgentinaAmy Elsner NEW
Costa D VocelkaBrazilStephen Shaw UNQUALIFIED
Aruna K GillianItalyIoni Bowcher RENEWAL
Faith Q BriddickItalyElwin Sharvill QUALIFIED
Misaki L IturbideJapanAnna Fali NEW
Cody A CaudyUnited KingdomAsiya Javayant PROPOSAL
Leja I DarakjyCanadaOnyama Limba PROPOSAL
Nicolas U DarakjyAustraliaIoni Bowcher NEGOTIATION
Wickens U FigeroaArgentinaIoni Bowcher QUALIFIED
Aika N RutaAustraliaAmy Elsner QUALIFIED
Frozen Columns
Name
Jefferson Y Venere
Emily Z Tollner
Wickens R Nestle
Alejandro N Perin
Jeanfrancois R Poquette
Ricardo V Ferencz
Ricardo L Nestle
Jones I Wieser
Jennifer F Royster
Antonio K Ferencz
Izzy B Foller
Leon X Kolmetz
Ashley Q Chui
Wickens P Wieser
Ricardo G Gillian
Mayumi W Vocelka
Julie U Royster
Ivar V Amigon
Leon R Ferencz
Ricardo K Rulapaugh
Faith U Kolmetz
Sinclair M Nicka
Jeanfrancois O Iturbide
Nicolas J Kusko
Morrow R Iturbide
Costa V Whobrey
Chavez Y Malet
Ashley Q Morasca
Aika X Venere
Claire B Darakjy
Antonio O Doe
Antonio S Amigon
Mayumi B Ferencz
Aditya S Ostrosky
Ivar F Malet
Julie D Sergi
Murillo Z Whobrey
Isabel O Stenseth
Maisha F Albares
Mujtaba P Foller
Alejandro B Gaucho
Aika B Waycott
Emily Y Figeroa
Octavia Y Stockham
Aditya Z Flosi
Octavia K Oldroyd
Mujtaba L Ostrosky
Alejandro W Maclead
Octavia T Saylors
Kaitlin V Glick
IdCountryDate
1000India2026-06-28
1001Russia2026-06-30
1002United Kingdom2026-06-29
1003Spain2026-07-01
1004Italy2026-07-02
1005Australia2026-06-29
1006Italy2026-07-17
1007Canada2026-07-23
1008Australia2026-07-19
1009Canada2026-07-01
1010Canada2026-07-18
1011Australia2026-07-23
1012Brazil2026-06-29
1013France2026-07-10
1014Australia2026-07-09
1015Russia2026-07-15
1016Canada2026-07-06
1017United Kingdom2026-07-20
1018Australia2026-06-30
1019Japan2026-07-25
1020Germany2026-07-09
1021Italy2026-06-28
1022France2026-07-05
1023Spain2026-07-03
1024Australia2026-07-20
1025Argentina2026-07-06
1026Spain2026-07-22
1027Spain2026-07-05
1028Brazil2026-07-24
1029Australia2026-07-23
1030France2026-07-09
1031Germany2026-07-16
1032Canada2026-07-21
1033Australia2026-07-11
1034Brazil2026-07-23
1035Argentina2026-07-10
1036Russia2026-07-10
1037Italy2026-07-14
1038Australia2026-07-19
1039Italy2026-06-28
1040India2026-07-17
1041Argentina2026-07-22
1042Canada2026-06-30
1043Germany2026-07-07
1044United Kingdom2026-07-02
1045Argentina2026-07-19
1046Brazil2026-06-29
1047Italy2026-07-23
1048Australia2026-07-06
1049Argentina2026-07-01

On-Demand Data

NameIdCountryDate
Leja P Ruta1000Russia2026-06-26
David N Bolognia1001United Kingdom2026-06-28
Johnson T Doe1002Argentina2026-07-18
Alejandro F Schemmer1003Canada2026-07-04
Salvatore K Perin1004Italy2026-07-04
Wickens S Bowley1005Brazil2026-07-15
Misaki Y Kolmetz1006Italy2026-07-17
Faith U Stockham1007Germany2026-07-18
Kaitlin N Malet1008Russia2026-07-15
Chavez E Kusko1009Argentina2026-07-10
Chavez S Caudy1010Germany2026-07-22
Faith W Figeroa1011Japan2026-07-24
Claire Q Briddick1012Russia2026-07-01
Jeanfrancois Z Oldroyd1013India2026-07-01
Aika P Caldarera1014Argentina2026-07-20
Rodrigues Y Perin1015Russia2026-07-20
Mayumi U Briddick1016Japan2026-07-16
Jeanfrancois G Chui1017India2026-06-29
Deepesh O Shinko1018India2026-07-17
Julie G Briddick1019Brazil2026-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow A AmigonAustraliaOnyama Limba UNQUALIFIED
Rodrigues B ButtCanadaAmy Elsner UNQUALIFIED
Stacey Y MaletIndiaOnyama Limba QUALIFIED
Smith F BriddickRussiaAmy Elsner PROPOSAL
Leon S FlosiIndiaXuxue Feng UNQUALIFIED
Jeanfrancois R SaylorsUnited KingdomAmy Elsner RENEWAL
Morrow Y RoysterFranceBernardo Dominic NEGOTIATION
Darci X FollerUnited KingdomBernardo Dominic NEW
James L DoeAustraliaIvan Magalhaes NEW
Maisha I FollerItalyBernardo Dominic QUALIFIED
Emily J FollerJapanAsiya Javayant PROPOSAL
Aika A FollerSpainOnyama Limba NEGOTIATION
Misaki Y CaldareraSpainAnna Fali QUALIFIED
Emily P GlickGermanyBernardo Dominic PROPOSAL
Antonio C ShinkoGermanyStephen Shaw PROPOSAL
Johnson D FigeroaItalyOnyama Limba QUALIFIED
Sinclair Y DilliardRussiaElwin Sharvill NEGOTIATION
Juan Z SlusarskiRussiaXuxue Feng NEW
Munro A CampainIndiaAmy Elsner UNQUALIFIED
Claire X ButtIndiaIvan Magalhaes UNQUALIFIED
Juan P ShinkoBrazilAmy Elsner UNQUALIFIED
Aditya I KuskoArgentinaAnna Fali PROPOSAL
Tony L MaletUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba J PaprockiRussiaAsiya Javayant RENEWAL
Juan K RoysterJapanBernardo Dominic NEGOTIATION
James T AlbaresJapanOnyama Limba RENEWAL
Stacey M FigeroaAustraliaAsiya Javayant UNQUALIFIED
Arvin Z FollerIndiaAnna Fali QUALIFIED
Juan H CampainUnited KingdomAnna Fali NEGOTIATION
Kadeem D SchemmerIndiaOnyama Limba UNQUALIFIED
Mayumi E MaletJapanStephen Shaw RENEWAL
Murillo R StockhamRussiaStephen Shaw QUALIFIED
Leon E FigeroaBrazilAmy Elsner NEW
Costa E TollnerJapanElwin Sharvill QUALIFIED
Chavez P OldroydBrazilAsiya Javayant QUALIFIED
Ricardo O SaylorsCanadaBernardo Dominic QUALIFIED
Emily J PaprockiCanadaIvan Magalhaes UNQUALIFIED
Ricardo S FigeroaFranceAmy Elsner PROPOSAL
Leon R WaycottCanadaAnna Fali PROPOSAL
Kadeem H CaldareraIndiaBernardo Dominic QUALIFIED

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