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
Julie T ChuiRussiaIoni Bowcher UNQUALIFIED
Izzy M VenereIndiaOnyama Limba NEGOTIATION
Murillo Q WhobreyUnited KingdomOnyama Limba NEW
Maisha Z KuskoGermanyOnyama Limba PROPOSAL
Adams H ChuiGermanyIoni Bowcher UNQUALIFIED
Adams O GlickFranceElwin Sharvill NEGOTIATION
Sinclair M GlickCanadaIvan Magalhaes NEGOTIATION
Aditya N CaldareraJapanIvan Magalhaes NEGOTIATION
Murillo M ShinkoUnited KingdomStephen Shaw NEW
Arvin P FerenczBrazilBernardo Dominic RENEWAL
Julie N AlbaresBrazilAsiya Javayant QUALIFIED
James V MarrierItalyBernardo Dominic NEW
Silvio U NickaBrazilStephen Shaw NEW
Francesco V KuskoRussiaOnyama Limba QUALIFIED
Claire C KolmetzBrazilXuxue Feng NEGOTIATION
Jefferson J CaldareraAustraliaAmy Elsner PROPOSAL
Izzy F SergiIndiaXuxue Feng NEGOTIATION
David C IturbideItalyIoni Bowcher NEW
Smith T WhobreySpainElwin Sharvill RENEWAL
Maria Z VenereIndiaOnyama Limba NEGOTIATION
Deepesh U DoeItalyXuxue Feng NEGOTIATION
Wickens H NestleArgentinaOnyama Limba UNQUALIFIED
Smith R NestleFranceStephen Shaw UNQUALIFIED
Nicolas K FigeroaGermanyAmy Elsner PROPOSAL
Stacey O RulapaughJapanAnna Fali NEGOTIATION
James R PaprockiCanadaAmy Elsner NEW
Faith J VenereSpainOnyama Limba RENEWAL
Greenwood C CaldareraIndiaElwin Sharvill RENEWAL
Isabel J MarrierCanadaIoni Bowcher UNQUALIFIED
Francesco C SaylorsItalyAsiya Javayant NEGOTIATION
Ivar N GillianSpainXuxue Feng QUALIFIED
Jennifer A WhobreyIndiaIvan Magalhaes NEGOTIATION
Emily A KuskoAustraliaElwin Sharvill RENEWAL
Kaitlin U CaudyCanadaXuxue Feng RENEWAL
Wickens Y DoeRussiaStephen Shaw UNQUALIFIED
Arvin I FollerArgentinaAsiya Javayant PROPOSAL
Nicolas J KuskoItalyElwin Sharvill UNQUALIFIED
Misaki Z OstroskyAustraliaAnna Fali NEW
Faith Q AlbaresRussiaBernardo Dominic RENEWAL
Octavia Y FigeroaUnited KingdomElwin Sharvill UNQUALIFIED
Isabel T WieserSpainElwin Sharvill RENEWAL
Clifford N NestleJapanAmy Elsner RENEWAL
Antonio B RutaBrazilIvan Magalhaes QUALIFIED
Costa Q MorascaCanadaAnna Fali PROPOSAL
Aruna I WhobreySpainXuxue Feng NEW
Mujtaba T KuskoItalyAnna Fali QUALIFIED
Clifford X RimRussiaIoni Bowcher NEGOTIATION
Mujtaba D BologniaUnited KingdomOnyama Limba QUALIFIED
Munro E WieserArgentinaBernardo Dominic NEW
Jones A VocelkaBrazilAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kaitlin T CaudyCanadaAmy Elsner RENEWAL
Rodrigues S MaletArgentinaOnyama Limba NEW
Octavia T CaldareraCanadaElwin Sharvill PROPOSAL
James B MarrierIndiaElwin Sharvill UNQUALIFIED
James P RimRussiaXuxue Feng RENEWAL
Jennifer F BowleyUnited KingdomBernardo Dominic QUALIFIED
Leja V RulapaughItalyIoni Bowcher PROPOSAL
Isabel N GarufiRussiaXuxue Feng PROPOSAL
Darci W CaudyBrazilAsiya Javayant UNQUALIFIED
Jennifer E FlosiFranceIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore Y CaudyUnited Kingdom2026-08-03Rousseaux, Michael Esq RENEWAL28Asiya Javayant
1001Leon P TollnerSpain2026-08-21Benton, John B Jr NEW74Xuxue Feng
1002Misaki I MarrierUnited Kingdom2026-08-10King, Christopher A Esq UNQUALIFIED73Onyama Limba
1003Kadeem W DilliardUnited Kingdom2026-07-31Rangoni Of Florence QUALIFIED52Anna Fali
1004Stacey T ChuiJapan2026-07-27King, Christopher A Esq PROPOSAL76Asiya Javayant
1005Chavez V SergiFrance2026-07-27Chapman, Ross E Esq NEGOTIATION0Anna Fali
1006Faith N StockhamAustralia2026-08-22Buckley Miller Wright RENEWAL85Stephen Shaw
1007Misaki Y FigeroaFrance2026-07-25Dorl, James J Esq UNQUALIFIED47Amy Elsner
1008Antonio P BriddickJapan2026-08-04Feltz Printing Service QUALIFIED89Asiya Javayant
1009Leja E FigeroaArgentina2026-08-02Truhlar And Truhlar Attys RENEWAL53Amy Elsner
1010Jefferson R BologniaRussia2026-08-02Chanay, Jeffrey A Esq RENEWAL27Bernardo Dominic
1011Aika Q KuskoArgentina2026-07-31Commercial Press NEW91Onyama Limba
1012Darci S BriddickBrazil2026-08-19Chapman, Ross E Esq PROPOSAL73Onyama Limba
1013Rodrigues B GauchoAustralia2026-08-02Feiner Bros UNQUALIFIED70Amy Elsner
1014Wickens T GauchoRussia2026-07-30Dorl, James J Esq NEW46Ioni Bowcher
1015Morrow A PaprockiAustralia2026-07-27Buckley Miller Wright PROPOSAL16Elwin Sharvill
1016Ashley V MacleadRussia2026-07-25Feltz Printing Service UNQUALIFIED11Onyama Limba
1017Tony B CampainItaly2026-08-07Feltz Printing Service RENEWAL70Anna Fali
1018Salvatore F InouyeItaly2026-08-03King, Christopher A Esq UNQUALIFIED4Bernardo Dominic
1019Francesco N AlbaresAustralia2026-08-05King, Christopher A Esq PROPOSAL86Asiya Javayant
1020Octavia L NestleGermany2026-07-28Feltz Printing Service RENEWAL0Stephen Shaw
1021Smith T TollnerSpain2026-07-25Feltz Printing Service NEW82Bernardo Dominic
1022Cody M StockhamAustralia2026-08-10Feiner Bros PROPOSAL44Anna Fali
1023Ricardo H DarakjyGermany2026-08-12Rangoni Of Florence NEW18Ioni Bowcher
1024Ivar F WieserGermany2026-07-24Rousseaux, Michael Esq NEW25Ioni Bowcher
1025Sinclair F OstroskyGermany2026-08-14Chanay, Jeffrey A Esq NEW30Onyama Limba
1026James E AlbaresAustralia2026-08-14Rangoni Of Florence NEW35Onyama Limba
1027Murillo Y MorascaJapan2026-07-24Chemel, James L Cpa NEW21Asiya Javayant
1028Adams S FlosiSpain2026-08-16Dorl, James J Esq QUALIFIED34Ivan Magalhaes
1029Deepesh R CampainAustralia2026-08-14Feiner Bros PROPOSAL62Ioni Bowcher
1030Arvin I RimUnited Kingdom2026-08-20Commercial Press QUALIFIED56Bernardo Dominic
1031Silvio J DilliardArgentina2026-08-16Morlong Associates NEW3Anna Fali
1032Ivar T DarakjyCanada2026-08-06Rangoni Of Florence PROPOSAL65Ioni Bowcher
1033Isabel W ChuiUnited Kingdom2026-08-03Morlong Associates RENEWAL45Asiya Javayant
1034Alejandro Y MacleadAustralia2026-08-13Buckley Miller Wright RENEWAL58Onyama Limba
1035Aruna P BologniaFrance2026-08-17Feltz Printing Service PROPOSAL92Stephen Shaw
1036Octavia L CaudySpain2026-08-18Benton, John B Jr QUALIFIED1Anna Fali
1037Johnson Z MaletUnited Kingdom2026-08-12Printing Dimensions QUALIFIED61Stephen Shaw
1038Deepesh Z NickaSpain2026-07-28Benton, John B Jr NEGOTIATION32Anna Fali
1039Sinclair T MacleadIndia2026-07-24Dorl, James J Esq RENEWAL32Anna Fali
1040David F MacleadRussia2026-08-11Chemel, James L Cpa RENEWAL14Elwin Sharvill
1041Wickens E InouyeAustralia2026-07-26Dorl, James J Esq PROPOSAL49Xuxue Feng
1042Aruna Y SchemmerRussia2026-08-18Rangoni Of Florence PROPOSAL61Asiya Javayant
1043Ivar S IturbideRussia2026-07-30Chanay, Jeffrey A Esq PROPOSAL48Amy Elsner
1044Cody W TollnerIndia2026-08-03Rousseaux, Michael Esq QUALIFIED88Ioni Bowcher
1045Mujtaba M RoysterSpain2026-08-07Chemel, James L Cpa RENEWAL40Stephen Shaw
1046Tony S OstroskyFrance2026-08-05Morlong Associates RENEWAL81Anna Fali
1047Leja F NestleBrazil2026-08-10Chanay, Jeffrey A Esq NEW18Ioni Bowcher
1048Alejandro N NestleBrazil2026-07-26Commercial Press NEGOTIATION39Anna Fali
1049Ashley R GillianSpain2026-08-03Rangoni Of Florence NEW88Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Nicolas F MarrierCanadaAsiya Javayant NEGOTIATION
Nicolas F PoquetteFranceIoni Bowcher NEGOTIATION
Leja W CaudyUnited KingdomAmy Elsner PROPOSAL
Cody F PaprockiIndiaElwin Sharvill UNQUALIFIED
Sinclair J FerenczUnited KingdomBernardo Dominic RENEWAL
Alejandro R AmigonGermanyIvan Magalhaes NEGOTIATION
Costa X BologniaJapanElwin Sharvill UNQUALIFIED
Clifford M DarakjyItalyElwin Sharvill UNQUALIFIED
Izzy B KolmetzCanadaBernardo Dominic NEW
Maria F WieserIndiaAsiya Javayant RENEWAL
Mujtaba Q FigeroaItalyXuxue Feng NEW
Aika A RutaCanadaOnyama Limba NEGOTIATION
Octavia D GauchoSpainOnyama Limba NEW
Stacey P StensethBrazilAnna Fali RENEWAL
Maria S GillianCanadaAmy Elsner QUALIFIED
Octavia O FollerSpainXuxue Feng PROPOSAL
Isabel J BriddickArgentinaStephen Shaw RENEWAL
Mayumi T RimIndiaAnna Fali QUALIFIED
Rodrigues G GillianItalyElwin Sharvill UNQUALIFIED
Octavia Y ShinkoFranceAmy Elsner RENEWAL
Faith J BowleyAustraliaOnyama Limba RENEWAL
Faith C DilliardCanadaAmy Elsner UNQUALIFIED
Ricardo I FollerUnited KingdomAsiya Javayant PROPOSAL
Izzy B PaprockiCanadaBernardo Dominic NEW
Rodrigues O RoysterFranceAnna Fali RENEWAL
Kaitlin V DarakjyAustraliaAmy Elsner RENEWAL
Ivar K RulapaughFranceBernardo Dominic NEGOTIATION
Silvio N AlbaresRussiaAsiya Javayant UNQUALIFIED
Rodrigues B RulapaughFranceElwin Sharvill QUALIFIED
Leja Q StensethIndiaElwin Sharvill RENEWAL
Wickens N DilliardRussiaAsiya Javayant QUALIFIED
Claire Z SlusarskiRussiaXuxue Feng UNQUALIFIED
Johnson X OstroskyJapanAsiya Javayant PROPOSAL
Costa L AlbaresBrazilAnna Fali NEGOTIATION
Faith G OldroydUnited KingdomAmy Elsner UNQUALIFIED
Isabel C FlosiItalyElwin Sharvill RENEWAL
Stacey Y DarakjyJapanOnyama Limba UNQUALIFIED
Salvatore V RimJapanOnyama Limba NEW
Adams P SlusarskiItalyAnna Fali QUALIFIED
Sinclair F ShinkoJapanAmy Elsner NEW
Nicolas R GarufiFranceAmy Elsner NEGOTIATION
Salvatore L RutaGermanyAnna Fali QUALIFIED
Kadeem Q StensethJapanBernardo Dominic QUALIFIED
Greenwood J DoeIndiaAnna Fali UNQUALIFIED
Cody A VenereBrazilAmy Elsner NEW
Octavia E GauchoSpainAnna Fali PROPOSAL
Aika W SchemmerFranceElwin Sharvill NEGOTIATION
Julie B GlickGermanyElwin Sharvill NEW
Chavez S PoquetteCanadaAsiya Javayant NEW
Kadeem W StensethRussiaElwin Sharvill QUALIFIED
Frozen Columns
Name
Darci Y Sergi
Stacey F Bowley
Chavez J Perin
Stacey R Foller
Greenwood K Rulapaugh
Johnson V Oldroyd
Emily N Venere
Tony P Perin
Salvatore P Morasca
Murillo M Malet
Mujtaba T Nestle
Darci B Gillian
Claire G Venere
Ivar S Tollner
Darci B Poquette
James H Ostrosky
Jennifer S Vocelka
David C Bowley
Greenwood V Iturbide
Julie T Tollner
Sinclair U Ruta
Misaki K Foller
Tony F Ferencz
Greenwood P Venere
Leon V Campain
Ivar M Waycott
Emily R Caldarera
Alejandro E Shinko
Francesco M Wieser
Ashley R Maclead
Rodrigues L Iturbide
Chavez F Iturbide
Munro O Albares
Aruna Z Poquette
Smith J Flosi
Wickens P Foller
Julie L Stenseth
Greenwood E Ostrosky
Octavia H Maclead
Mayumi G Poquette
Sinclair N Waycott
Emily F Vocelka
Julie H Albares
Chavez K Kolmetz
Aruna Q Slusarski
Ricardo P Waycott
Claire K Nestle
Adams F Malet
Alejandro Y Marrier
Chavez M Paprocki
IdCountryDate
1000France2026-08-10
1001Brazil2026-08-13
1002Australia2026-08-14
1003Argentina2026-08-17
1004Spain2026-08-09
1005Australia2026-08-20
1006Japan2026-07-30
1007India2026-08-15
1008Canada2026-08-05
1009Australia2026-08-02
1010United Kingdom2026-07-26
1011Argentina2026-08-21
1012India2026-08-16
1013Russia2026-08-20
1014Italy2026-08-10
1015Italy2026-07-29
1016Germany2026-08-13
1017France2026-08-12
1018Brazil2026-08-07
1019India2026-08-19
1020United Kingdom2026-08-05
1021Japan2026-08-03
1022Argentina2026-08-15
1023Russia2026-08-18
1024Spain2026-08-21
1025Japan2026-08-15
1026Italy2026-08-15
1027Russia2026-08-14
1028Argentina2026-08-11
1029Canada2026-08-14
1030Brazil2026-08-04
1031Russia2026-07-25
1032India2026-08-05
1033Spain2026-08-19
1034Russia2026-08-07
1035Canada2026-08-19
1036Brazil2026-08-19
1037France2026-08-08
1038United Kingdom2026-08-07
1039Spain2026-08-21
1040Spain2026-08-01
1041Japan2026-08-19
1042Australia2026-07-27
1043Spain2026-08-13
1044Spain2026-07-31
1045Germany2026-08-15
1046Japan2026-08-01
1047Germany2026-08-06
1048India2026-08-03
1049United Kingdom2026-08-05

On-Demand Data

NameIdCountryDate
Arvin N Vocelka1000Germany2026-08-10
Rodrigues J Marrier1001Canada2026-07-26
Ricardo Q Royster1002France2026-08-03
Francesco W Figeroa1003France2026-08-02
Jeanfrancois H Vocelka1004Australia2026-08-12
Misaki N Nestle1005Canada2026-08-21
Johnson M Caudy1006Australia2026-08-06
Isabel P Dilliard1007United Kingdom2026-08-17
Izzy F Saylors1008India2026-07-28
Kaitlin H Vocelka1009Italy2026-08-03
Aditya C Oldroyd1010Argentina2026-08-06
Maria M Foller1011Brazil2026-08-01
Kaitlin C Darakjy1012Italy2026-07-28
Leon O Figeroa1013France2026-08-18
Silvio C Darakjy1014Germany2026-08-22
Smith U Inouye1015Spain2026-07-29
David J Chui1016Spain2026-08-02
Francesco O Dilliard1017Spain2026-08-18
Tony T Bowley1018Italy2026-08-21
Mujtaba W Caudy1019Brazil2026-07-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin G WhobreyBrazilAnna Fali QUALIFIED
Nicolas M FollerGermanyStephen Shaw QUALIFIED
Juan E IturbideSpainBernardo Dominic PROPOSAL
Ivar S KolmetzAustraliaXuxue Feng PROPOSAL
Nicolas G RutaSpainOnyama Limba QUALIFIED
Nicolas S BowleyIndiaAsiya Javayant QUALIFIED
Leon O PoquetteGermanyBernardo Dominic UNQUALIFIED
Isabel J RutaCanadaStephen Shaw UNQUALIFIED
Adams R CampainJapanAnna Fali NEGOTIATION
Jones Z GarufiGermanyElwin Sharvill NEGOTIATION
Johnson T NestleArgentinaIoni Bowcher NEGOTIATION
Clifford M IturbideGermanyAnna Fali RENEWAL
Ivar I GauchoBrazilBernardo Dominic NEGOTIATION
Morrow X SchemmerCanadaAsiya Javayant NEW
Octavia Y OstroskyFranceIvan Magalhaes PROPOSAL
Faith L DoeGermanyIvan Magalhaes PROPOSAL
Julie Z CaldareraRussiaAsiya Javayant NEGOTIATION
Kaitlin I NickaCanadaStephen Shaw RENEWAL
Jeanfrancois A DoeJapanAnna Fali PROPOSAL
Faith W GarufiRussiaXuxue Feng RENEWAL
Jones T CaldareraFranceAsiya Javayant UNQUALIFIED
Isabel N FollerIndiaIoni Bowcher PROPOSAL
Johnson F KuskoItalyOnyama Limba NEW
Octavia O ShinkoUnited KingdomAmy Elsner PROPOSAL
Adams P ShinkoAustraliaXuxue Feng PROPOSAL
Costa P WaycottRussiaXuxue Feng QUALIFIED
Murillo X PoquetteRussiaAmy Elsner NEGOTIATION
Mujtaba G NestleIndiaAsiya Javayant PROPOSAL
Greenwood U ShinkoItalyBernardo Dominic NEGOTIATION
Clifford I StensethUnited KingdomIvan Magalhaes UNQUALIFIED
Emily C GillianItalyAmy Elsner NEW
Adams I VenereArgentinaIvan Magalhaes QUALIFIED
Sinclair V DarakjyIndiaIoni Bowcher NEGOTIATION
Clifford W DoeRussiaAmy Elsner RENEWAL
Maisha F SaylorsIndiaIoni Bowcher PROPOSAL
Izzy G MaletGermanyOnyama Limba UNQUALIFIED
Aruna K DoeCanadaBernardo Dominic UNQUALIFIED
Morrow L MacleadSpainAsiya Javayant RENEWAL
Rodrigues V CaudyFranceIoni Bowcher PROPOSAL
Alejandro C CaldareraSpainBernardo Dominic NEW

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