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
Alejandro E StensethJapanIvan Magalhaes UNQUALIFIED
Ashley R OstroskyArgentinaXuxue Feng NEGOTIATION
Isabel T MaletSpainIvan Magalhaes RENEWAL
Isabel A MarrierIndiaIvan Magalhaes NEW
Wickens P GauchoJapanAsiya Javayant NEGOTIATION
Emily T ButtRussiaAmy Elsner RENEWAL
Smith N SchemmerItalyBernardo Dominic UNQUALIFIED
David Q GillianGermanyIoni Bowcher PROPOSAL
Chavez Z KolmetzJapanAsiya Javayant NEW
Nicolas C MarrierFranceAnna Fali NEGOTIATION
Rodrigues U DoeJapanAmy Elsner RENEWAL
Isabel V RoysterCanadaIoni Bowcher NEGOTIATION
Ivar V MacleadArgentinaBernardo Dominic QUALIFIED
Antonio X WieserCanadaIvan Magalhaes PROPOSAL
Munro F FlosiRussiaAmy Elsner RENEWAL
Emily D MaletIndiaAnna Fali UNQUALIFIED
Sinclair T StensethBrazilOnyama Limba UNQUALIFIED
Aditya A CaudyArgentinaAmy Elsner UNQUALIFIED
Ivar B SergiBrazilBernardo Dominic NEGOTIATION
Jeanfrancois F ShinkoArgentinaBernardo Dominic QUALIFIED
Isabel M WhobreyBrazilIoni Bowcher QUALIFIED
Maria E SaylorsBrazilIoni Bowcher QUALIFIED
Francesco Y IturbideFranceIvan Magalhaes QUALIFIED
Alejandro E NestleCanadaAmy Elsner NEGOTIATION
Tony V WieserIndiaXuxue Feng UNQUALIFIED
Wickens A GarufiJapanIoni Bowcher UNQUALIFIED
Smith X OldroydGermanyIvan Magalhaes PROPOSAL
Jeanfrancois X RimCanadaStephen Shaw RENEWAL
Rodrigues Q FigeroaIndiaElwin Sharvill NEW
Claire B PaprockiAustraliaOnyama Limba NEGOTIATION
Francesco S GarufiFranceOnyama Limba NEW
Ivar C WhobreyGermanyXuxue Feng NEW
Aika V FlosiRussiaBernardo Dominic RENEWAL
Julie J SlusarskiAustraliaAnna Fali UNQUALIFIED
Silvio Q PerinIndiaXuxue Feng NEGOTIATION
Alejandro Y KuskoUnited KingdomOnyama Limba RENEWAL
Isabel Y WieserCanadaAsiya Javayant NEW
Deepesh Z AlbaresBrazilStephen Shaw RENEWAL
Alejandro T TollnerIndiaStephen Shaw PROPOSAL
Maria J FerenczCanadaElwin Sharvill NEGOTIATION
Salvatore G VocelkaFranceElwin Sharvill NEGOTIATION
Stacey Q SaylorsSpainIoni Bowcher NEGOTIATION
Izzy U GauchoItalyBernardo Dominic NEW
Cody C RutaFranceStephen Shaw UNQUALIFIED
Silvio H FigeroaItalyIoni Bowcher NEGOTIATION
Aruna Q PerinJapanAsiya Javayant UNQUALIFIED
Maria T RimItalyAsiya Javayant RENEWAL
Aditya H VenereIndiaAmy Elsner NEW
Costa Q FerenczCanadaAsiya Javayant UNQUALIFIED
Isabel A ButtGermanyAsiya Javayant NEW
Horizontal
NameCountryRepresentativeStatus
Arvin U SaylorsRussiaAmy Elsner QUALIFIED
Silvio O GauchoCanadaOnyama Limba PROPOSAL
Jeanfrancois Z NickaArgentinaOnyama Limba NEGOTIATION
Izzy K FerenczUnited KingdomOnyama Limba UNQUALIFIED
Deepesh B MarrierRussiaElwin Sharvill RENEWAL
Mujtaba M SergiSpainIvan Magalhaes QUALIFIED
Francesco D NickaSpainXuxue Feng QUALIFIED
Jennifer G NestleRussiaBernardo Dominic UNQUALIFIED
Francesco E PaprockiAustraliaIoni Bowcher PROPOSAL
Ricardo G StensethGermanyBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood V GarufiSpain2026-08-16Buckley Miller Wright PROPOSAL88Bernardo Dominic
1001Clifford H GlickCanada2026-08-23Dorl, James J Esq UNQUALIFIED74Ivan Magalhaes
1002Julie S DarakjyJapan2026-08-29Feiner Bros PROPOSAL89Amy Elsner
1003Julie R IturbideSpain2026-08-07Feiner Bros RENEWAL38Xuxue Feng
1004Faith K TollnerIndia2026-08-12Benton, John B Jr UNQUALIFIED88Xuxue Feng
1005Alejandro I WaycottIndia2026-08-22King, Christopher A Esq RENEWAL79Xuxue Feng
1006Sinclair T DoeJapan2026-08-15Truhlar And Truhlar Attys PROPOSAL37Ioni Bowcher
1007Antonio G IturbideFrance2026-08-13Rangoni Of Florence NEW53Ivan Magalhaes
1008Ashley Y MorascaRussia2026-08-02Commercial Press NEGOTIATION12Anna Fali
1009Kadeem H DoeJapan2026-08-25Benton, John B Jr PROPOSAL27Bernardo Dominic
1010Stacey Z GillianAustralia2026-08-02Commercial Press QUALIFIED62Stephen Shaw
1011Sinclair X TollnerRussia2026-08-11Commercial Press RENEWAL22Xuxue Feng
1012Octavia B SaylorsCanada2026-08-09Feltz Printing Service QUALIFIED3Onyama Limba
1013Jennifer K VenereFrance2026-08-18Rousseaux, Michael Esq UNQUALIFIED56Elwin Sharvill
1014Antonio J StensethIndia2026-08-12Buckley Miller Wright NEW98Asiya Javayant
1015Johnson T KuskoRussia2026-08-29Rangoni Of Florence QUALIFIED88Xuxue Feng
1016David C KolmetzRussia2026-08-14Benton, John B Jr QUALIFIED21Xuxue Feng
1017Nicolas L SchemmerGermany2026-08-14Morlong Associates NEW81Onyama Limba
1018Jeanfrancois P GillianUnited Kingdom2026-08-26Chemel, James L Cpa PROPOSAL8Ivan Magalhaes
1019Murillo W SchemmerArgentina2026-08-19Feiner Bros QUALIFIED67Ivan Magalhaes
1020Alejandro I WhobreyGermany2026-07-31Chemel, James L Cpa QUALIFIED12Ioni Bowcher
1021Silvio S FollerUnited Kingdom2026-08-12Feiner Bros NEGOTIATION56Xuxue Feng
1022Tony J RutaItaly2026-08-21Printing Dimensions QUALIFIED4Asiya Javayant
1023Jones I GauchoGermany2026-08-02Chapman, Ross E Esq NEGOTIATION95Ivan Magalhaes
1024Greenwood J ChuiArgentina2026-07-31Buckley Miller Wright QUALIFIED63Elwin Sharvill
1025Jones G NickaSpain2026-08-29Buckley Miller Wright NEW28Amy Elsner
1026Munro Z CampainUnited Kingdom2026-08-24Truhlar And Truhlar Attys NEGOTIATION81Onyama Limba
1027Rodrigues V RutaUnited Kingdom2026-08-14Chanay, Jeffrey A Esq NEGOTIATION78Anna Fali
1028Aditya U ShinkoUnited Kingdom2026-08-05Rousseaux, Michael Esq NEGOTIATION61Bernardo Dominic
1029Ashley H CampainArgentina2026-08-03Feiner Bros RENEWAL77Xuxue Feng
1030Morrow H TollnerAustralia2026-07-31Dorl, James J Esq NEGOTIATION49Amy Elsner
1031Jefferson U RimItaly2026-08-15Dorl, James J Esq QUALIFIED82Anna Fali
1032Isabel Q ButtRussia2026-07-31Morlong Associates QUALIFIED32Bernardo Dominic
1033Kadeem M OstroskyRussia2026-07-31Chemel, James L Cpa QUALIFIED80Elwin Sharvill
1034Morrow P PerinCanada2026-08-19Rousseaux, Michael Esq NEGOTIATION5Elwin Sharvill
1035Izzy O CaudyUnited Kingdom2026-08-05Buckley Miller Wright PROPOSAL13Bernardo Dominic
1036Darci H PaprockiIndia2026-08-17Morlong Associates UNQUALIFIED82Anna Fali
1037Claire G PoquetteIndia2026-08-23Feiner Bros PROPOSAL64Ivan Magalhaes
1038Aruna W InouyeArgentina2026-08-09Benton, John B Jr QUALIFIED33Bernardo Dominic
1039Julie V IturbideUnited Kingdom2026-08-07Feltz Printing Service NEGOTIATION1Amy Elsner
1040Ivar Q NickaGermany2026-08-11Feltz Printing Service NEW59Elwin Sharvill
1041Mujtaba C FerenczUnited Kingdom2026-08-18Buckley Miller Wright RENEWAL49Xuxue Feng
1042Darci W IturbideGermany2026-08-10Feltz Printing Service UNQUALIFIED16Asiya Javayant
1043James C ButtUnited Kingdom2026-08-25Feltz Printing Service QUALIFIED9Asiya Javayant
1044Morrow T FigeroaFrance2026-08-28Commercial Press UNQUALIFIED56Ioni Bowcher
1045Arvin Z StensethFrance2026-08-08Benton, John B Jr NEW59Stephen Shaw
1046Alejandro F GlickAustralia2026-08-04Rousseaux, Michael Esq NEGOTIATION97Ivan Magalhaes
1047Costa J FigeroaFrance2026-08-11Printing Dimensions PROPOSAL22Ivan Magalhaes
1048Nicolas W GlickIndia2026-07-31Buckley Miller Wright UNQUALIFIED11Ioni Bowcher
1049Deepesh M GillianArgentina2026-08-27Chanay, Jeffrey A Esq QUALIFIED30Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aditya P BriddickGermanyAmy Elsner QUALIFIED
Aika B FigeroaIndiaIoni Bowcher QUALIFIED
James J PaprockiBrazilIoni Bowcher UNQUALIFIED
Isabel X CaudyFranceElwin Sharvill UNQUALIFIED
Ricardo X RutaIndiaIoni Bowcher RENEWAL
Kaitlin Z NestleGermanyAmy Elsner NEW
Mayumi W DilliardItalyAnna Fali RENEWAL
Sinclair T KolmetzBrazilAnna Fali NEGOTIATION
Antonio D OstroskyCanadaBernardo Dominic RENEWAL
David P FerenczSpainAnna Fali PROPOSAL
Johnson K ButtBrazilIoni Bowcher NEGOTIATION
Mayumi F RulapaughItalyAmy Elsner NEGOTIATION
Aditya N FerenczGermanyXuxue Feng NEW
Aika N MorascaItalyOnyama Limba NEGOTIATION
Misaki B SchemmerCanadaBernardo Dominic UNQUALIFIED
Antonio X CampainRussiaAmy Elsner QUALIFIED
Maria P ShinkoItalyAsiya Javayant UNQUALIFIED
Costa N PaprockiSpainAnna Fali UNQUALIFIED
Ashley F StockhamBrazilAsiya Javayant UNQUALIFIED
Jeanfrancois U PerinArgentinaOnyama Limba NEGOTIATION
Salvatore M WaycottIndiaIoni Bowcher PROPOSAL
Isabel I TollnerArgentinaBernardo Dominic NEGOTIATION
Murillo Y GillianCanadaAsiya Javayant PROPOSAL
Leja D IturbideRussiaAmy Elsner UNQUALIFIED
Jennifer H DarakjyGermanyXuxue Feng PROPOSAL
Mayumi K PaprockiGermanyStephen Shaw RENEWAL
Stacey Z NestleAustraliaElwin Sharvill NEW
Emily I PoquetteSpainIoni Bowcher RENEWAL
Jefferson J CampainJapanIoni Bowcher PROPOSAL
Rodrigues V ShinkoFranceXuxue Feng NEW
Rodrigues V StensethJapanOnyama Limba PROPOSAL
Wickens H FlosiBrazilBernardo Dominic NEW
Francesco J TollnerSpainAsiya Javayant PROPOSAL
David N MorascaJapanXuxue Feng UNQUALIFIED
Chavez G FigeroaRussiaStephen Shaw NEGOTIATION
Kaitlin S VocelkaSpainAmy Elsner NEGOTIATION
Aditya G MaletCanadaElwin Sharvill RENEWAL
Cody U GauchoCanadaIvan Magalhaes RENEWAL
Costa Q WhobreyUnited KingdomIvan Magalhaes NEW
Sinclair P StensethBrazilStephen Shaw PROPOSAL
Maisha V AmigonItalyIoni Bowcher NEGOTIATION
Morrow X DarakjyArgentinaAmy Elsner NEW
Cody Y ChuiArgentinaOnyama Limba RENEWAL
Rodrigues M BologniaIndiaXuxue Feng NEW
Faith Y WhobreyArgentinaXuxue Feng QUALIFIED
Ricardo G ButtArgentinaAsiya Javayant NEW
Aruna X FigeroaSpainAnna Fali QUALIFIED
Nicolas A BowleyItalyAnna Fali QUALIFIED
Leon S RulapaughArgentinaAmy Elsner RENEWAL
Murillo F WhobreyItalyXuxue Feng NEW
Frozen Columns
Name
Aika T Oldroyd
Cody A Caldarera
Silvio M Paprocki
Deepesh L Stenseth
Juan Q Vocelka
Mujtaba V Campain
Maisha N Stockham
Ashley A Venere
Francesco I Waycott
Costa E Malet
Jones Q Bowley
Aruna D Glick
Julie J Ostrosky
Julie S Inouye
Jeanfrancois G Sergi
Jeanfrancois H Vocelka
Alejandro A Paprocki
Aika Z Morasca
Aika I Albares
Stacey I Caldarera
Julie Y Doe
Mayumi X Wieser
Octavia Z Bowley
Wickens K Bolognia
Arvin X Ostrosky
Adams F Slusarski
Adams M Glick
Silvio S Gaucho
Murillo P Wieser
Emily A Perin
Aika G Venere
Stacey P Malet
Emily U Wieser
Tony K Amigon
Maria J Morasca
Jennifer N Flosi
Aruna F Sergi
Stacey Q Maclead
Leja M Whobrey
Aditya A Tollner
Sinclair Z Briddick
David N Schemmer
Aditya I Foller
Jennifer I Albares
Jones P Darakjy
Misaki A Caudy
Francesco Z Ruta
Leja S Figeroa
Claire H Morasca
Darci S Gillian
IdCountryDate
1000Argentina2026-08-17
1001Japan2026-08-19
1002Canada2026-08-01
1003Italy2026-08-04
1004France2026-08-24
1005United Kingdom2026-08-08
1006Russia2026-08-17
1007Germany2026-08-08
1008Canada2026-08-09
1009Australia2026-08-20
1010Brazil2026-08-26
1011France2026-08-01
1012France2026-08-19
1013Australia2026-08-14
1014Brazil2026-08-05
1015Italy2026-08-15
1016Brazil2026-07-31
1017Brazil2026-08-10
1018Australia2026-08-03
1019Australia2026-08-21
1020Australia2026-08-10
1021Australia2026-08-28
1022Germany2026-08-25
1023France2026-08-16
1024Japan2026-08-15
1025Italy2026-08-04
1026India2026-08-08
1027France2026-08-25
1028Germany2026-08-24
1029United Kingdom2026-08-14
1030Australia2026-08-13
1031United Kingdom2026-08-11
1032India2026-08-25
1033United Kingdom2026-08-19
1034Spain2026-08-23
1035India2026-08-15
1036Australia2026-08-19
1037Japan2026-08-28
1038France2026-08-05
1039Brazil2026-08-04
1040Canada2026-08-16
1041Russia2026-08-22
1042Spain2026-08-12
1043Australia2026-08-19
1044Spain2026-07-31
1045Italy2026-08-01
1046Germany2026-08-27
1047India2026-08-24
1048Australia2026-08-17
1049Australia2026-08-22

On-Demand Data

NameIdCountryDate
Claire Q Ferencz1000Germany2026-08-24
Maisha Z Amigon1001India2026-08-23
Aruna W Ruta1002Italy2026-08-05
Isabel D Darakjy1003Spain2026-08-01
Claire L Oldroyd1004Australia2026-08-10
Octavia J Ostrosky1005Brazil2026-08-17
Leja N Foller1006Brazil2026-08-01
Alejandro X Darakjy1007India2026-08-21
Ivar A Garufi1008Argentina2026-08-16
Sinclair L Chui1009Russia2026-08-25
Kaitlin V Whobrey1010Australia2026-08-07
Greenwood M Darakjy1011Japan2026-08-27
Johnson L Whobrey1012United Kingdom2026-08-26
David B Nicka1013France2026-08-04
Greenwood P Iturbide1014Japan2026-07-31
Aika D Darakjy1015Italy2026-08-12
Kaitlin G Maclead1016Brazil2026-08-01
Deepesh I Maclead1017France2026-08-26
Jefferson J Gillian1018Brazil2026-08-13
Faith R Doe1019Argentina2026-08-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo U RutaArgentinaOnyama Limba RENEWAL
Salvatore G RulapaughRussiaAnna Fali QUALIFIED
Jefferson W MacleadItalyOnyama Limba QUALIFIED
Jefferson G OstroskyAustraliaXuxue Feng NEGOTIATION
Jeanfrancois H SaylorsRussiaXuxue Feng QUALIFIED
Stacey S RutaJapanXuxue Feng UNQUALIFIED
Leja Y DoeItalyBernardo Dominic QUALIFIED
Jennifer R FigeroaSpainAmy Elsner NEGOTIATION
Jennifer B IturbideItalyIvan Magalhaes PROPOSAL
Julie D IturbideGermanyAsiya Javayant QUALIFIED
Kaitlin B AlbaresSpainAsiya Javayant PROPOSAL
Adams Q BriddickItalyAsiya Javayant NEGOTIATION
Emily C PaprockiFranceIoni Bowcher QUALIFIED
David Q FerenczCanadaOnyama Limba QUALIFIED
Jefferson B BriddickArgentinaAsiya Javayant PROPOSAL
Smith C PoquetteAustraliaOnyama Limba NEW
Murillo O OstroskyUnited KingdomStephen Shaw NEGOTIATION
Alejandro K SlusarskiJapanElwin Sharvill NEGOTIATION
Julie G AmigonAustraliaXuxue Feng PROPOSAL
Kadeem J NestleAustraliaStephen Shaw QUALIFIED
Rodrigues C RoysterArgentinaAnna Fali RENEWAL
Ivar T AmigonBrazilStephen Shaw PROPOSAL
Costa I BriddickItalyIvan Magalhaes PROPOSAL
Ashley F MarrierBrazilIoni Bowcher RENEWAL
Rodrigues U GillianFranceElwin Sharvill QUALIFIED
Aditya R GauchoGermanyIvan Magalhaes UNQUALIFIED
Jeanfrancois D MaletGermanyOnyama Limba NEGOTIATION
Alejandro C StensethBrazilXuxue Feng NEW
Leja U BowleyItalyStephen Shaw NEW
Ivar Y CampainRussiaAnna Fali PROPOSAL
Jennifer Z ChuiFranceElwin Sharvill QUALIFIED
Darci F SergiJapanIoni Bowcher NEW
Tony H SaylorsRussiaAmy Elsner UNQUALIFIED
Salvatore H CaudyGermanyAmy Elsner RENEWAL
Faith H SchemmerJapanBernardo Dominic QUALIFIED
Aditya C FigeroaRussiaStephen Shaw UNQUALIFIED
Leja S KuskoCanadaIvan Magalhaes UNQUALIFIED
Jeanfrancois L RutaIndiaIvan Magalhaes NEW
Kaitlin E DilliardSpainElwin Sharvill QUALIFIED
Kaitlin U StensethBrazilElwin Sharvill 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>