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
Morrow C IturbideRussiaOnyama Limba PROPOSAL
Mayumi X OstroskyUnited KingdomStephen Shaw NEW
Mujtaba A BriddickUnited KingdomAmy Elsner NEW
Mujtaba Z KolmetzIndiaAmy Elsner RENEWAL
Salvatore O PaprockiItalyAmy Elsner PROPOSAL
Kadeem G SaylorsAustraliaOnyama Limba QUALIFIED
Emily J GauchoIndiaAsiya Javayant QUALIFIED
Aditya X PaprockiBrazilElwin Sharvill RENEWAL
Tony D AlbaresIndiaIoni Bowcher UNQUALIFIED
Nicolas X GauchoItalyBernardo Dominic NEGOTIATION
Murillo X DilliardBrazilBernardo Dominic RENEWAL
Antonio E CaldareraArgentinaStephen Shaw QUALIFIED
Aditya M MacleadUnited KingdomBernardo Dominic UNQUALIFIED
Antonio Z ButtIndiaBernardo Dominic NEGOTIATION
Jefferson D MacleadCanadaAmy Elsner PROPOSAL
Izzy S VocelkaArgentinaAnna Fali UNQUALIFIED
Kaitlin X InouyeUnited KingdomOnyama Limba UNQUALIFIED
Alejandro Y KuskoUnited KingdomAmy Elsner QUALIFIED
Maisha A AmigonFranceAsiya Javayant NEGOTIATION
Wickens V OstroskyRussiaIoni Bowcher PROPOSAL
Leon A WhobreyBrazilAnna Fali NEGOTIATION
Maria L NickaUnited KingdomBernardo Dominic PROPOSAL
Leon U InouyeCanadaBernardo Dominic PROPOSAL
Emily T BowleyRussiaIoni Bowcher NEW
Stacey N OldroydJapanAnna Fali QUALIFIED
Stacey W MarrierAustraliaAmy Elsner NEW
Ashley U SlusarskiIndiaOnyama Limba PROPOSAL
Chavez J FerenczArgentinaBernardo Dominic PROPOSAL
Sinclair C WhobreyUnited KingdomElwin Sharvill PROPOSAL
Tony D GlickUnited KingdomIoni Bowcher UNQUALIFIED
Mayumi X PerinSpainIoni Bowcher QUALIFIED
Maisha L PaprockiRussiaXuxue Feng UNQUALIFIED
Juan Q GarufiSpainOnyama Limba NEW
Izzy G KolmetzAustraliaAnna Fali UNQUALIFIED
Aruna K ButtGermanyIoni Bowcher NEGOTIATION
Munro Q FlosiArgentinaAmy Elsner QUALIFIED
Silvio T VenereBrazilIoni Bowcher NEGOTIATION
Jennifer Q FigeroaJapanOnyama Limba PROPOSAL
Wickens J GarufiRussiaIvan Magalhaes NEW
Tony A KolmetzItalyIoni Bowcher QUALIFIED
Misaki G OstroskyItalyAsiya Javayant NEGOTIATION
Emily X AlbaresJapanBernardo Dominic NEGOTIATION
Nicolas P PoquetteBrazilAsiya Javayant NEW
Juan B InouyeAustraliaStephen Shaw NEGOTIATION
Ricardo N RutaRussiaStephen Shaw QUALIFIED
Kadeem Z FerenczIndiaBernardo Dominic NEGOTIATION
Aruna A GillianFranceBernardo Dominic NEGOTIATION
Mayumi P ButtCanadaAsiya Javayant PROPOSAL
Faith A ShinkoFranceIoni Bowcher NEGOTIATION
Ivar C MaletIndiaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith X BowleyBrazilOnyama Limba UNQUALIFIED
Johnson E FollerItalyAmy Elsner PROPOSAL
Mujtaba Q ButtAustraliaIvan Magalhaes QUALIFIED
Ivar V VocelkaArgentinaAmy Elsner NEW
Kaitlin S PoquetteItalyStephen Shaw NEW
Jones R MaletCanadaOnyama Limba PROPOSAL
Leon D OldroydJapanIoni Bowcher PROPOSAL
Aditya T RutaRussiaElwin Sharvill NEW
Johnson A GlickAustraliaXuxue Feng PROPOSAL
Leon X SergiIndiaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens L IturbideIndia2026-06-22Truhlar And Truhlar Attys NEGOTIATION7Elwin Sharvill
1001James L WhobreyFrance2026-06-23Printing Dimensions NEGOTIATION7Xuxue Feng
1002Arvin W WieserGermany2026-07-02Commercial Press RENEWAL13Xuxue Feng
1003Mujtaba E AmigonItaly2026-07-08Chanay, Jeffrey A Esq RENEWAL10Xuxue Feng
1004Cody H SergiItaly2026-06-18Chapman, Ross E Esq UNQUALIFIED55Ivan Magalhaes
1005Munro H ButtFrance2026-06-25Feiner Bros NEGOTIATION45Bernardo Dominic
1006Nicolas L MarrierArgentina2026-06-24Feltz Printing Service PROPOSAL59Ivan Magalhaes
1007Aika C GarufiRussia2026-07-12Chanay, Jeffrey A Esq PROPOSAL98Onyama Limba
1008Jefferson M RulapaughIndia2026-07-14Chapman, Ross E Esq NEGOTIATION81Bernardo Dominic
1009Maria I GillianItaly2026-06-27Truhlar And Truhlar Attys RENEWAL0Bernardo Dominic
1010Kadeem A TollnerGermany2026-07-11Chemel, James L Cpa PROPOSAL49Ivan Magalhaes
1011Isabel Z MacleadCanada2026-07-13Morlong Associates QUALIFIED77Ioni Bowcher
1012Ivar B VenereRussia2026-07-08Dorl, James J Esq QUALIFIED43Anna Fali
1013Chavez A AmigonUnited Kingdom2026-06-29Benton, John B Jr PROPOSAL90Ivan Magalhaes
1014Maria A DarakjyItaly2026-06-28Truhlar And Truhlar Attys UNQUALIFIED25Ivan Magalhaes
1015Darci I InouyeCanada2026-06-20King, Christopher A Esq NEW69Bernardo Dominic
1016Ricardo K BologniaGermany2026-06-27Printing Dimensions UNQUALIFIED74Anna Fali
1017Aruna A RutaJapan2026-07-01Truhlar And Truhlar Attys UNQUALIFIED24Ivan Magalhaes
1018Costa O BowleyAustralia2026-06-18Dorl, James J Esq RENEWAL42Anna Fali
1019Kadeem W FerenczRussia2026-06-29Feiner Bros QUALIFIED86Anna Fali
1020Aruna M PoquetteUnited Kingdom2026-07-15Rangoni Of Florence QUALIFIED46Asiya Javayant
1021Costa D PaprockiRussia2026-06-19Truhlar And Truhlar Attys QUALIFIED24Amy Elsner
1022Sinclair Z RulapaughItaly2026-07-07Chanay, Jeffrey A Esq NEW25Bernardo Dominic
1023Rodrigues B MaletArgentina2026-06-18Feiner Bros RENEWAL0Stephen Shaw
1024Kaitlin W FlosiAustralia2026-07-03Feltz Printing Service QUALIFIED76Anna Fali
1025James K BowleySpain2026-06-26Dorl, James J Esq PROPOSAL64Stephen Shaw
1026Aditya N AmigonBrazil2026-07-16Chapman, Ross E Esq RENEWAL89Onyama Limba
1027Rodrigues Q CampainArgentina2026-06-20Morlong Associates NEW35Ioni Bowcher
1028Clifford F VenereSpain2026-07-04Commercial Press NEGOTIATION56Ioni Bowcher
1029Octavia Y PoquetteArgentina2026-06-23Commercial Press NEGOTIATION82Anna Fali
1030Francesco U GlickFrance2026-07-15Chanay, Jeffrey A Esq PROPOSAL93Stephen Shaw
1031Leja L IturbideFrance2026-07-04Chanay, Jeffrey A Esq UNQUALIFIED78Bernardo Dominic
1032Nicolas B CampainIndia2026-06-18Benton, John B Jr QUALIFIED93Amy Elsner
1033Izzy J KuskoUnited Kingdom2026-07-04Truhlar And Truhlar Attys NEW19Bernardo Dominic
1034Alejandro M AmigonRussia2026-06-22Buckley Miller Wright UNQUALIFIED26Stephen Shaw
1035Maisha J MaletRussia2026-07-10Printing Dimensions PROPOSAL71Ioni Bowcher
1036Mayumi J TollnerGermany2026-06-22Rousseaux, Michael Esq UNQUALIFIED53Anna Fali
1037Maisha X FigeroaCanada2026-07-08Benton, John B Jr UNQUALIFIED85Ioni Bowcher
1038Kaitlin D IturbideFrance2026-07-03Benton, John B Jr NEW70Ioni Bowcher
1039Julie R SaylorsFrance2026-06-19Benton, John B Jr RENEWAL12Ivan Magalhaes
1040Faith G SlusarskiFrance2026-06-21King, Christopher A Esq NEGOTIATION64Anna Fali
1041Murillo O DoeArgentina2026-07-14Benton, John B Jr QUALIFIED91Elwin Sharvill
1042Aruna L CampainCanada2026-06-18Chemel, James L Cpa NEW93Anna Fali
1043Murillo G CaldareraJapan2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED46Onyama Limba
1044Aika Q MaletArgentina2026-06-22King, Christopher A Esq NEGOTIATION85Onyama Limba
1045Aika C WaycottItaly2026-07-15Rangoni Of Florence PROPOSAL67Xuxue Feng
1046Misaki M FlosiRussia2026-07-09Truhlar And Truhlar Attys UNQUALIFIED36Onyama Limba
1047Ashley G RimGermany2026-06-24Chapman, Ross E Esq UNQUALIFIED10Stephen Shaw
1048Tony F MaletFrance2026-07-02Chanay, Jeffrey A Esq UNQUALIFIED78Xuxue Feng
1049Kadeem E VocelkaGermany2026-07-07Dorl, James J Esq NEGOTIATION27Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Chavez T WieserAustraliaBernardo Dominic UNQUALIFIED
Nicolas O TollnerUnited KingdomStephen Shaw NEGOTIATION
Julie R ShinkoRussiaAsiya Javayant NEGOTIATION
Stacey E NestleIndiaXuxue Feng QUALIFIED
Munro M MarrierUnited KingdomOnyama Limba UNQUALIFIED
Emily J PaprockiSpainBernardo Dominic PROPOSAL
Misaki R SlusarskiCanadaStephen Shaw QUALIFIED
Tony N TollnerFranceIoni Bowcher PROPOSAL
Ricardo N DarakjyBrazilAsiya Javayant RENEWAL
Jefferson J CaudyBrazilStephen Shaw NEW
Jeanfrancois R SergiGermanyOnyama Limba NEW
Leon N SlusarskiSpainOnyama Limba PROPOSAL
Mayumi W StensethGermanyAmy Elsner NEGOTIATION
Jones G NestleItalyAmy Elsner NEW
Jeanfrancois C ShinkoAustraliaStephen Shaw QUALIFIED
Jennifer O RoysterArgentinaIvan Magalhaes NEW
David L AlbaresItalyOnyama Limba PROPOSAL
Maria V InouyeAustraliaBernardo Dominic NEW
Munro R OstroskyGermanyElwin Sharvill NEW
David A SchemmerRussiaBernardo Dominic NEW
Kadeem N RutaCanadaXuxue Feng UNQUALIFIED
Smith U AlbaresJapanIvan Magalhaes NEGOTIATION
Clifford J OstroskyBrazilAmy Elsner UNQUALIFIED
Munro M FerenczArgentinaXuxue Feng PROPOSAL
Antonio F InouyeJapanOnyama Limba NEW
Cody L AlbaresFranceElwin Sharvill RENEWAL
Jefferson C DilliardCanadaBernardo Dominic NEGOTIATION
Stacey N WhobreyCanadaAmy Elsner PROPOSAL
Stacey L MarrierSpainBernardo Dominic UNQUALIFIED
Tony Y StensethIndiaStephen Shaw NEW
Octavia W MaletBrazilAmy Elsner UNQUALIFIED
Arvin J WaycottJapanXuxue Feng QUALIFIED
Aruna E SlusarskiCanadaElwin Sharvill PROPOSAL
Juan K FollerArgentinaStephen Shaw UNQUALIFIED
Jennifer H SchemmerAustraliaStephen Shaw UNQUALIFIED
Chavez O RulapaughBrazilXuxue Feng NEW
Juan E GlickBrazilXuxue Feng PROPOSAL
Darci L GillianSpainOnyama Limba RENEWAL
Jennifer W GarufiJapanAnna Fali PROPOSAL
Kadeem U StensethIndiaOnyama Limba UNQUALIFIED
Kaitlin A MacleadJapanIoni Bowcher UNQUALIFIED
Deepesh G NestleJapanIoni Bowcher NEW
Kaitlin U GauchoItalyOnyama Limba UNQUALIFIED
Ashley T CaudySpainAmy Elsner RENEWAL
Morrow P IturbideFranceIoni Bowcher PROPOSAL
Tony Q BologniaUnited KingdomAnna Fali QUALIFIED
Isabel B CaldareraRussiaAnna Fali NEW
Morrow O ShinkoItalyOnyama Limba NEW
David Z CaudyRussiaElwin Sharvill NEGOTIATION
Aruna D SlusarskiCanadaIoni Bowcher PROPOSAL
Frozen Columns
Name
Stacey O Garufi
Isabel K Glick
Arvin E Ostrosky
Aika N Rulapaugh
Misaki A Stenseth
Aruna T Nestle
Francesco W Oldroyd
Sinclair E Kolmetz
Aika N Nicka
Smith L Kusko
Morrow B Chui
Aditya S Campain
Leja G Nicka
Leon P Campain
Julie F Inouye
Mayumi Z Gillian
Leon X Flosi
Francesco A Foller
Leja X Dilliard
Kaitlin Q Saylors
David U Oldroyd
Juan C Doe
James X Kusko
Juan U Butt
Faith A Rulapaugh
Mujtaba W Campain
Maria B Ferencz
Rodrigues M Iturbide
Jeanfrancois F Ostrosky
Claire E Sergi
Antonio H Albares
Mujtaba Y Royster
Jennifer K Inouye
Izzy B Ruta
Costa W Butt
Mayumi E Maclead
Morrow P Caldarera
Adams B Amigon
Jennifer S Bolognia
Rodrigues O Flosi
Antonio X Figeroa
Stacey Z Shinko
Maria Z Venere
Ivar Y Paprocki
Mujtaba Y Flosi
Jennifer L Bolognia
Julie M Slusarski
Salvatore P Waycott
Ivar Z Foller
Claire I Caudy
IdCountryDate
1000Japan2026-07-16
1001Germany2026-07-13
1002Japan2026-06-29
1003Spain2026-06-24
1004Argentina2026-06-22
1005Australia2026-06-27
1006Australia2026-06-24
1007Spain2026-07-09
1008Australia2026-07-15
1009Argentina2026-07-17
1010Canada2026-06-30
1011Italy2026-06-27
1012Canada2026-06-22
1013United Kingdom2026-07-12
1014Spain2026-07-14
1015India2026-06-20
1016Canada2026-07-08
1017Australia2026-06-28
1018United Kingdom2026-07-14
1019Australia2026-06-30
1020Germany2026-07-08
1021India2026-06-18
1022Japan2026-06-28
1023Australia2026-07-11
1024Argentina2026-06-23
1025United Kingdom2026-07-09
1026Germany2026-06-19
1027France2026-07-01
1028Russia2026-06-27
1029Russia2026-07-17
1030Germany2026-06-21
1031India2026-06-30
1032India2026-07-01
1033Canada2026-07-08
1034Germany2026-07-04
1035Spain2026-07-04
1036Australia2026-06-29
1037Japan2026-07-13
1038United Kingdom2026-06-23
1039Spain2026-07-15
1040France2026-07-13
1041Japan2026-07-15
1042Russia2026-07-10
1043Japan2026-07-10
1044Australia2026-06-21
1045France2026-06-21
1046Brazil2026-07-17
1047Italy2026-07-09
1048Canada2026-07-13
1049Spain2026-07-07

On-Demand Data

NameIdCountryDate
Salvatore K Campain1000Argentina2026-07-07
Murillo S Schemmer1001United Kingdom2026-07-06
Arvin M Bolognia1002France2026-07-02
Smith Y Stenseth1003Spain2026-07-08
Costa F Bolognia1004Japan2026-06-25
Jeanfrancois G Ferencz1005Spain2026-06-24
Jennifer C Flosi1006France2026-07-01
Wickens T Gaucho1007France2026-07-07
Emily H Nicka1008Japan2026-06-18
Deepesh M Wieser1009Argentina2026-06-23
Ricardo T Ostrosky1010Brazil2026-06-30
Kadeem D Slusarski1011India2026-07-07
Darci E Poquette1012Canada2026-06-18
Nicolas H Rulapaugh1013Brazil2026-07-07
Maisha U Kolmetz1014Germany2026-07-04
Juan K Saylors1015Argentina2026-06-21
Darci D Malet1016Italy2026-06-30
Silvio C Paprocki1017Russia2026-07-15
Mujtaba F Schemmer1018United Kingdom2026-07-09
Sinclair T Stenseth1019Canada2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci M DoeItalyAsiya Javayant NEW
Smith J FerenczAustraliaIoni Bowcher UNQUALIFIED
Francesco S PerinJapanOnyama Limba NEGOTIATION
David O VenereItalyAsiya Javayant QUALIFIED
Jennifer Y FlosiFranceIoni Bowcher NEGOTIATION
Deepesh F OstroskyAustraliaStephen Shaw QUALIFIED
Ricardo U MaletAustraliaElwin Sharvill RENEWAL
David B MarrierGermanyOnyama Limba UNQUALIFIED
Leja F BowleyAustraliaAmy Elsner QUALIFIED
Adams H GlickBrazilElwin Sharvill UNQUALIFIED
Octavia N PaprockiIndiaXuxue Feng NEW
Octavia E SaylorsIndiaElwin Sharvill QUALIFIED
Maisha H StockhamItalyBernardo Dominic UNQUALIFIED
Antonio Z FlosiIndiaIvan Magalhaes NEGOTIATION
Kaitlin V FerenczArgentinaOnyama Limba NEGOTIATION
Johnson Z SlusarskiGermanyIvan Magalhaes NEW
Misaki T BologniaIndiaXuxue Feng QUALIFIED
Salvatore A BowleyIndiaElwin Sharvill UNQUALIFIED
Antonio B CampainJapanStephen Shaw PROPOSAL
Nicolas Z IturbideSpainAsiya Javayant UNQUALIFIED
Deepesh N RutaIndiaAmy Elsner NEGOTIATION
Munro R ButtArgentinaStephen Shaw NEGOTIATION
David Q KuskoUnited KingdomElwin Sharvill PROPOSAL
Antonio D AmigonIndiaIvan Magalhaes QUALIFIED
Arvin M NickaArgentinaIoni Bowcher RENEWAL
David O OldroydSpainStephen Shaw QUALIFIED
Izzy C VocelkaIndiaXuxue Feng RENEWAL
Smith T MacleadFranceElwin Sharvill PROPOSAL
Jeanfrancois H FerenczRussiaOnyama Limba NEW
Ashley J SlusarskiAustraliaAsiya Javayant UNQUALIFIED
Izzy Z GillianItalyAmy Elsner QUALIFIED
Rodrigues X InouyeItalyOnyama Limba UNQUALIFIED
Tony N IturbideGermanyIoni Bowcher RENEWAL
Emily K GarufiGermanyStephen Shaw NEGOTIATION
Adams F BologniaAustraliaStephen Shaw NEGOTIATION
Juan C MarrierItalyBernardo Dominic QUALIFIED
Arvin W SergiItalyAmy Elsner UNQUALIFIED
Munro D InouyeSpainBernardo Dominic PROPOSAL
Silvio M VocelkaGermanyXuxue Feng QUALIFIED
Jennifer X PaprockiFranceElwin Sharvill 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>