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
Wickens M NickaItalyStephen Shaw NEGOTIATION
Isabel A CaudyJapanAsiya Javayant NEGOTIATION
Aika R CampainBrazilAnna Fali NEW
Ivar H GarufiBrazilAmy Elsner QUALIFIED
Sinclair G SchemmerSpainIvan Magalhaes NEGOTIATION
Jennifer Q SaylorsBrazilStephen Shaw RENEWAL
Maisha U SergiFranceAsiya Javayant QUALIFIED
Mayumi A BriddickAustraliaAnna Fali PROPOSAL
James N CaudyBrazilIoni Bowcher UNQUALIFIED
Arvin U InouyeJapanXuxue Feng PROPOSAL
Jeanfrancois Q WieserJapanAsiya Javayant NEW
Costa J RulapaughJapanAnna Fali NEW
Aditya B FigeroaIndiaXuxue Feng NEW
Jeanfrancois I StensethFranceOnyama Limba QUALIFIED
Mujtaba W FlosiRussiaIoni Bowcher RENEWAL
Tony G MorascaUnited KingdomBernardo Dominic NEW
Tony X WaycottAustraliaAsiya Javayant NEGOTIATION
Francesco R MaletBrazilAmy Elsner NEGOTIATION
Nicolas S PoquetteJapanAnna Fali RENEWAL
Maria J SergiFranceBernardo Dominic RENEWAL
Costa W GillianCanadaOnyama Limba PROPOSAL
Maria A MarrierAustraliaElwin Sharvill NEW
Julie H NickaJapanIoni Bowcher UNQUALIFIED
Nicolas S GarufiGermanyIoni Bowcher RENEWAL
Nicolas E VenereBrazilBernardo Dominic NEGOTIATION
Jones Y NestleJapanBernardo Dominic NEGOTIATION
Ricardo I GlickRussiaAmy Elsner RENEWAL
Sinclair N CaudyCanadaOnyama Limba UNQUALIFIED
Aditya F DilliardSpainOnyama Limba NEGOTIATION
Silvio V SaylorsAustraliaIoni Bowcher QUALIFIED
Faith F GarufiRussiaXuxue Feng PROPOSAL
Aditya S ChuiUnited KingdomElwin Sharvill PROPOSAL
Octavia K OldroydItalyElwin Sharvill NEW
Greenwood Y VocelkaSpainOnyama Limba UNQUALIFIED
Isabel S WieserFranceAsiya Javayant NEW
Izzy E ChuiCanadaAsiya Javayant QUALIFIED
Murillo H VenereIndiaXuxue Feng PROPOSAL
Aika C DarakjyGermanyXuxue Feng PROPOSAL
Emily G FollerCanadaOnyama Limba RENEWAL
Nicolas E NickaUnited KingdomAmy Elsner RENEWAL
Arvin C RoysterItalyAmy Elsner PROPOSAL
Juan E MaletGermanyStephen Shaw UNQUALIFIED
Jennifer H RutaArgentinaIvan Magalhaes PROPOSAL
Deepesh W BowleyArgentinaAnna Fali RENEWAL
Ashley F WhobreyRussiaStephen Shaw NEGOTIATION
Sinclair Z FollerIndiaAnna Fali NEW
Maria O NickaSpainAsiya Javayant NEW
Munro B FerenczSpainXuxue Feng UNQUALIFIED
Salvatore F WaycottJapanIoni Bowcher RENEWAL
Francesco S SlusarskiBrazilXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Isabel G RutaRussiaElwin Sharvill NEW
Kaitlin K InouyeSpainAnna Fali NEW
Adams Y BowleyGermanyIoni Bowcher UNQUALIFIED
Jones X BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Faith H CampainUnited KingdomIvan Magalhaes QUALIFIED
James Q MacleadBrazilAsiya Javayant QUALIFIED
James C CaudyBrazilIvan Magalhaes RENEWAL
Morrow P SaylorsIndiaBernardo Dominic PROPOSAL
Claire C WaycottCanadaXuxue Feng QUALIFIED
Claire S PerinJapanStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki P CampainRussia2026-08-03Rousseaux, Michael Esq PROPOSAL17Anna Fali
1001Aika P NickaBrazil2026-08-04Rousseaux, Michael Esq QUALIFIED43Amy Elsner
1002Jeanfrancois Y CaudyArgentina2026-07-09Buckley Miller Wright PROPOSAL87Ioni Bowcher
1003Claire B GillianItaly2026-07-18Feiner Bros NEGOTIATION74Elwin Sharvill
1004Misaki K InouyeIndia2026-07-18Chemel, James L Cpa UNQUALIFIED94Stephen Shaw
1005Nicolas A MacleadRussia2026-07-22Chapman, Ross E Esq PROPOSAL61Xuxue Feng
1006Rodrigues G BriddickIndia2026-07-08Feiner Bros QUALIFIED77Stephen Shaw
1007Tony J FigeroaUnited Kingdom2026-07-09Morlong Associates NEW56Anna Fali
1008Maisha J MacleadGermany2026-07-22Rangoni Of Florence UNQUALIFIED39Ivan Magalhaes
1009Leon W CaldareraUnited Kingdom2026-07-17King, Christopher A Esq UNQUALIFIED50Xuxue Feng
1010Johnson N InouyeIndia2026-08-02Buckley Miller Wright NEW79Amy Elsner
1011James O NestleItaly2026-07-09Feiner Bros NEW0Ioni Bowcher
1012Darci D ShinkoItaly2026-07-23Dorl, James J Esq RENEWAL72Bernardo Dominic
1013Ashley N GillianUnited Kingdom2026-08-03Rousseaux, Michael Esq UNQUALIFIED50Bernardo Dominic
1014Deepesh L RulapaughRussia2026-08-03Truhlar And Truhlar Attys QUALIFIED10Anna Fali
1015Ricardo G ChuiBrazil2026-07-28Rousseaux, Michael Esq NEW31Onyama Limba
1016Salvatore S DilliardIndia2026-07-26Buckley Miller Wright UNQUALIFIED81Anna Fali
1017Emily B ButtBrazil2026-07-22Rousseaux, Michael Esq QUALIFIED16Onyama Limba
1018Juan P ButtJapan2026-07-22Morlong Associates QUALIFIED14Elwin Sharvill
1019Kaitlin D StockhamSpain2026-07-23Printing Dimensions UNQUALIFIED90Stephen Shaw
1020Darci C AlbaresArgentina2026-07-18Chemel, James L Cpa UNQUALIFIED10Ioni Bowcher
1021Murillo P NickaUnited Kingdom2026-07-26Buckley Miller Wright UNQUALIFIED91Elwin Sharvill
1022Munro Z MorascaCanada2026-07-15Benton, John B Jr NEGOTIATION59Elwin Sharvill
1023Aditya L TollnerIndia2026-07-21Rousseaux, Michael Esq PROPOSAL31Xuxue Feng
1024Maria E GlickCanada2026-07-29Feiner Bros NEGOTIATION47Elwin Sharvill
1025Greenwood D FerenczIndia2026-08-04Chapman, Ross E Esq PROPOSAL97Elwin Sharvill
1026Silvio E AmigonCanada2026-07-24King, Christopher A Esq PROPOSAL79Ivan Magalhaes
1027Rodrigues F RulapaughJapan2026-07-12Buckley Miller Wright PROPOSAL99Xuxue Feng
1028Morrow E StockhamItaly2026-07-29Chemel, James L Cpa NEW51Stephen Shaw
1029Isabel Z AmigonJapan2026-07-28King, Christopher A Esq PROPOSAL99Ioni Bowcher
1030Aika I FlosiUnited Kingdom2026-07-26Chapman, Ross E Esq RENEWAL6Asiya Javayant
1031Jefferson P FerenczCanada2026-07-19Chemel, James L Cpa RENEWAL17Bernardo Dominic
1032Maria S WhobreyJapan2026-07-27Commercial Press NEGOTIATION51Stephen Shaw
1033Arvin L WaycottJapan2026-07-23Feiner Bros NEW87Asiya Javayant
1034Chavez U MacleadCanada2026-08-02Commercial Press UNQUALIFIED97Ivan Magalhaes
1035Faith S MacleadAustralia2026-07-27Rousseaux, Michael Esq NEW6Ioni Bowcher
1036Ivar H BologniaAustralia2026-07-31Dorl, James J Esq RENEWAL4Ioni Bowcher
1037Julie X MaletArgentina2026-08-03Rangoni Of Florence NEW42Onyama Limba
1038Clifford H PoquetteUnited Kingdom2026-08-04Dorl, James J Esq PROPOSAL83Xuxue Feng
1039Ivar X MaletSpain2026-07-07Benton, John B Jr NEGOTIATION7Asiya Javayant
1040Morrow E AlbaresSpain2026-07-24Chapman, Ross E Esq NEW65Bernardo Dominic
1041Murillo C WhobreyBrazil2026-07-19Rangoni Of Florence NEW84Stephen Shaw
1042Murillo K BriddickUnited Kingdom2026-07-11Rousseaux, Michael Esq NEW50Bernardo Dominic
1043Ashley D WhobreyRussia2026-07-07Truhlar And Truhlar Attys UNQUALIFIED27Ivan Magalhaes
1044Maisha K BowleyRussia2026-07-29Chanay, Jeffrey A Esq RENEWAL52Xuxue Feng
1045Aika Z VocelkaFrance2026-07-30Buckley Miller Wright QUALIFIED23Xuxue Feng
1046Aruna O WaycottUnited Kingdom2026-07-10Chemel, James L Cpa PROPOSAL45Elwin Sharvill
1047Arvin X MaletSpain2026-07-25Printing Dimensions RENEWAL46Ioni Bowcher
1048Sinclair H CaudyBrazil2026-07-09Benton, John B Jr RENEWAL78Bernardo Dominic
1049Ashley D GauchoJapan2026-07-13Chanay, Jeffrey A Esq QUALIFIED77Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Tony C WieserBrazilAmy Elsner NEW
Kadeem M CaldareraUnited KingdomAmy Elsner NEW
Johnson S CaudyJapanElwin Sharvill QUALIFIED
Deepesh H FollerCanadaIvan Magalhaes UNQUALIFIED
Juan F PerinRussiaStephen Shaw UNQUALIFIED
Jennifer J GillianCanadaBernardo Dominic NEW
Murillo U GarufiIndiaAnna Fali UNQUALIFIED
Munro X BowleyItalyXuxue Feng RENEWAL
Maria L VenereGermanyBernardo Dominic UNQUALIFIED
Maria Y VenereAustraliaIvan Magalhaes NEGOTIATION
Octavia A SergiSpainAmy Elsner RENEWAL
Silvio X KuskoBrazilOnyama Limba PROPOSAL
Ivar U VocelkaSpainAnna Fali UNQUALIFIED
Rodrigues X RutaSpainElwin Sharvill UNQUALIFIED
Tony B KuskoFranceBernardo Dominic UNQUALIFIED
Izzy L KuskoSpainOnyama Limba QUALIFIED
David U ChuiUnited KingdomElwin Sharvill PROPOSAL
Maria L PoquetteSpainIvan Magalhaes UNQUALIFIED
Antonio J KolmetzGermanyAmy Elsner NEW
Jennifer Q KolmetzAustraliaAmy Elsner NEGOTIATION
Aika U SergiIndiaBernardo Dominic NEGOTIATION
Mayumi O MaletBrazilBernardo Dominic PROPOSAL
Maria H OldroydBrazilAsiya Javayant PROPOSAL
Murillo I GillianIndiaIvan Magalhaes RENEWAL
Salvatore A NickaSpainElwin Sharvill NEW
Kaitlin B GarufiJapanAnna Fali RENEWAL
Johnson D GarufiAustraliaIvan Magalhaes PROPOSAL
Aditya V VenereGermanyAmy Elsner PROPOSAL
Nicolas U FlosiCanadaIvan Magalhaes PROPOSAL
Costa X StensethUnited KingdomAmy Elsner NEGOTIATION
Murillo O RoysterJapanIvan Magalhaes UNQUALIFIED
Aika M DoeUnited KingdomOnyama Limba NEGOTIATION
Leon X GillianGermanyIoni Bowcher NEW
Jones I IturbideItalyStephen Shaw NEGOTIATION
James W FerenczRussiaAmy Elsner UNQUALIFIED
Ricardo L KuskoJapanAmy Elsner PROPOSAL
Clifford U WaycottAustraliaStephen Shaw RENEWAL
Aditya M AmigonRussiaIoni Bowcher PROPOSAL
Adams P MorascaJapanElwin Sharvill QUALIFIED
Wickens U FollerFranceStephen Shaw NEGOTIATION
Deepesh W PoquetteFranceIvan Magalhaes NEGOTIATION
Clifford W NickaCanadaStephen Shaw NEW
Aditya N RutaSpainXuxue Feng NEW
James H RulapaughCanadaAmy Elsner NEGOTIATION
Maisha W MorascaRussiaOnyama Limba QUALIFIED
Jones S RimBrazilXuxue Feng NEGOTIATION
Ricardo B FollerSpainXuxue Feng UNQUALIFIED
Leon C FigeroaRussiaElwin Sharvill RENEWAL
Wickens A RutaAustraliaAmy Elsner NEGOTIATION
James R ButtIndiaStephen Shaw RENEWAL
Frozen Columns
Name
Izzy C Dilliard
Leon Y Saylors
Stacey T Nicka
James T Venere
Morrow R Royster
Smith G Figeroa
Mayumi E Morasca
Mujtaba G Caudy
Morrow U Flosi
David Z Ferencz
Leja T Vocelka
Munro T Flosi
Mayumi K Rim
Jones P Shinko
Stacey H Iturbide
Ashley I Slusarski
Jeanfrancois Z Oldroyd
Jennifer W Tollner
Arvin V Royster
Ivar X Briddick
Izzy H Iturbide
Ivar C Chui
Smith Q Vocelka
Claire L Marrier
Clifford A Malet
Mujtaba H Rim
Maria C Oldroyd
Julie P Flosi
Cody A Kolmetz
Faith Z Caudy
Leja T Ferencz
Emily Y Tollner
Nicolas E Nicka
Misaki Z Nestle
Johnson Z Rulapaugh
Arvin I Ostrosky
Kaitlin C Ostrosky
Deepesh Z Gaucho
Murillo C Campain
Octavia E Schemmer
Emily L Figeroa
Salvatore N Vocelka
Kaitlin I Darakjy
Aika I Nicka
Juan L Saylors
Tony O Royster
Claire Q Kolmetz
Greenwood T Saylors
Nicolas N Dilliard
Johnson T Gaucho
IdCountryDate
1000Japan2026-07-20
1001Russia2026-08-04
1002Argentina2026-07-26
1003Brazil2026-07-16
1004Australia2026-07-28
1005Germany2026-07-18
1006Germany2026-07-22
1007United Kingdom2026-07-27
1008Brazil2026-07-07
1009United Kingdom2026-07-18
1010India2026-07-28
1011Canada2026-07-23
1012Canada2026-08-02
1013Spain2026-07-16
1014Argentina2026-07-22
1015France2026-07-13
1016Brazil2026-07-22
1017France2026-07-11
1018France2026-07-19
1019Australia2026-07-18
1020France2026-07-18
1021Italy2026-07-17
1022India2026-07-15
1023Australia2026-07-31
1024France2026-07-06
1025Russia2026-07-23
1026Brazil2026-07-29
1027Italy2026-07-13
1028Brazil2026-07-29
1029United Kingdom2026-07-29
1030Spain2026-07-22
1031Japan2026-07-11
1032France2026-07-29
1033France2026-07-28
1034Canada2026-07-29
1035Argentina2026-07-24
1036Russia2026-07-11
1037Canada2026-07-28
1038Spain2026-07-24
1039Canada2026-07-12
1040Australia2026-07-11
1041Canada2026-07-11
1042Argentina2026-07-06
1043Germany2026-07-13
1044Russia2026-07-30
1045India2026-07-23
1046Italy2026-07-13
1047Brazil2026-07-19
1048Argentina2026-07-21
1049India2026-07-14

On-Demand Data

NameIdCountryDate
Johnson X Ruta1000Spain2026-07-08
Kaitlin E Iturbide1001Brazil2026-07-28
Silvio M Tollner1002Brazil2026-07-10
Cody S Malet1003France2026-07-14
Isabel E Gaucho1004Spain2026-07-08
Jeanfrancois E Garufi1005Russia2026-07-25
Mayumi F Shinko1006India2026-07-30
Adams S Rim1007Italy2026-07-28
Emily R Chui1008Brazil2026-07-22
Ashley N Inouye1009Italy2026-07-11
Jones N Oldroyd1010Italy2026-07-19
Maisha K Shinko1011United Kingdom2026-07-18
Octavia Q Kolmetz1012Italy2026-07-06
Tony A Gillian1013Germany2026-07-25
Arvin E Tollner1014Canada2026-07-16
Isabel H Royster1015Argentina2026-07-16
Ashley J Maclead1016Germany2026-07-06
Jones R Rim1017Japan2026-07-20
Ashley I Bowley1018Brazil2026-07-28
Cody I Whobrey1019Australia2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony M RulapaughCanadaElwin Sharvill NEW
Johnson P NickaCanadaIoni Bowcher NEW
Kaitlin X StockhamIndiaBernardo Dominic NEW
Costa O RoysterBrazilStephen Shaw NEW
Aruna M RutaArgentinaAsiya Javayant QUALIFIED
Chavez O CaldareraRussiaOnyama Limba NEGOTIATION
Stacey D TollnerSpainAsiya Javayant PROPOSAL
Leon W MorascaItalyAsiya Javayant UNQUALIFIED
Deepesh P RulapaughIndiaXuxue Feng PROPOSAL
Smith P RutaIndiaOnyama Limba RENEWAL
Sinclair Q FerenczSpainAnna Fali QUALIFIED
David B DilliardJapanXuxue Feng UNQUALIFIED
Darci W RoysterRussiaIvan Magalhaes NEW
Juan H StensethIndiaAmy Elsner NEW
Morrow Q MaletFranceElwin Sharvill RENEWAL
Arvin Y FerenczArgentinaBernardo Dominic UNQUALIFIED
Juan G CaldareraCanadaIoni Bowcher PROPOSAL
Faith O AlbaresJapanXuxue Feng NEW
Antonio P WaycottBrazilOnyama Limba NEGOTIATION
Francesco J ButtArgentinaXuxue Feng NEGOTIATION
Arvin R DoeFranceStephen Shaw PROPOSAL
Greenwood X FigeroaJapanBernardo Dominic NEW
Nicolas S BologniaAustraliaIvan Magalhaes NEW
Adams X IturbideRussiaAmy Elsner NEGOTIATION
Stacey J BriddickRussiaAnna Fali RENEWAL
Isabel F MaletCanadaIvan Magalhaes NEGOTIATION
Silvio I MaletItalyAsiya Javayant NEGOTIATION
Munro Y SchemmerArgentinaOnyama Limba UNQUALIFIED
Leja X VocelkaCanadaAmy Elsner NEGOTIATION
Munro P SergiJapanBernardo Dominic NEGOTIATION
Mayumi W MarrierArgentinaIvan Magalhaes PROPOSAL
Clifford Z PerinGermanyIvan Magalhaes NEW
Izzy R SergiJapanStephen Shaw RENEWAL
Julie O FollerSpainXuxue Feng NEGOTIATION
Kaitlin I OstroskyCanadaAmy Elsner PROPOSAL
Juan O GauchoSpainIvan Magalhaes NEW
Arvin E OstroskyGermanyElwin Sharvill NEW
Murillo H SlusarskiUnited KingdomIvan Magalhaes NEW
Clifford D SlusarskiItalyBernardo Dominic PROPOSAL
Aika S SlusarskiRussiaBernardo Dominic RENEWAL

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