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 W MorascaJapanAmy Elsner RENEWAL
Kadeem J GillianUnited KingdomAsiya Javayant UNQUALIFIED
Antonio W SchemmerCanadaBernardo Dominic NEW
Mujtaba Y StockhamIndiaIvan Magalhaes NEGOTIATION
Murillo M GlickArgentinaAnna Fali QUALIFIED
Munro R DoeJapanOnyama Limba QUALIFIED
Leja Q ButtItalyStephen Shaw RENEWAL
Kaitlin A DarakjyAustraliaAnna Fali NEGOTIATION
Alejandro S SergiBrazilXuxue Feng UNQUALIFIED
Greenwood M AlbaresJapanOnyama Limba RENEWAL
Jeanfrancois S RutaGermanyXuxue Feng NEGOTIATION
Aruna N MarrierAustraliaOnyama Limba PROPOSAL
Mujtaba X InouyeJapanAsiya Javayant QUALIFIED
Salvatore B SlusarskiBrazilIoni Bowcher RENEWAL
Greenwood P MarrierJapanBernardo Dominic NEW
Misaki L WaycottArgentinaIoni Bowcher RENEWAL
Aruna M GauchoAustraliaIvan Magalhaes NEW
Kaitlin Q DilliardFranceBernardo Dominic QUALIFIED
Mujtaba N NestleBrazilXuxue Feng QUALIFIED
Johnson U MacleadGermanyBernardo Dominic RENEWAL
Claire U AmigonAustraliaBernardo Dominic PROPOSAL
Aika B FollerJapanXuxue Feng RENEWAL
Mujtaba F MacleadUnited KingdomStephen Shaw NEW
Faith M FigeroaBrazilIoni Bowcher UNQUALIFIED
Cody E CampainSpainBernardo Dominic PROPOSAL
Chavez A SergiFranceIvan Magalhaes RENEWAL
Misaki G IturbideCanadaElwin Sharvill RENEWAL
Leon G PerinFranceIvan Magalhaes QUALIFIED
Ashley R PoquetteIndiaXuxue Feng UNQUALIFIED
Tony D CaldareraSpainXuxue Feng UNQUALIFIED
Aruna K GauchoBrazilIvan Magalhaes PROPOSAL
Arvin R GillianBrazilBernardo Dominic UNQUALIFIED
Costa N RulapaughIndiaBernardo Dominic NEGOTIATION
Octavia V BriddickFranceAmy Elsner UNQUALIFIED
Maisha S RutaJapanIvan Magalhaes UNQUALIFIED
Aditya O NestleCanadaAmy Elsner PROPOSAL
Mujtaba W RulapaughSpainBernardo Dominic NEW
Wickens Z BriddickAustraliaIvan Magalhaes UNQUALIFIED
Jones K WieserItalyAsiya Javayant PROPOSAL
Nicolas L SchemmerSpainIvan Magalhaes NEGOTIATION
Aika E PerinAustraliaAsiya Javayant RENEWAL
Kadeem K TollnerCanadaXuxue Feng UNQUALIFIED
Jefferson S PoquetteSpainAnna Fali NEW
Jennifer T ChuiFranceIvan Magalhaes RENEWAL
Ashley C WaycottRussiaAsiya Javayant QUALIFIED
Ashley E DarakjyCanadaBernardo Dominic RENEWAL
Julie Z PoquetteAustraliaIvan Magalhaes RENEWAL
Adams G OldroydGermanyIoni Bowcher RENEWAL
Murillo D NickaArgentinaAsiya Javayant NEGOTIATION
Tony P IturbideRussiaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Wickens F VenereUnited KingdomAnna Fali UNQUALIFIED
Mujtaba V BologniaJapanIvan Magalhaes RENEWAL
Munro Q GlickIndiaStephen Shaw RENEWAL
Silvio V NickaAustraliaOnyama Limba QUALIFIED
Aika V BologniaIndiaElwin Sharvill QUALIFIED
Ashley B RutaArgentinaAmy Elsner NEW
David B GarufiArgentinaAsiya Javayant UNQUALIFIED
Jennifer Z IturbideRussiaElwin Sharvill QUALIFIED
Stacey X SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Salvatore X OstroskyArgentinaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba O BowleyGermany2026-06-18Chanay, Jeffrey A Esq NEW17Amy Elsner
1001Antonio D VenereAustralia2026-06-05Benton, John B Jr NEGOTIATION53Ioni Bowcher
1002Mayumi R WhobreyAustralia2026-06-14Chemel, James L Cpa NEW14Elwin Sharvill
1003Juan J OldroydFrance2026-06-21Feltz Printing Service NEGOTIATION44Xuxue Feng
1004Smith A SaylorsFrance2026-06-06Dorl, James J Esq NEW50Stephen Shaw
1005Greenwood P BologniaAustralia2026-07-04Printing Dimensions UNQUALIFIED70Asiya Javayant
1006Adams L BologniaUnited Kingdom2026-06-17Rangoni Of Florence NEW72Bernardo Dominic
1007Ashley U PoquetteRussia2026-06-21Chanay, Jeffrey A Esq NEGOTIATION92Bernardo Dominic
1008Mujtaba I SergiIndia2026-06-10Feiner Bros RENEWAL61Elwin Sharvill
1009Ricardo J InouyeCanada2026-06-15Chemel, James L Cpa NEW13Ioni Bowcher
1010Munro Y CaldareraGermany2026-06-22Chemel, James L Cpa PROPOSAL37Ioni Bowcher
1011Munro H KuskoCanada2026-06-22King, Christopher A Esq RENEWAL19Bernardo Dominic
1012Leon J ChuiJapan2026-06-27Feiner Bros NEW36Ioni Bowcher
1013Nicolas T DoeGermany2026-07-02Dorl, James J Esq QUALIFIED15Elwin Sharvill
1014Deepesh D TollnerBrazil2026-06-12Truhlar And Truhlar Attys NEW16Ivan Magalhaes
1015Emily Y CampainIndia2026-06-12Feltz Printing Service UNQUALIFIED70Xuxue Feng
1016Ricardo P FigeroaBrazil2026-06-09Chemel, James L Cpa NEW20Stephen Shaw
1017Jeanfrancois Q DoeSpain2026-06-25Benton, John B Jr RENEWAL50Amy Elsner
1018Arvin L RulapaughSpain2026-06-09Feltz Printing Service NEGOTIATION74Asiya Javayant
1019Jennifer C MaletJapan2026-06-21Feltz Printing Service NEGOTIATION92Elwin Sharvill
1020Izzy K GlickBrazil2026-06-27Feltz Printing Service NEW70Onyama Limba
1021Sinclair X WhobreyItaly2026-06-22Chanay, Jeffrey A Esq NEGOTIATION75Stephen Shaw
1022Morrow Q StockhamGermany2026-06-20Dorl, James J Esq QUALIFIED87Ioni Bowcher
1023Aruna R AmigonItaly2026-07-02Chemel, James L Cpa UNQUALIFIED86Ivan Magalhaes
1024Faith Z MarrierRussia2026-06-09Truhlar And Truhlar Attys RENEWAL55Asiya Javayant
1025Ashley T TollnerItaly2026-06-28Feltz Printing Service UNQUALIFIED2Stephen Shaw
1026Nicolas Q ShinkoRussia2026-07-03Chapman, Ross E Esq PROPOSAL50Ioni Bowcher
1027Murillo T DilliardJapan2026-06-18Chapman, Ross E Esq UNQUALIFIED93Xuxue Feng
1028Mujtaba P KuskoFrance2026-06-28Rangoni Of Florence NEW50Bernardo Dominic
1029David B WhobreyCanada2026-06-14Printing Dimensions NEGOTIATION24Asiya Javayant
1030Murillo E NestleIndia2026-06-08Chemel, James L Cpa RENEWAL40Ioni Bowcher
1031Sinclair R MorascaSpain2026-06-06Chemel, James L Cpa QUALIFIED45Onyama Limba
1032Rodrigues V StensethFrance2026-06-15Buckley Miller Wright PROPOSAL95Asiya Javayant
1033Octavia F FigeroaGermany2026-06-15Morlong Associates NEGOTIATION34Asiya Javayant
1034Jones Q StensethCanada2026-06-20Chemel, James L Cpa PROPOSAL60Bernardo Dominic
1035Maisha I CampainBrazil2026-06-23Benton, John B Jr UNQUALIFIED9Xuxue Feng
1036Adams P WaycottFrance2026-06-23Rousseaux, Michael Esq UNQUALIFIED90Stephen Shaw
1037Adams R BologniaRussia2026-06-12King, Christopher A Esq NEW34Elwin Sharvill
1038Jones M StensethFrance2026-06-11King, Christopher A Esq NEW64Elwin Sharvill
1039Arvin B KolmetzFrance2026-06-09Rangoni Of Florence NEGOTIATION71Anna Fali
1040David K WaycottArgentina2026-06-30Chemel, James L Cpa NEGOTIATION40Stephen Shaw
1041Jennifer V OldroydItaly2026-06-26Dorl, James J Esq RENEWAL57Ioni Bowcher
1042Leon X StockhamIndia2026-06-12Commercial Press RENEWAL1Anna Fali
1043Maria K ButtIndia2026-06-14Morlong Associates QUALIFIED90Asiya Javayant
1044Greenwood S WaycottItaly2026-06-09Chapman, Ross E Esq PROPOSAL23Stephen Shaw
1045Adams S BriddickAustralia2026-06-16Commercial Press PROPOSAL67Ioni Bowcher
1046Costa I BologniaUnited Kingdom2026-06-21Feltz Printing Service RENEWAL46Ivan Magalhaes
1047James A CaldareraRussia2026-06-19Rangoni Of Florence QUALIFIED81Bernardo Dominic
1048Antonio Q RulapaughSpain2026-06-28Chapman, Ross E Esq QUALIFIED1Elwin Sharvill
1049Claire N AlbaresRussia2026-06-27Chemel, James L Cpa UNQUALIFIED33Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Francesco J StockhamArgentinaAsiya Javayant UNQUALIFIED
Cody O FlosiJapanIvan Magalhaes NEW
Adams B PaprockiAustraliaElwin Sharvill NEW
David F CampainGermanyAsiya Javayant PROPOSAL
Cody W FigeroaAustraliaXuxue Feng UNQUALIFIED
Alejandro L AlbaresJapanAnna Fali UNQUALIFIED
Misaki W AmigonGermanyStephen Shaw UNQUALIFIED
Jefferson J CaudyAustraliaOnyama Limba NEW
Costa V BologniaRussiaAsiya Javayant QUALIFIED
Clifford D RulapaughJapanAnna Fali UNQUALIFIED
Aika F DoeFranceStephen Shaw UNQUALIFIED
Salvatore J OldroydCanadaAsiya Javayant QUALIFIED
Antonio R RulapaughIndiaAsiya Javayant PROPOSAL
Chavez D OstroskyFranceElwin Sharvill RENEWAL
Jennifer Y MarrierCanadaXuxue Feng NEGOTIATION
Clifford A WaycottUnited KingdomElwin Sharvill NEW
Jennifer P CampainSpainAnna Fali UNQUALIFIED
Smith W GlickIndiaOnyama Limba UNQUALIFIED
Costa L StockhamRussiaXuxue Feng NEGOTIATION
Kadeem I RutaCanadaAnna Fali PROPOSAL
Arvin A KuskoCanadaIvan Magalhaes PROPOSAL
Isabel R OstroskyItalyStephen Shaw NEGOTIATION
Johnson M DilliardUnited KingdomOnyama Limba PROPOSAL
Wickens V StensethArgentinaAnna Fali NEW
Tony L OldroydAustraliaAsiya Javayant QUALIFIED
Aika Y SaylorsSpainAnna Fali QUALIFIED
Isabel K RoysterItalyStephen Shaw UNQUALIFIED
Leon I RutaIndiaIvan Magalhaes NEW
David N GillianFranceAsiya Javayant QUALIFIED
Isabel U InouyeAustraliaElwin Sharvill RENEWAL
Sinclair F SergiArgentinaAsiya Javayant NEW
Munro B AlbaresUnited KingdomXuxue Feng PROPOSAL
Francesco C FlosiGermanyXuxue Feng RENEWAL
Claire E CaldareraIndiaStephen Shaw PROPOSAL
Juan E InouyeBrazilElwin Sharvill NEGOTIATION
Claire W GauchoAustraliaElwin Sharvill NEGOTIATION
Leja I GlickRussiaIoni Bowcher NEW
Leja B StensethRussiaIvan Magalhaes RENEWAL
Ashley L BriddickGermanyXuxue Feng UNQUALIFIED
Francesco Z OldroydSpainAnna Fali UNQUALIFIED
Julie L WhobreyAustraliaIvan Magalhaes NEGOTIATION
Emily M SchemmerIndiaAsiya Javayant RENEWAL
Morrow C StockhamBrazilBernardo Dominic PROPOSAL
Chavez Y PaprockiCanadaIoni Bowcher NEGOTIATION
Silvio D SchemmerFranceAmy Elsner UNQUALIFIED
Jennifer F MorascaUnited KingdomIvan Magalhaes NEW
Jefferson E PerinSpainAnna Fali PROPOSAL
Ivar H GlickIndiaStephen Shaw UNQUALIFIED
Jeanfrancois T BriddickItalyStephen Shaw UNQUALIFIED
Clifford N WaycottJapanStephen Shaw UNQUALIFIED
Frozen Columns
Name
Francesco W Chui
Francesco A Perin
Wickens X Malet
Antonio R Figeroa
Aditya V Oldroyd
David I Inouye
Izzy X Gillian
Aditya H Inouye
Cody G Bowley
Chavez W Caudy
Ivar G Garufi
Alejandro G Stockham
Nicolas L Ostrosky
Arvin N Paprocki
Morrow P Sergi
Arvin P Briddick
Julie K Albares
Leja B Glick
Leja C Briddick
Leja C Vocelka
Mayumi W Campain
Aruna Z Marrier
Silvio V Bowley
Arvin W Oldroyd
Chavez O Gaucho
David L Amigon
Greenwood X Darakjy
Misaki W Marrier
Munro A Amigon
Deepesh D Ruta
Munro N Dilliard
Claire B Butt
Silvio L Dilliard
Antonio E Gillian
Ricardo R Glick
Mujtaba U Slusarski
Morrow O Darakjy
Morrow Q Malet
Cody C Butt
Ricardo Y Foller
Silvio E Venere
Jennifer E Maclead
Claire S Garufi
Kadeem C Caudy
Kadeem Q Poquette
Maisha T Butt
Darci W Perin
Isabel T Oldroyd
Aruna H Kusko
Kaitlin Z Ferencz
IdCountryDate
1000Japan2026-06-30
1001India2026-06-14
1002Italy2026-07-02
1003Germany2026-06-17
1004France2026-06-08
1005France2026-07-02
1006Australia2026-07-03
1007Japan2026-06-09
1008France2026-06-28
1009Japan2026-06-22
1010Brazil2026-06-07
1011Australia2026-06-10
1012France2026-06-23
1013Italy2026-06-27
1014Australia2026-06-25
1015Spain2026-06-21
1016Brazil2026-06-16
1017Argentina2026-06-23
1018Brazil2026-07-01
1019Australia2026-06-12
1020Italy2026-06-12
1021Canada2026-06-13
1022Russia2026-06-08
1023Australia2026-06-20
1024Australia2026-06-27
1025United Kingdom2026-06-18
1026Germany2026-06-11
1027Italy2026-06-28
1028Russia2026-06-29
1029Russia2026-06-22
1030United Kingdom2026-06-29
1031India2026-06-08
1032Argentina2026-06-08
1033Italy2026-06-23
1034France2026-06-18
1035Spain2026-06-18
1036Spain2026-06-19
1037Italy2026-06-13
1038Argentina2026-06-26
1039Italy2026-06-08
1040Italy2026-07-04
1041Spain2026-06-21
1042Brazil2026-06-26
1043Germany2026-06-19
1044Japan2026-06-13
1045France2026-06-09
1046Japan2026-06-23
1047India2026-06-08
1048Italy2026-06-17
1049Russia2026-06-05

On-Demand Data

NameIdCountryDate
Maria D Oldroyd1000United Kingdom2026-07-01
Chavez T Malet1001Italy2026-06-10
Johnson X Waycott1002United Kingdom2026-06-25
Jones X Oldroyd1003France2026-06-23
Jefferson S Malet1004Germany2026-06-26
Munro K Figeroa1005Argentina2026-07-04
Nicolas X Rim1006India2026-07-02
Jeanfrancois K Malet1007Japan2026-06-21
Rodrigues V Marrier1008Brazil2026-06-19
Adams U Doe1009Italy2026-06-27
Antonio G Campain1010France2026-06-12
Jefferson Z Royster1011Germany2026-06-28
Octavia U Schemmer1012Canada2026-07-04
Kaitlin G Flosi1013Germany2026-06-26
Izzy G Kusko1014Italy2026-06-23
Aika I Marrier1015Canada2026-06-29
Izzy C Gaucho1016Brazil2026-06-05
Jefferson Y Slusarski1017Germany2026-06-05
Stacey M Marrier1018Spain2026-07-02
Costa F Nestle1019Italy2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore G CaudyCanadaXuxue Feng QUALIFIED
Ashley K RimRussiaOnyama Limba UNQUALIFIED
Arvin W AmigonBrazilOnyama Limba RENEWAL
Jones H FlosiFranceStephen Shaw QUALIFIED
Jones X RimArgentinaAmy Elsner NEGOTIATION
Arvin Y OstroskyJapanXuxue Feng NEGOTIATION
Deepesh S DarakjyIndiaIvan Magalhaes NEW
Octavia S NickaItalyAsiya Javayant RENEWAL
Francesco G VocelkaIndiaAmy Elsner UNQUALIFIED
Costa T FlosiBrazilStephen Shaw PROPOSAL
Jeanfrancois L MacleadBrazilAnna Fali UNQUALIFIED
Stacey T DilliardIndiaIoni Bowcher UNQUALIFIED
Aditya B MaletArgentinaAnna Fali NEGOTIATION
Jennifer J MacleadRussiaIoni Bowcher NEW
Arvin D FerenczUnited KingdomElwin Sharvill NEW
Emily W IturbideBrazilXuxue Feng RENEWAL
Ashley W WaycottBrazilAnna Fali QUALIFIED
Deepesh P NestleSpainStephen Shaw PROPOSAL
Leon Q FollerItalyStephen Shaw QUALIFIED
Ricardo D BologniaBrazilAsiya Javayant NEW
Alejandro X BologniaFranceXuxue Feng PROPOSAL
Misaki F CaldareraItalyIoni Bowcher PROPOSAL
Aditya Q WhobreySpainStephen Shaw NEGOTIATION
Costa O GarufiFranceAsiya Javayant NEW
Aditya A MaletItalyIvan Magalhaes NEW
Darci Q InouyeUnited KingdomOnyama Limba QUALIFIED
Stacey Q TollnerAustraliaAnna Fali NEGOTIATION
Maisha P GarufiItalyIvan Magalhaes QUALIFIED
Aruna J BowleyArgentinaStephen Shaw RENEWAL
Ricardo Y AlbaresBrazilStephen Shaw NEGOTIATION
Antonio K WhobreyArgentinaOnyama Limba RENEWAL
Nicolas H NickaGermanyAmy Elsner NEGOTIATION
Rodrigues V SlusarskiIndiaIoni Bowcher QUALIFIED
Morrow Y RutaFranceStephen Shaw PROPOSAL
Aruna X RulapaughSpainAsiya Javayant PROPOSAL
Ivar O SlusarskiJapanOnyama Limba PROPOSAL
Mujtaba Z InouyeSpainAmy Elsner NEGOTIATION
Ivar N RoysterBrazilElwin Sharvill NEGOTIATION
Sinclair U OstroskyFranceStephen Shaw UNQUALIFIED
Alejandro X AlbaresIndiaStephen Shaw NEGOTIATION

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