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
Arvin V KuskoIndiaStephen Shaw PROPOSAL
Nicolas W DoeRussiaStephen Shaw PROPOSAL
Isabel T AmigonSpainStephen Shaw QUALIFIED
Emily Z SlusarskiItalyIvan Magalhaes PROPOSAL
Chavez Y MaletBrazilAsiya Javayant QUALIFIED
Murillo K SaylorsFranceIoni Bowcher PROPOSAL
Adams G VenereAustraliaElwin Sharvill NEW
Julie F WhobreyCanadaIoni Bowcher UNQUALIFIED
Tony B BologniaRussiaIoni Bowcher PROPOSAL
Darci B BologniaItalyAsiya Javayant QUALIFIED
Jefferson E PaprockiFranceIvan Magalhaes PROPOSAL
Faith D MorascaAustraliaXuxue Feng RENEWAL
Ricardo V FlosiRussiaOnyama Limba UNQUALIFIED
David B PaprockiArgentinaStephen Shaw RENEWAL
James G CampainSpainStephen Shaw QUALIFIED
Francesco W DarakjySpainBernardo Dominic PROPOSAL
Leon C MarrierBrazilElwin Sharvill NEGOTIATION
David H MarrierGermanyStephen Shaw NEW
Adams M CaldareraCanadaStephen Shaw PROPOSAL
Chavez K BologniaAustraliaStephen Shaw RENEWAL
Francesco T CampainRussiaIvan Magalhaes QUALIFIED
Claire Y RoysterUnited KingdomAmy Elsner UNQUALIFIED
Maria Z StensethUnited KingdomElwin Sharvill NEW
Greenwood T PaprockiArgentinaIoni Bowcher RENEWAL
Rodrigues P PerinJapanAmy Elsner QUALIFIED
Nicolas O NestleCanadaAmy Elsner QUALIFIED
Tony W WhobreySpainOnyama Limba UNQUALIFIED
Aditya O SaylorsIndiaStephen Shaw RENEWAL
Silvio Z FerenczRussiaAmy Elsner PROPOSAL
Maria C GillianSpainXuxue Feng NEGOTIATION
Johnson T MarrierArgentinaAmy Elsner NEW
James G MaletArgentinaAnna Fali NEW
Antonio D NestleUnited KingdomAsiya Javayant NEW
Aditya A CaudyGermanyAsiya Javayant NEGOTIATION
Aika D KolmetzCanadaAmy Elsner NEW
Rodrigues W RulapaughRussiaIoni Bowcher RENEWAL
Rodrigues M DilliardAustraliaXuxue Feng PROPOSAL
Nicolas F CampainIndiaAnna Fali UNQUALIFIED
Costa M NickaArgentinaStephen Shaw RENEWAL
Jennifer J BriddickFranceBernardo Dominic RENEWAL
Kaitlin T RimIndiaAmy Elsner UNQUALIFIED
Morrow D AlbaresItalyElwin Sharvill QUALIFIED
Jennifer L IturbideAustraliaStephen Shaw PROPOSAL
Kadeem O ShinkoJapanAmy Elsner PROPOSAL
Julie G WaycottUnited KingdomOnyama Limba NEGOTIATION
Darci M NickaArgentinaAsiya Javayant PROPOSAL
Maisha C RoysterFranceAmy Elsner RENEWAL
Arvin O InouyeAustraliaAmy Elsner QUALIFIED
Claire Q RimRussiaAsiya Javayant NEGOTIATION
Jefferson K ChuiGermanyAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kaitlin Y KolmetzGermanyAnna Fali QUALIFIED
Salvatore Q MaletFranceXuxue Feng QUALIFIED
Ivar Y MacleadAustraliaElwin Sharvill PROPOSAL
Murillo G CaldareraAustraliaOnyama Limba UNQUALIFIED
Wickens J TollnerCanadaAsiya Javayant RENEWAL
Maria S WieserAustraliaElwin Sharvill NEGOTIATION
Jefferson C GlickSpainIvan Magalhaes RENEWAL
Emily P GarufiItalyIvan Magalhaes PROPOSAL
Antonio E CaldareraRussiaAsiya Javayant QUALIFIED
Leon Y SaylorsFranceIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba S RutaRussia2026-08-03Rangoni Of Florence NEW82Onyama Limba
1001Jennifer Z InouyeRussia2026-08-19Commercial Press RENEWAL14Onyama Limba
1002Aika Y WaycottIndia2026-08-09Rousseaux, Michael Esq NEGOTIATION75Bernardo Dominic
1003Francesco P AlbaresJapan2026-08-19Rousseaux, Michael Esq PROPOSAL91Ioni Bowcher
1004Deepesh M TollnerUnited Kingdom2026-08-11Buckley Miller Wright NEGOTIATION93Stephen Shaw
1005Costa I PoquetteSpain2026-08-10Printing Dimensions NEW94Ioni Bowcher
1006Maria J VocelkaArgentina2026-08-19Rangoni Of Florence NEW88Elwin Sharvill
1007Maisha J SchemmerArgentina2026-08-07Truhlar And Truhlar Attys QUALIFIED97Stephen Shaw
1008Murillo T PerinCanada2026-08-07Rousseaux, Michael Esq NEGOTIATION63Anna Fali
1009Sinclair F PaprockiUnited Kingdom2026-08-15King, Christopher A Esq NEW94Elwin Sharvill
1010Greenwood N RutaUnited Kingdom2026-08-08Rangoni Of Florence NEW21Onyama Limba
1011Johnson C BowleyFrance2026-07-23Morlong Associates NEGOTIATION41Amy Elsner
1012Silvio X RimGermany2026-08-04Feiner Bros UNQUALIFIED12Asiya Javayant
1013Salvatore V BologniaSpain2026-07-25Dorl, James J Esq PROPOSAL66Xuxue Feng
1014Darci Z InouyeSpain2026-08-10Printing Dimensions RENEWAL67Elwin Sharvill
1015Silvio W BriddickGermany2026-08-09Chanay, Jeffrey A Esq UNQUALIFIED95Anna Fali
1016Silvio Q CaldareraCanada2026-07-28Truhlar And Truhlar Attys UNQUALIFIED51Elwin Sharvill
1017Rodrigues I CaudyItaly2026-08-03Truhlar And Truhlar Attys QUALIFIED15Elwin Sharvill
1018Jones J SergiAustralia2026-08-04Benton, John B Jr NEGOTIATION64Amy Elsner
1019Greenwood L BologniaItaly2026-08-06Feltz Printing Service NEGOTIATION72Anna Fali
1020Cody M PoquetteArgentina2026-08-11Feltz Printing Service NEW49Amy Elsner
1021Darci M NestleCanada2026-08-07Rousseaux, Michael Esq UNQUALIFIED13Amy Elsner
1022Stacey D AmigonBrazil2026-07-24Morlong Associates NEGOTIATION50Amy Elsner
1023David Y VocelkaIndia2026-07-28Chemel, James L Cpa RENEWAL69Ioni Bowcher
1024Alejandro L DarakjySpain2026-07-24Benton, John B Jr PROPOSAL44Bernardo Dominic
1025Tony O WieserBrazil2026-07-31Feiner Bros NEGOTIATION96Stephen Shaw
1026Jeanfrancois Q GillianArgentina2026-07-24Benton, John B Jr QUALIFIED3Amy Elsner
1027Kaitlin G ButtUnited Kingdom2026-08-15Chapman, Ross E Esq NEGOTIATION25Xuxue Feng
1028Leja X MaletItaly2026-08-18Buckley Miller Wright PROPOSAL30Ioni Bowcher
1029Jones R MarrierFrance2026-08-14Printing Dimensions NEW34Asiya Javayant
1030Misaki E KolmetzUnited Kingdom2026-08-15Feiner Bros RENEWAL86Anna Fali
1031Jefferson D FigeroaGermany2026-08-09Feltz Printing Service NEW14Ioni Bowcher
1032Jefferson U DilliardAustralia2026-07-28King, Christopher A Esq NEW73Bernardo Dominic
1033Deepesh C MorascaFrance2026-08-10Commercial Press NEGOTIATION55Asiya Javayant
1034Deepesh O WieserFrance2026-08-17Feiner Bros UNQUALIFIED80Elwin Sharvill
1035Jones X StockhamArgentina2026-08-11Rangoni Of Florence NEGOTIATION99Asiya Javayant
1036Antonio Z SchemmerIndia2026-07-28Buckley Miller Wright NEGOTIATION35Ioni Bowcher
1037Silvio E MarrierFrance2026-08-03Printing Dimensions NEW60Anna Fali
1038Ashley W CampainBrazil2026-08-09Chemel, James L Cpa NEGOTIATION12Ioni Bowcher
1039Tony X MarrierCanada2026-07-28Truhlar And Truhlar Attys RENEWAL44Asiya Javayant
1040Darci H BologniaAustralia2026-08-05King, Christopher A Esq NEW4Ivan Magalhaes
1041Aika H KolmetzItaly2026-08-18Dorl, James J Esq PROPOSAL42Xuxue Feng
1042Costa L FerenczSpain2026-07-24Commercial Press NEGOTIATION42Stephen Shaw
1043Costa J PaprockiAustralia2026-08-12Chemel, James L Cpa PROPOSAL19Elwin Sharvill
1044Jefferson U PoquetteSpain2026-07-28Commercial Press RENEWAL35Elwin Sharvill
1045Clifford G StensethItaly2026-08-02Dorl, James J Esq RENEWAL48Elwin Sharvill
1046Chavez M TollnerCanada2026-08-17Truhlar And Truhlar Attys RENEWAL30Stephen Shaw
1047Ashley T PaprockiCanada2026-07-23Chemel, James L Cpa NEGOTIATION68Asiya Javayant
1048Jefferson D FigeroaUnited Kingdom2026-08-15Commercial Press PROPOSAL74Amy Elsner
1049Jeanfrancois W MarrierFrance2026-08-18Printing Dimensions UNQUALIFIED19Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Izzy G GarufiSpainAmy Elsner RENEWAL
Francesco M GlickItalyStephen Shaw UNQUALIFIED
Aruna A DarakjyRussiaIoni Bowcher UNQUALIFIED
Aruna F FerenczIndiaAnna Fali UNQUALIFIED
Costa M SchemmerJapanAnna Fali UNQUALIFIED
Sinclair R InouyeIndiaBernardo Dominic NEW
Maisha X BologniaBrazilBernardo Dominic PROPOSAL
Adams E AmigonSpainAnna Fali UNQUALIFIED
Smith T GillianSpainAnna Fali RENEWAL
Deepesh Z AmigonGermanyAnna Fali UNQUALIFIED
Aika P PaprockiGermanyAmy Elsner PROPOSAL
Aruna G RutaRussiaXuxue Feng NEW
Francesco P IturbideRussiaXuxue Feng UNQUALIFIED
Sinclair P KuskoBrazilElwin Sharvill NEGOTIATION
Mujtaba X VenereRussiaAmy Elsner RENEWAL
Emily T FollerRussiaStephen Shaw NEW
Aruna I DoeItalyElwin Sharvill NEGOTIATION
Darci P MaletFranceAnna Fali NEGOTIATION
Leja G WhobreyBrazilIoni Bowcher NEW
Ivar W DilliardItalyOnyama Limba NEW
Leja J PoquetteSpainStephen Shaw UNQUALIFIED
Jefferson F StockhamItalyAmy Elsner QUALIFIED
Mujtaba N CampainRussiaOnyama Limba QUALIFIED
Costa K SchemmerSpainOnyama Limba NEGOTIATION
Antonio G WieserCanadaAmy Elsner QUALIFIED
Leon E OldroydAustraliaAsiya Javayant QUALIFIED
Jones G StockhamBrazilIvan Magalhaes NEGOTIATION
Emily G KuskoArgentinaAmy Elsner RENEWAL
Morrow C WaycottAustraliaAnna Fali NEGOTIATION
Costa K TollnerArgentinaAsiya Javayant RENEWAL
Mayumi L DilliardItalyAnna Fali PROPOSAL
Morrow X VocelkaCanadaBernardo Dominic RENEWAL
Antonio L StockhamFranceBernardo Dominic NEW
Salvatore T FigeroaIndiaOnyama Limba UNQUALIFIED
Jennifer E WieserSpainAnna Fali PROPOSAL
Adams X BologniaFranceOnyama Limba NEGOTIATION
Misaki K BriddickCanadaAmy Elsner RENEWAL
Faith Q AmigonRussiaAsiya Javayant NEW
Costa A BologniaJapanIvan Magalhaes RENEWAL
Ashley Q MaletJapanIvan Magalhaes RENEWAL
Maria H VocelkaIndiaXuxue Feng RENEWAL
Claire T StensethRussiaXuxue Feng RENEWAL
Greenwood M MorascaAustraliaBernardo Dominic PROPOSAL
James Q CaudySpainXuxue Feng UNQUALIFIED
Claire T DilliardItalyIvan Magalhaes PROPOSAL
Faith E PaprockiSpainXuxue Feng PROPOSAL
Nicolas U BriddickSpainIvan Magalhaes RENEWAL
Morrow G GarufiJapanAsiya Javayant RENEWAL
Izzy N SergiGermanyAsiya Javayant PROPOSAL
Isabel U DoeUnited KingdomOnyama Limba UNQUALIFIED
Frozen Columns
Name
Mayumi V Morasca
Kadeem A Gaucho
Costa W Nicka
Kaitlin R Garufi
Kadeem R Dilliard
Smith M Perin
Isabel O Iturbide
Ivar U Malet
Costa B Perin
Maisha O Briddick
Leon C Sergi
Munro O Paprocki
Munro V Schemmer
Mujtaba M Whobrey
Isabel F Sergi
Clifford S Doe
Tony Z Kusko
Isabel X Royster
Leja B Marrier
Deepesh P Slusarski
Mujtaba Y Rim
Aditya U Vocelka
Alejandro R Bolognia
Octavia P Glick
Aruna B Venere
Rodrigues R Kolmetz
Maisha J Tollner
Chavez S Shinko
Morrow P Vocelka
Arvin L Darakjy
Wickens I Maclead
Antonio N Vocelka
Faith W Rulapaugh
Arvin Q Gillian
Ashley B Wieser
James P Campain
Deepesh S Iturbide
Emily D Poquette
Alejandro T Glick
Kadeem D Schemmer
Aruna N Chui
Kaitlin W Marrier
Izzy U Sergi
Antonio T Oldroyd
Greenwood Y Schemmer
Tony R Venere
Jones K Inouye
Maisha N Kusko
Leon D Slusarski
Munro M Gaucho
IdCountryDate
1000Russia2026-07-28
1001Argentina2026-08-07
1002Argentina2026-08-14
1003Italy2026-08-17
1004Russia2026-08-01
1005France2026-07-30
1006Japan2026-08-17
1007India2026-08-13
1008India2026-08-03
1009Australia2026-07-27
1010Japan2026-07-30
1011France2026-08-06
1012India2026-08-09
1013France2026-08-03
1014Canada2026-08-13
1015Argentina2026-07-28
1016Japan2026-08-10
1017Italy2026-08-06
1018India2026-08-02
1019Germany2026-08-16
1020United Kingdom2026-08-19
1021Japan2026-07-27
1022Argentina2026-08-16
1023France2026-08-16
1024Canada2026-08-13
1025Germany2026-08-04
1026Brazil2026-08-19
1027United Kingdom2026-07-21
1028Australia2026-08-11
1029Japan2026-07-24
1030France2026-07-24
1031India2026-08-05
1032Russia2026-08-05
1033India2026-08-07
1034Spain2026-08-14
1035Brazil2026-07-28
1036United Kingdom2026-08-04
1037France2026-08-08
1038India2026-08-01
1039France2026-08-12
1040Canada2026-08-01
1041France2026-08-01
1042Brazil2026-08-08
1043Argentina2026-08-02
1044Japan2026-07-29
1045Canada2026-08-07
1046Japan2026-07-29
1047India2026-08-06
1048Brazil2026-07-29
1049Spain2026-07-25

On-Demand Data

NameIdCountryDate
Jennifer L Tollner1000Russia2026-08-08
Misaki Z Gaucho1001Argentina2026-07-24
Emily E Chui1002Germany2026-07-31
Francesco Z Ruta1003Spain2026-08-19
Aruna X Campain1004Canada2026-08-01
Jones B Nestle1005India2026-08-18
Leon C Caudy1006Brazil2026-08-06
Isabel I Gaucho1007Canada2026-07-22
Tony F Gillian1008Australia2026-08-19
Claire G Malet1009Brazil2026-08-11
Arvin W Glick1010Argentina2026-07-22
Tony W Waycott1011Canada2026-07-30
James X Foller1012Spain2026-08-10
Johnson C Butt1013Australia2026-08-18
Izzy R Malet1014Germany2026-08-05
Mujtaba G Saylors1015India2026-07-21
Silvio M Albares1016United Kingdom2026-08-03
Johnson V Tollner1017Japan2026-08-16
Stacey G Paprocki1018Canada2026-08-05
Munro U Tollner1019India2026-07-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leon V KuskoIndiaStephen Shaw NEGOTIATION
Costa V WaycottBrazilAsiya Javayant NEW
Misaki S OldroydAustraliaElwin Sharvill UNQUALIFIED
Kaitlin I SergiBrazilAnna Fali RENEWAL
Tony Q CaldareraSpainOnyama Limba UNQUALIFIED
Silvio W CampainUnited KingdomIvan Magalhaes QUALIFIED
Maria H TollnerAustraliaAnna Fali QUALIFIED
Julie V MacleadRussiaOnyama Limba NEW
Ashley T GlickArgentinaBernardo Dominic UNQUALIFIED
Kaitlin M CaldareraGermanyOnyama Limba NEGOTIATION
Aika A KuskoArgentinaIoni Bowcher QUALIFIED
Octavia S AmigonFranceOnyama Limba NEW
Munro P CaudyRussiaAsiya Javayant UNQUALIFIED
Deepesh E PerinIndiaStephen Shaw PROPOSAL
Silvio N WieserItalyAsiya Javayant UNQUALIFIED
Isabel Z PoquetteUnited KingdomAnna Fali PROPOSAL
Sinclair L RulapaughFranceIoni Bowcher RENEWAL
Salvatore C SaylorsAustraliaXuxue Feng PROPOSAL
Jeanfrancois B CaldareraGermanyBernardo Dominic QUALIFIED
Darci E NestleFranceAmy Elsner PROPOSAL
Octavia D BriddickUnited KingdomAmy Elsner NEGOTIATION
Jones Z GlickGermanyAmy Elsner RENEWAL
Maria A SergiSpainXuxue Feng PROPOSAL
Isabel R CaldareraAustraliaAnna Fali QUALIFIED
Maria E WieserBrazilStephen Shaw UNQUALIFIED
Leon F StensethSpainBernardo Dominic NEW
Johnson S MaletIndiaXuxue Feng NEW
Stacey B FigeroaCanadaElwin Sharvill RENEWAL
Cody S VenereGermanyIvan Magalhaes QUALIFIED
Julie F FlosiRussiaIoni Bowcher RENEWAL
Sinclair H WaycottSpainAnna Fali UNQUALIFIED
Francesco T TollnerArgentinaAmy Elsner NEGOTIATION
Alejandro S FerenczFranceAsiya Javayant NEGOTIATION
Maisha A OstroskyBrazilBernardo Dominic PROPOSAL
Aditya L PaprockiGermanyBernardo Dominic NEW
Adams U CaldareraCanadaAmy Elsner UNQUALIFIED
Mujtaba V MorascaRussiaStephen Shaw NEGOTIATION
Maisha X BriddickGermanyAnna Fali PROPOSAL
Leon R KolmetzSpainIvan Magalhaes QUALIFIED
Sinclair M ShinkoUnited KingdomAsiya Javayant 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>