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
Aika V BriddickRussiaIoni Bowcher RENEWAL
Octavia W KuskoRussiaAsiya Javayant NEW
Murillo N FlosiFranceXuxue Feng NEGOTIATION
Faith Y FigeroaFranceElwin Sharvill PROPOSAL
Izzy D KolmetzCanadaBernardo Dominic NEW
Silvio K MaletUnited KingdomIoni Bowcher NEGOTIATION
Arvin R IturbideJapanIvan Magalhaes UNQUALIFIED
Faith L PerinGermanyXuxue Feng PROPOSAL
Emily K BologniaArgentinaAsiya Javayant NEGOTIATION
Clifford N FlosiSpainBernardo Dominic NEW
Costa Y PaprockiArgentinaBernardo Dominic NEGOTIATION
Greenwood M PerinRussiaIoni Bowcher NEGOTIATION
Ivar I BowleyItalyElwin Sharvill UNQUALIFIED
Murillo H GlickAustraliaStephen Shaw RENEWAL
James H PerinCanadaAsiya Javayant UNQUALIFIED
Stacey L VenereBrazilOnyama Limba UNQUALIFIED
Mayumi T SchemmerArgentinaAsiya Javayant NEW
Smith J BologniaArgentinaIvan Magalhaes PROPOSAL
Nicolas Z CaudyArgentinaAsiya Javayant QUALIFIED
Jefferson E KolmetzAustraliaIoni Bowcher QUALIFIED
Antonio E MaletSpainOnyama Limba RENEWAL
Munro C RulapaughGermanyAnna Fali RENEWAL
Kadeem F GlickBrazilAmy Elsner UNQUALIFIED
Sinclair J OstroskyGermanyAsiya Javayant NEGOTIATION
Jeanfrancois J OldroydAustraliaIoni Bowcher RENEWAL
Jefferson J InouyeJapanStephen Shaw PROPOSAL
Ivar T StensethJapanOnyama Limba PROPOSAL
Wickens V SlusarskiJapanIoni Bowcher RENEWAL
Jones R ChuiGermanyIoni Bowcher UNQUALIFIED
Ivar M StockhamFranceElwin Sharvill RENEWAL
Clifford K OldroydSpainStephen Shaw NEW
Munro G RimItalyAnna Fali NEGOTIATION
Mujtaba I RimJapanOnyama Limba NEGOTIATION
Clifford N FollerRussiaXuxue Feng RENEWAL
Faith H VenereSpainXuxue Feng NEGOTIATION
Emily E SchemmerFranceIvan Magalhaes PROPOSAL
Chavez J RimCanadaBernardo Dominic UNQUALIFIED
Kaitlin G GauchoBrazilAnna Fali NEGOTIATION
Adams U DoeAustraliaAnna Fali NEW
Deepesh P AlbaresArgentinaIoni Bowcher UNQUALIFIED
Murillo M MarrierIndiaAsiya Javayant NEGOTIATION
Emily T ShinkoIndiaAnna Fali NEW
Leon N FollerRussiaElwin Sharvill PROPOSAL
Ivar Y TollnerRussiaBernardo Dominic NEGOTIATION
Aika H KuskoRussiaIoni Bowcher PROPOSAL
James X BowleyJapanIoni Bowcher QUALIFIED
James W AmigonArgentinaStephen Shaw RENEWAL
Nicolas D PaprockiAustraliaIoni Bowcher UNQUALIFIED
Silvio Q StockhamAustraliaIvan Magalhaes RENEWAL
Izzy I GlickCanadaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Kaitlin C RutaIndiaStephen Shaw QUALIFIED
Mujtaba Z FigeroaItalyOnyama Limba NEGOTIATION
Francesco D TollnerItalyIoni Bowcher UNQUALIFIED
Izzy I KuskoArgentinaIoni Bowcher NEW
Tony O SaylorsRussiaAsiya Javayant NEGOTIATION
Ashley K FerenczFranceAsiya Javayant RENEWAL
Ivar Z GarufiGermanyElwin Sharvill PROPOSAL
Aika C MaletUnited KingdomXuxue Feng QUALIFIED
Leon V StockhamArgentinaAsiya Javayant RENEWAL
Arvin W RutaUnited KingdomXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa Q CaudyJapan2026-06-16Benton, John B Jr NEW94Elwin Sharvill
1001Darci U DilliardJapan2026-07-08Rangoni Of Florence UNQUALIFIED71Xuxue Feng
1002Ashley Q DilliardIndia2026-06-22Benton, John B Jr PROPOSAL71Anna Fali
1003Nicolas P RutaAustralia2026-07-02Chemel, James L Cpa NEW4Onyama Limba
1004Leon K OldroydSpain2026-06-16Printing Dimensions QUALIFIED83Onyama Limba
1005James T WieserFrance2026-06-23Buckley Miller Wright PROPOSAL80Xuxue Feng
1006Antonio H OldroydSpain2026-06-12Rangoni Of Florence NEGOTIATION74Ivan Magalhaes
1007Leja V BowleyGermany2026-06-18King, Christopher A Esq PROPOSAL37Ivan Magalhaes
1008Jeanfrancois E FollerJapan2026-07-02Truhlar And Truhlar Attys NEW90Anna Fali
1009Nicolas P GauchoAustralia2026-06-21Commercial Press PROPOSAL77Stephen Shaw
1010Munro Y StockhamJapan2026-06-30Benton, John B Jr NEGOTIATION84Elwin Sharvill
1011Stacey K BologniaBrazil2026-06-23Rangoni Of Florence NEW81Elwin Sharvill
1012Maisha N KolmetzCanada2026-06-24Morlong Associates NEW54Elwin Sharvill
1013Maria M WieserJapan2026-07-04Chapman, Ross E Esq NEW40Stephen Shaw
1014Ashley Q RoysterUnited Kingdom2026-06-26Morlong Associates RENEWAL76Elwin Sharvill
1015Maisha H ChuiFrance2026-06-11Chapman, Ross E Esq RENEWAL31Ioni Bowcher
1016Emily S NestleJapan2026-06-24Feiner Bros PROPOSAL40Xuxue Feng
1017Ricardo F IturbideAustralia2026-06-22Commercial Press UNQUALIFIED41Stephen Shaw
1018Morrow U OldroydSpain2026-06-17Chapman, Ross E Esq NEGOTIATION9Ioni Bowcher
1019Maisha C MaletUnited Kingdom2026-06-27Rangoni Of Florence NEGOTIATION43Amy Elsner
1020James L WieserRussia2026-06-20Feltz Printing Service PROPOSAL45Asiya Javayant
1021Mayumi H RimAustralia2026-06-15Chemel, James L Cpa UNQUALIFIED45Elwin Sharvill
1022Murillo B WhobreyGermany2026-06-09Rangoni Of Florence RENEWAL91Elwin Sharvill
1023Octavia Z SlusarskiAustralia2026-06-19Buckley Miller Wright UNQUALIFIED5Amy Elsner
1024Chavez L BologniaJapan2026-07-07Chanay, Jeffrey A Esq PROPOSAL10Onyama Limba
1025Jennifer H RoysterArgentina2026-06-10Chanay, Jeffrey A Esq PROPOSAL97Ivan Magalhaes
1026Silvio X WaycottUnited Kingdom2026-07-05Commercial Press UNQUALIFIED27Anna Fali
1027Clifford A CampainArgentina2026-07-02Chapman, Ross E Esq NEW17Elwin Sharvill
1028Juan M GlickAustralia2026-06-20King, Christopher A Esq QUALIFIED52Xuxue Feng
1029Jennifer N GillianArgentina2026-06-16Printing Dimensions NEW26Elwin Sharvill
1030Morrow U DoeBrazil2026-07-02Dorl, James J Esq PROPOSAL26Onyama Limba
1031Antonio J NestleBrazil2026-06-20Chanay, Jeffrey A Esq QUALIFIED83Anna Fali
1032Octavia T MarrierSpain2026-07-01Chemel, James L Cpa QUALIFIED0Xuxue Feng
1033Wickens V GarufiBrazil2026-06-15Printing Dimensions NEW87Bernardo Dominic
1034Antonio A InouyeJapan2026-06-25Chemel, James L Cpa NEW32Ivan Magalhaes
1035Leja B BriddickJapan2026-06-17Truhlar And Truhlar Attys RENEWAL57Asiya Javayant
1036Claire R MorascaIndia2026-06-13Rangoni Of Florence RENEWAL48Amy Elsner
1037Sinclair P AmigonItaly2026-06-12Chanay, Jeffrey A Esq NEW38Amy Elsner
1038Kadeem B PaprockiUnited Kingdom2026-06-14Rangoni Of Florence PROPOSAL61Ioni Bowcher
1039Claire F BowleyJapan2026-07-01Rangoni Of Florence UNQUALIFIED84Ioni Bowcher
1040Greenwood M PoquetteSpain2026-06-22Commercial Press QUALIFIED53Onyama Limba
1041Salvatore C CaudyJapan2026-06-25Rousseaux, Michael Esq UNQUALIFIED32Asiya Javayant
1042Cody G SlusarskiAustralia2026-07-05Commercial Press QUALIFIED95Bernardo Dominic
1043Sinclair Y FigeroaAustralia2026-06-29Feiner Bros UNQUALIFIED38Ivan Magalhaes
1044Munro R PerinUnited Kingdom2026-06-12Dorl, James J Esq PROPOSAL81Asiya Javayant
1045Antonio L DarakjyGermany2026-06-28Rousseaux, Michael Esq NEGOTIATION6Elwin Sharvill
1046Kaitlin V GauchoItaly2026-07-05Dorl, James J Esq RENEWAL55Ivan Magalhaes
1047Antonio O MarrierJapan2026-06-25Feiner Bros PROPOSAL68Bernardo Dominic
1048Ricardo D WhobreyBrazil2026-06-10Feiner Bros UNQUALIFIED35Onyama Limba
1049Adams K PoquetteFrance2026-06-28Chapman, Ross E Esq PROPOSAL44Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Costa N InouyeRussiaOnyama Limba UNQUALIFIED
Sinclair O MaletJapanXuxue Feng PROPOSAL
Darci X PerinGermanyStephen Shaw RENEWAL
Misaki Q TollnerBrazilElwin Sharvill NEGOTIATION
Francesco W StensethRussiaAsiya Javayant RENEWAL
Rodrigues U ChuiRussiaElwin Sharvill PROPOSAL
Maisha J MacleadItalyIvan Magalhaes NEW
Clifford A PoquetteArgentinaIvan Magalhaes UNQUALIFIED
Sinclair T ButtArgentinaBernardo Dominic QUALIFIED
Mayumi O MorascaSpainBernardo Dominic RENEWAL
Costa G TollnerGermanyElwin Sharvill NEGOTIATION
Johnson Q RutaArgentinaAnna Fali PROPOSAL
Ivar B MarrierIndiaAmy Elsner UNQUALIFIED
Claire B MorascaArgentinaAsiya Javayant PROPOSAL
Clifford A OstroskyCanadaIvan Magalhaes PROPOSAL
James R ChuiJapanAsiya Javayant RENEWAL
Cody W CampainIndiaAnna Fali NEW
Greenwood H OldroydSpainXuxue Feng NEW
Nicolas O StensethBrazilStephen Shaw UNQUALIFIED
Leja W FlosiGermanyOnyama Limba QUALIFIED
Chavez Q StensethFranceBernardo Dominic NEGOTIATION
Clifford M MaletSpainXuxue Feng RENEWAL
Francesco O DarakjyFranceXuxue Feng UNQUALIFIED
Francesco B GlickFranceElwin Sharvill QUALIFIED
Murillo L FigeroaCanadaAsiya Javayant NEGOTIATION
Alejandro D WaycottJapanBernardo Dominic NEGOTIATION
Izzy V VenereAustraliaElwin Sharvill UNQUALIFIED
Cody A ShinkoIndiaElwin Sharvill NEGOTIATION
Leja V BriddickCanadaStephen Shaw RENEWAL
Aika T SaylorsItalyElwin Sharvill NEW
Aruna J MacleadJapanElwin Sharvill RENEWAL
Wickens R InouyeIndiaAnna Fali PROPOSAL
Ashley K MacleadCanadaIvan Magalhaes NEGOTIATION
Misaki V VenereFranceOnyama Limba QUALIFIED
Rodrigues N RoysterSpainBernardo Dominic PROPOSAL
Ashley V PoquetteFranceOnyama Limba RENEWAL
Misaki O ChuiItalyOnyama Limba QUALIFIED
Faith U AlbaresJapanBernardo Dominic QUALIFIED
Darci Z MaletBrazilAmy Elsner NEW
Johnson Y RimBrazilOnyama Limba UNQUALIFIED
Jones P StensethFranceIvan Magalhaes RENEWAL
Arvin P MorascaRussiaIoni Bowcher NEW
Chavez B PerinUnited KingdomBernardo Dominic PROPOSAL
Aruna V GillianCanadaAsiya Javayant NEGOTIATION
Johnson R InouyeFranceAsiya Javayant PROPOSAL
Aruna W PerinBrazilIoni Bowcher UNQUALIFIED
Costa O KuskoArgentinaStephen Shaw UNQUALIFIED
Isabel S MacleadAustraliaElwin Sharvill RENEWAL
Darci Q WhobreyJapanAnna Fali NEW
Ricardo K CampainSpainIoni Bowcher NEW
Frozen Columns
Name
Aruna X Albares
Leja O Whobrey
Ashley I Albares
Silvio A Glick
Maria A Iturbide
Aruna S Poquette
Ricardo P Nestle
Leja I Stenseth
Munro W Maclead
Francesco D Whobrey
Claire W Flosi
Adams L Garufi
Alejandro B Ferencz
Antonio P Figeroa
Jennifer Z Bowley
Emily N Royster
Cody W Bowley
Aika N Stenseth
Kadeem H Caudy
Faith S Gillian
Deepesh S Bolognia
Sinclair G Royster
James B Paprocki
Chavez B Poquette
Greenwood V Caudy
Faith C Chui
Wickens B Stenseth
Maria U Shinko
Arvin C Glick
Smith R Campain
Mujtaba M Maclead
Kaitlin F Gillian
Adams X Malet
Tony K Royster
Silvio O Caudy
Claire Y Stockham
Deepesh L Sergi
Octavia N Stockham
Jeanfrancois S Amigon
Francesco T Doe
Ivar Q Kusko
Clifford A Marrier
David B Butt
Jefferson L Venere
Aruna J Caldarera
Smith W Malet
Nicolas C Shinko
Maisha G Ostrosky
Adams H Waycott
Emily Y Perin
IdCountryDate
1000Spain2026-06-10
1001India2026-07-05
1002India2026-06-22
1003India2026-07-01
1004France2026-06-21
1005France2026-06-23
1006Argentina2026-06-24
1007Brazil2026-06-10
1008Germany2026-07-01
1009Australia2026-06-22
1010France2026-06-21
1011India2026-06-30
1012Brazil2026-06-23
1013Spain2026-06-28
1014Russia2026-06-23
1015Japan2026-06-13
1016Russia2026-07-06
1017Russia2026-06-20
1018France2026-06-12
1019Argentina2026-07-03
1020Argentina2026-06-16
1021Japan2026-06-13
1022Spain2026-06-23
1023Canada2026-06-20
1024Canada2026-06-23
1025France2026-06-09
1026Italy2026-07-08
1027United Kingdom2026-06-29
1028Spain2026-06-14
1029France2026-06-28
1030Germany2026-06-17
1031Italy2026-06-30
1032United Kingdom2026-07-06
1033Russia2026-07-07
1034Australia2026-06-13
1035Japan2026-06-27
1036Brazil2026-07-06
1037Russia2026-06-26
1038Germany2026-07-02
1039Brazil2026-07-06
1040Spain2026-06-21
1041Germany2026-07-04
1042Spain2026-06-29
1043United Kingdom2026-06-17
1044France2026-06-25
1045Germany2026-06-10
1046India2026-07-08
1047Japan2026-07-03
1048Russia2026-06-20
1049Japan2026-06-24

On-Demand Data

NameIdCountryDate
Emily S Poquette1000India2026-06-15
Ivar S Caudy1001Italy2026-07-08
Johnson Y Marrier1002Italy2026-06-20
Mujtaba B Caldarera1003Germany2026-06-23
Cody Z Bolognia1004Argentina2026-06-23
Salvatore U Sergi1005Brazil2026-06-19
Wickens M Schemmer1006Japan2026-07-08
Leja L Gaucho1007Russia2026-06-13
Aika G Whobrey1008Spain2026-06-30
Munro U Caudy1009Brazil2026-06-20
Alejandro L Ferencz1010Argentina2026-07-05
Julie Y Maclead1011Canada2026-06-28
Francesco A Doe1012Brazil2026-07-08
Antonio J Garufi1013Russia2026-06-20
Claire D Poquette1014France2026-07-04
Cody O Iturbide1015United Kingdom2026-06-13
Julie S Tollner1016Germany2026-06-13
Greenwood K Kusko1017Brazil2026-06-16
Adams T Malet1018Russia2026-06-23
Morrow E Flosi1019Brazil2026-06-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna I ChuiAustraliaIoni Bowcher UNQUALIFIED
Claire D MacleadItalyBernardo Dominic UNQUALIFIED
Jones X VocelkaRussiaAnna Fali NEW
Clifford N WhobreyAustraliaOnyama Limba NEGOTIATION
Salvatore L TollnerItalyXuxue Feng UNQUALIFIED
Claire Z SaylorsGermanyIvan Magalhaes NEW
Johnson N ChuiArgentinaIoni Bowcher NEW
Julie V SchemmerFranceAsiya Javayant QUALIFIED
Aditya H AmigonRussiaAnna Fali RENEWAL
Ashley J CaudyJapanXuxue Feng RENEWAL
Sinclair K PerinUnited KingdomAsiya Javayant RENEWAL
Munro Z OldroydItalyIvan Magalhaes NEGOTIATION
Cody V SergiJapanIvan Magalhaes QUALIFIED
Kaitlin U MaletAustraliaAmy Elsner PROPOSAL
Aruna G GauchoBrazilElwin Sharvill UNQUALIFIED
Chavez N MaletCanadaXuxue Feng RENEWAL
Adams K GauchoAustraliaStephen Shaw NEW
Francesco E GarufiArgentinaIoni Bowcher QUALIFIED
Costa W GillianIndiaBernardo Dominic QUALIFIED
Octavia V KolmetzFranceIoni Bowcher RENEWAL
Isabel Q TollnerSpainAsiya Javayant RENEWAL
Jeanfrancois Y ChuiCanadaIoni Bowcher NEW
Aruna M SlusarskiCanadaOnyama Limba RENEWAL
Leon E CaudyIndiaAsiya Javayant NEW
Maisha J FerenczCanadaStephen Shaw UNQUALIFIED
Leja Y CaldareraArgentinaBernardo Dominic RENEWAL
Clifford U WieserSpainStephen Shaw RENEWAL
Sinclair L SergiBrazilXuxue Feng QUALIFIED
Stacey Z SlusarskiUnited KingdomStephen Shaw PROPOSAL
Sinclair Y FerenczSpainBernardo Dominic PROPOSAL
Mayumi V GlickFranceXuxue Feng NEW
Munro Z WhobreyCanadaBernardo Dominic QUALIFIED
David E NestleSpainAsiya Javayant QUALIFIED
David B GlickAustraliaElwin Sharvill UNQUALIFIED
Misaki B SergiGermanyIoni Bowcher QUALIFIED
Jeanfrancois Z OldroydIndiaAsiya Javayant QUALIFIED
Juan P SergiArgentinaBernardo Dominic UNQUALIFIED
Antonio J WieserFranceXuxue Feng PROPOSAL
Greenwood K GlickBrazilAnna Fali NEW
Aruna W IturbideFranceOnyama Limba PROPOSAL

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