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
Leja U GarufiItalyBernardo Dominic PROPOSAL
Emily Q CaudyAustraliaBernardo Dominic UNQUALIFIED
Antonio U PoquetteGermanyAnna Fali UNQUALIFIED
Darci Y RulapaughAustraliaBernardo Dominic NEW
Sinclair G ButtFranceOnyama Limba RENEWAL
Chavez I ButtCanadaBernardo Dominic PROPOSAL
Octavia U NickaItalyAsiya Javayant UNQUALIFIED
Maisha G KuskoItalyStephen Shaw PROPOSAL
Sinclair X PoquetteAustraliaElwin Sharvill RENEWAL
Nicolas E VocelkaItalyIvan Magalhaes QUALIFIED
Mujtaba W InouyeBrazilAmy Elsner NEW
David J GillianBrazilElwin Sharvill UNQUALIFIED
Francesco E FlosiArgentinaOnyama Limba PROPOSAL
Jeanfrancois U SaylorsRussiaStephen Shaw QUALIFIED
Alejandro J CaldareraIndiaAnna Fali QUALIFIED
Stacey O OldroydCanadaAsiya Javayant PROPOSAL
Octavia Y WhobreyFranceIvan Magalhaes PROPOSAL
Johnson G WieserIndiaXuxue Feng PROPOSAL
Salvatore A DoeFranceStephen Shaw NEW
Emily F AlbaresIndiaAmy Elsner QUALIFIED
Jones E NickaArgentinaStephen Shaw PROPOSAL
Ashley P VenereCanadaXuxue Feng RENEWAL
Darci O DarakjyRussiaElwin Sharvill PROPOSAL
Tony X VocelkaArgentinaIvan Magalhaes NEGOTIATION
Mujtaba B NestleAustraliaIoni Bowcher NEGOTIATION
Antonio X RimBrazilAmy Elsner UNQUALIFIED
Jeanfrancois P SergiBrazilElwin Sharvill NEGOTIATION
Aruna G GlickRussiaOnyama Limba NEW
Aika B OldroydItalyAsiya Javayant RENEWAL
Isabel H VenereAustraliaAnna Fali NEGOTIATION
Morrow E RutaItalyAmy Elsner NEGOTIATION
Greenwood K BologniaJapanXuxue Feng PROPOSAL
Isabel L StensethIndiaXuxue Feng QUALIFIED
Maisha M VenereIndiaOnyama Limba PROPOSAL
Maria Z NickaCanadaIvan Magalhaes QUALIFIED
Jeanfrancois T KuskoSpainAnna Fali NEGOTIATION
Adams F SaylorsFranceElwin Sharvill PROPOSAL
Aditya E KolmetzRussiaStephen Shaw NEGOTIATION
Salvatore A SlusarskiRussiaIvan Magalhaes UNQUALIFIED
Chavez R OstroskyAustraliaIoni Bowcher QUALIFIED
Cody Y AlbaresJapanOnyama Limba NEGOTIATION
Ivar P StensethJapanElwin Sharvill NEGOTIATION
Maisha X GillianUnited KingdomAsiya Javayant NEGOTIATION
Kadeem P BowleyArgentinaIvan Magalhaes NEGOTIATION
Morrow J SchemmerJapanBernardo Dominic NEGOTIATION
Aditya L WaycottJapanElwin Sharvill NEW
David C AlbaresSpainOnyama Limba NEW
Stacey C RoysterItalyIvan Magalhaes QUALIFIED
Jones T RulapaughBrazilIoni Bowcher RENEWAL
Adams A IturbideUnited KingdomElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily I BowleyRussiaOnyama Limba QUALIFIED
Aruna Q ShinkoJapanIoni Bowcher RENEWAL
Tony L FerenczArgentinaAmy Elsner QUALIFIED
Faith D SlusarskiSpainXuxue Feng RENEWAL
Maria X GillianBrazilIvan Magalhaes QUALIFIED
Adams R NickaItalyAnna Fali QUALIFIED
Jennifer A BowleyGermanyOnyama Limba RENEWAL
Costa U GlickSpainIvan Magalhaes NEGOTIATION
Izzy N StensethBrazilOnyama Limba NEGOTIATION
Misaki U SchemmerArgentinaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy C VocelkaJapan2026-07-30Benton, John B Jr QUALIFIED34Ivan Magalhaes
1001Morrow H MarrierIndia2026-07-29Chapman, Ross E Esq NEW91Ioni Bowcher
1002Ashley Q WieserFrance2026-07-28Chemel, James L Cpa RENEWAL4Ioni Bowcher
1003Mujtaba A SergiSpain2026-07-19Printing Dimensions UNQUALIFIED91Stephen Shaw
1004Murillo E NestleCanada2026-07-19Benton, John B Jr UNQUALIFIED19Bernardo Dominic
1005Mujtaba V NickaFrance2026-07-31Printing Dimensions QUALIFIED5Asiya Javayant
1006Greenwood B BriddickJapan2026-07-23Rangoni Of Florence PROPOSAL32Asiya Javayant
1007Faith V AlbaresAustralia2026-07-06Chapman, Ross E Esq NEGOTIATION37Onyama Limba
1008Rodrigues S TollnerJapan2026-07-25Feltz Printing Service PROPOSAL80Stephen Shaw
1009Leja J WieserUnited Kingdom2026-07-17Commercial Press QUALIFIED32Bernardo Dominic
1010Tony U PaprockiBrazil2026-07-09Chemel, James L Cpa RENEWAL40Ivan Magalhaes
1011Juan T VenereBrazil2026-08-01Benton, John B Jr NEGOTIATION61Xuxue Feng
1012Isabel Y VocelkaUnited Kingdom2026-07-11Chapman, Ross E Esq UNQUALIFIED66Stephen Shaw
1013Costa H AmigonIndia2026-07-13Chemel, James L Cpa NEGOTIATION74Bernardo Dominic
1014Mayumi K SlusarskiFrance2026-07-23Feiner Bros RENEWAL82Asiya Javayant
1015Alejandro B CaldareraAustralia2026-08-02Dorl, James J Esq PROPOSAL95Elwin Sharvill
1016Darci L ChuiItaly2026-07-11Chemel, James L Cpa RENEWAL48Ioni Bowcher
1017Chavez M BologniaArgentina2026-07-21Morlong Associates NEW5Amy Elsner
1018Deepesh L FlosiFrance2026-07-28Rousseaux, Michael Esq UNQUALIFIED23Asiya Javayant
1019Cody P MarrierArgentina2026-07-14Chapman, Ross E Esq UNQUALIFIED52Anna Fali
1020Misaki M FlosiRussia2026-07-26Printing Dimensions NEGOTIATION26Asiya Javayant
1021Isabel R CaudyCanada2026-07-16Printing Dimensions QUALIFIED21Amy Elsner
1022Clifford M RimAustralia2026-07-14Chemel, James L Cpa PROPOSAL12Onyama Limba
1023Rodrigues P DarakjyItaly2026-07-14Chemel, James L Cpa PROPOSAL56Elwin Sharvill
1024Murillo S ChuiRussia2026-07-23Printing Dimensions RENEWAL54Bernardo Dominic
1025Ivar J GlickFrance2026-07-27Chemel, James L Cpa QUALIFIED80Bernardo Dominic
1026Leon U PerinRussia2026-07-12Benton, John B Jr RENEWAL91Xuxue Feng
1027Ashley P SchemmerArgentina2026-07-10Feiner Bros NEW44Asiya Javayant
1028Juan T DilliardItaly2026-08-03Dorl, James J Esq RENEWAL29Ivan Magalhaes
1029Clifford G BowleyRussia2026-07-06Dorl, James J Esq NEGOTIATION2Anna Fali
1030Izzy T AlbaresIndia2026-07-22Chanay, Jeffrey A Esq NEW90Anna Fali
1031Jefferson N AlbaresArgentina2026-07-18Buckley Miller Wright NEGOTIATION37Amy Elsner
1032Adams J ShinkoArgentina2026-07-08King, Christopher A Esq NEGOTIATION13Ivan Magalhaes
1033Costa T StensethItaly2026-07-14King, Christopher A Esq NEW72Elwin Sharvill
1034Deepesh X FigeroaCanada2026-07-07King, Christopher A Esq RENEWAL98Xuxue Feng
1035Tony S AlbaresCanada2026-07-30Truhlar And Truhlar Attys PROPOSAL56Amy Elsner
1036Ashley C NestleGermany2026-07-28Feltz Printing Service PROPOSAL47Xuxue Feng
1037Kadeem G StensethItaly2026-07-28Printing Dimensions NEW90Bernardo Dominic
1038Kaitlin L GauchoGermany2026-08-04Rousseaux, Michael Esq NEW44Elwin Sharvill
1039Ashley B ShinkoBrazil2026-07-22Buckley Miller Wright NEW85Stephen Shaw
1040Jones W SlusarskiIndia2026-07-25Dorl, James J Esq QUALIFIED78Ioni Bowcher
1041Deepesh M GlickRussia2026-07-06Rangoni Of Florence QUALIFIED6Anna Fali
1042Clifford O DoeBrazil2026-07-31Chemel, James L Cpa RENEWAL80Onyama Limba
1043Sinclair P WhobreyAustralia2026-07-24Commercial Press NEGOTIATION17Bernardo Dominic
1044Izzy W VocelkaRussia2026-07-14Feltz Printing Service PROPOSAL1Bernardo Dominic
1045Izzy I RimSpain2026-08-04Morlong Associates NEW83Asiya Javayant
1046Emily T MorascaRussia2026-08-01Truhlar And Truhlar Attys NEW84Amy Elsner
1047Ivar Q MorascaCanada2026-07-11Buckley Miller Wright UNQUALIFIED23Elwin Sharvill
1048Greenwood E RulapaughItaly2026-07-21Commercial Press UNQUALIFIED76Onyama Limba
1049Sinclair F BologniaRussia2026-07-31Rousseaux, Michael Esq QUALIFIED44Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Darci E PaprockiRussiaStephen Shaw PROPOSAL
Kaitlin M KolmetzIndiaAnna Fali QUALIFIED
Smith X AmigonUnited KingdomOnyama Limba NEW
Darci N FerenczItalyStephen Shaw PROPOSAL
Ricardo L RutaFranceAnna Fali RENEWAL
Mujtaba Z GauchoGermanyIoni Bowcher NEW
Munro J NestleFranceXuxue Feng NEW
Tony V ButtAustraliaXuxue Feng RENEWAL
Jennifer O BologniaGermanyBernardo Dominic RENEWAL
Misaki R GauchoArgentinaElwin Sharvill NEGOTIATION
Cody G InouyeRussiaXuxue Feng PROPOSAL
Aditya L DoeBrazilIoni Bowcher QUALIFIED
Rodrigues J DarakjyRussiaOnyama Limba QUALIFIED
Aruna Y GillianUnited KingdomXuxue Feng PROPOSAL
Juan H MarrierRussiaBernardo Dominic UNQUALIFIED
Jones Q NickaItalyAnna Fali NEGOTIATION
Nicolas D PerinAustraliaIvan Magalhaes NEGOTIATION
Deepesh I VenereFranceOnyama Limba QUALIFIED
Ivar V WieserRussiaAnna Fali UNQUALIFIED
Maisha U NestleIndiaStephen Shaw UNQUALIFIED
Costa G KuskoIndiaElwin Sharvill NEW
Greenwood S MacleadArgentinaElwin Sharvill QUALIFIED
Jeanfrancois V FerenczGermanyIvan Magalhaes NEGOTIATION
Silvio X KolmetzBrazilAmy Elsner NEGOTIATION
Costa X SergiItalyOnyama Limba UNQUALIFIED
Johnson F WhobreyCanadaBernardo Dominic NEW
Maisha F MaletUnited KingdomAnna Fali NEW
Arvin N FigeroaFranceIvan Magalhaes RENEWAL
Wickens B NickaRussiaOnyama Limba NEW
Mujtaba O RutaJapanXuxue Feng NEW
Jones H NickaAustraliaStephen Shaw QUALIFIED
Jefferson Y PoquetteCanadaIoni Bowcher PROPOSAL
Leja V FollerItalyOnyama Limba RENEWAL
Adams T ShinkoRussiaIvan Magalhaes QUALIFIED
Silvio D SchemmerJapanXuxue Feng NEW
Murillo H RulapaughJapanStephen Shaw NEW
Leja S AlbaresBrazilElwin Sharvill PROPOSAL
Leon M RulapaughSpainAsiya Javayant QUALIFIED
Ashley V FlosiJapanStephen Shaw NEW
Aruna B MorascaFranceIvan Magalhaes PROPOSAL
Izzy Y SlusarskiSpainAmy Elsner NEW
Isabel X FigeroaBrazilStephen Shaw NEW
Octavia C KuskoRussiaBernardo Dominic NEW
Nicolas F IturbideAustraliaAsiya Javayant NEGOTIATION
Izzy M GauchoRussiaBernardo Dominic RENEWAL
Murillo T MarrierJapanElwin Sharvill NEW
Sinclair O RimRussiaIvan Magalhaes QUALIFIED
Salvatore K StockhamSpainBernardo Dominic QUALIFIED
Tony E StensethRussiaAmy Elsner PROPOSAL
Aika U MacleadItalyAnna Fali PROPOSAL
Frozen Columns
Name
Adams G Ferencz
Costa E Chui
Munro Z Schemmer
Maria F Malet
Juan A Poquette
Kadeem C Caldarera
Maria H Foller
Jefferson J Maclead
Sinclair Y Chui
Misaki N Garufi
Maisha L Nestle
Ricardo K Maclead
Adams F Glick
Sinclair I Nestle
Kaitlin F Doe
Deepesh F Caudy
Izzy K Kolmetz
Jefferson Z Caldarera
Chavez T Briddick
Murillo S Malet
Antonio Y Bolognia
Deepesh L Morasca
Jennifer X Campain
Costa L Maclead
Leon U Morasca
Ricardo M Oldroyd
Mayumi Y Nestle
Chavez F Whobrey
Murillo Y Oldroyd
Francesco G Rulapaugh
Leon T Nestle
Wickens D Maclead
Mayumi G Bolognia
Sinclair D Shinko
Izzy P Malet
Darci U Whobrey
Wickens H Morasca
Arvin Z Rim
Cody O Perin
Adams A Albares
Morrow C Nicka
Rodrigues N Caudy
Costa K Oldroyd
Silvio A Briddick
Chavez Y Shinko
Faith M Paprocki
Rodrigues E Royster
Jennifer Z Dilliard
Morrow K Iturbide
Kaitlin E Iturbide
IdCountryDate
1000United Kingdom2026-07-17
1001Japan2026-07-21
1002Australia2026-07-23
1003France2026-07-07
1004Russia2026-07-24
1005Russia2026-07-25
1006Spain2026-07-16
1007United Kingdom2026-08-01
1008Japan2026-07-15
1009Japan2026-07-30
1010Italy2026-07-17
1011Germany2026-07-11
1012United Kingdom2026-08-03
1013India2026-08-02
1014Japan2026-07-30
1015Australia2026-07-16
1016Russia2026-07-31
1017Russia2026-08-03
1018Argentina2026-07-13
1019Italy2026-07-31
1020Canada2026-07-17
1021Australia2026-08-01
1022Canada2026-07-18
1023Spain2026-07-29
1024Canada2026-08-02
1025France2026-07-06
1026Argentina2026-08-01
1027Australia2026-07-29
1028United Kingdom2026-07-11
1029Russia2026-07-17
1030Brazil2026-07-11
1031Italy2026-07-13
1032India2026-07-30
1033Japan2026-07-16
1034Brazil2026-07-24
1035Russia2026-07-30
1036Germany2026-07-10
1037United Kingdom2026-07-09
1038Canada2026-07-23
1039France2026-07-27
1040Australia2026-07-22
1041Russia2026-07-08
1042Brazil2026-07-30
1043Japan2026-07-30
1044Spain2026-07-18
1045Australia2026-07-26
1046Brazil2026-07-29
1047Argentina2026-07-17
1048Spain2026-08-04
1049Canada2026-07-14

On-Demand Data

NameIdCountryDate
Misaki F Sergi1000France2026-07-22
Salvatore W Malet1001India2026-07-27
Claire K Briddick1002Spain2026-07-28
Jennifer L Kusko1003United Kingdom2026-07-13
Sinclair L Doe1004Spain2026-07-17
Jennifer S Slusarski1005France2026-07-26
Salvatore S Dilliard1006Spain2026-07-21
Munro W Albares1007Germany2026-08-02
Emily G Venere1008Spain2026-07-10
Smith N Flosi1009France2026-07-07
Smith L Briddick1010Germany2026-07-08
James N Sergi1011Brazil2026-07-11
Tony Y Rulapaugh1012Brazil2026-07-13
Kadeem Q Saylors1013India2026-07-18
Rodrigues Y Gillian1014India2026-08-04
Johnson N Briddick1015Italy2026-07-10
Tony E Tollner1016Argentina2026-08-03
Nicolas L Foller1017Australia2026-07-31
Francesco R Ferencz1018Germany2026-08-03
Cody Y Campain1019Canada2026-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford K ChuiBrazilOnyama Limba NEW
Aika W FerenczGermanyAmy Elsner PROPOSAL
Darci X AmigonJapanAmy Elsner UNQUALIFIED
Wickens E ShinkoGermanyIvan Magalhaes NEW
Clifford B SchemmerUnited KingdomIoni Bowcher NEGOTIATION
Adams Q CampainBrazilAnna Fali NEW
Faith N FerenczBrazilStephen Shaw PROPOSAL
Sinclair H PerinFranceBernardo Dominic NEW
Aditya I BologniaGermanyOnyama Limba PROPOSAL
Costa F IturbideBrazilBernardo Dominic RENEWAL
Arvin H VenereSpainXuxue Feng QUALIFIED
Murillo Q GlickBrazilIoni Bowcher QUALIFIED
Chavez H FerenczJapanBernardo Dominic QUALIFIED
Leja V WaycottFranceIoni Bowcher UNQUALIFIED
Deepesh K WhobreyBrazilXuxue Feng UNQUALIFIED
Claire L DilliardItalyOnyama Limba NEW
Ricardo G GillianRussiaOnyama Limba RENEWAL
Maria N StockhamIndiaBernardo Dominic QUALIFIED
Julie W KuskoAustraliaAsiya Javayant QUALIFIED
Silvio V DoeBrazilIoni Bowcher NEGOTIATION
Greenwood J ShinkoAustraliaIvan Magalhaes PROPOSAL
Francesco P PoquetteGermanyIoni Bowcher PROPOSAL
Darci C BologniaFranceIoni Bowcher NEGOTIATION
Emily J VocelkaCanadaElwin Sharvill UNQUALIFIED
James X PerinAustraliaIoni Bowcher NEGOTIATION
Sinclair B SlusarskiUnited KingdomAsiya Javayant PROPOSAL
Ashley J CampainGermanyAmy Elsner UNQUALIFIED
Jefferson L GarufiCanadaAnna Fali PROPOSAL
Rodrigues K PoquetteRussiaStephen Shaw NEW
Munro O KuskoFranceElwin Sharvill NEW
Juan U RutaSpainXuxue Feng PROPOSAL
Juan Z ChuiUnited KingdomElwin Sharvill UNQUALIFIED
Murillo M PaprockiArgentinaAnna Fali QUALIFIED
Johnson M WieserJapanIoni Bowcher PROPOSAL
Rodrigues K MaletCanadaBernardo Dominic QUALIFIED
Julie W MaletSpainElwin Sharvill QUALIFIED
Antonio V VenereRussiaAmy Elsner RENEWAL
Claire O DilliardAustraliaAnna Fali QUALIFIED
Wickens G VenereGermanyIvan Magalhaes UNQUALIFIED
Jennifer H SchemmerGermanyStephen 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>