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
Rodrigues G KolmetzCanadaAsiya Javayant RENEWAL
Alejandro A TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Darci F FlosiRussiaElwin Sharvill QUALIFIED
Francesco Q SergiIndiaAmy Elsner RENEWAL
Maria U ShinkoGermanyIvan Magalhaes PROPOSAL
Ashley C SchemmerIndiaIoni Bowcher NEW
Claire A RulapaughCanadaAmy Elsner QUALIFIED
Maisha E SlusarskiAustraliaStephen Shaw RENEWAL
Ashley T InouyeRussiaIvan Magalhaes NEW
Nicolas D PoquetteJapanAnna Fali NEGOTIATION
Alejandro D VenereJapanIvan Magalhaes PROPOSAL
Maisha I RutaFranceOnyama Limba NEW
David M ButtArgentinaAsiya Javayant QUALIFIED
Jefferson K WaycottJapanAsiya Javayant NEGOTIATION
Maria F SergiAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois N OldroydJapanAnna Fali NEW
Isabel N BowleyGermanyBernardo Dominic NEW
Sinclair N WaycottSpainIvan Magalhaes NEW
Costa Q RoysterJapanStephen Shaw PROPOSAL
Jones J CampainSpainAnna Fali RENEWAL
James U CampainFranceBernardo Dominic QUALIFIED
Misaki L RutaGermanyIvan Magalhaes UNQUALIFIED
Maisha I PoquetteIndiaIoni Bowcher NEGOTIATION
Darci L FlosiAustraliaBernardo Dominic UNQUALIFIED
Jefferson T VocelkaJapanAsiya Javayant RENEWAL
Greenwood E SergiFranceElwin Sharvill UNQUALIFIED
Ricardo F MarrierJapanAsiya Javayant UNQUALIFIED
Juan E MacleadFranceAmy Elsner UNQUALIFIED
Mayumi S SchemmerSpainXuxue Feng NEGOTIATION
Francesco Q DilliardItalyIoni Bowcher NEGOTIATION
Nicolas V MacleadAustraliaXuxue Feng RENEWAL
Salvatore N PaprockiCanadaElwin Sharvill NEGOTIATION
Jones W KuskoBrazilAmy Elsner NEGOTIATION
Juan F NestleRussiaIvan Magalhaes NEW
Isabel D PaprockiCanadaXuxue Feng NEW
Silvio J MarrierFranceAsiya Javayant NEW
Adams Q ChuiJapanAnna Fali NEGOTIATION
Leon D GauchoCanadaXuxue Feng RENEWAL
Kaitlin V VenereUnited KingdomOnyama Limba RENEWAL
Kadeem W BriddickArgentinaIvan Magalhaes NEW
Rodrigues E BowleyGermanyElwin Sharvill QUALIFIED
Aditya G SchemmerArgentinaAsiya Javayant NEW
Emily M RutaBrazilAnna Fali QUALIFIED
Octavia A SaylorsFranceElwin Sharvill NEGOTIATION
Silvio X VenereIndiaXuxue Feng NEW
Wickens A StockhamBrazilOnyama Limba RENEWAL
Costa R DarakjyFranceIvan Magalhaes NEW
Munro V OstroskyAustraliaBernardo Dominic PROPOSAL
Francesco Q AmigonUnited KingdomOnyama Limba NEW
Aditya R StensethBrazilElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody C BologniaJapanAsiya Javayant NEGOTIATION
Arvin C RoysterUnited KingdomElwin Sharvill UNQUALIFIED
Rodrigues Y WieserAustraliaBernardo Dominic RENEWAL
Mujtaba O RoysterCanadaBernardo Dominic UNQUALIFIED
Ashley P GlickBrazilAnna Fali RENEWAL
Darci P InouyeIndiaAsiya Javayant PROPOSAL
Faith N MaletIndiaAmy Elsner QUALIFIED
James D PerinArgentinaOnyama Limba UNQUALIFIED
Claire Y OldroydJapanBernardo Dominic RENEWAL
Francesco R SergiAustraliaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha U AmigonBrazil2026-08-16Rousseaux, Michael Esq NEGOTIATION34Asiya Javayant
1001Jennifer V DilliardRussia2026-08-04Morlong Associates PROPOSAL66Asiya Javayant
1002Salvatore N PaprockiCanada2026-08-02Chemel, James L Cpa NEGOTIATION66Stephen Shaw
1003Jones M OstroskyIndia2026-08-06Feltz Printing Service NEGOTIATION74Bernardo Dominic
1004Claire V BriddickItaly2026-08-13Commercial Press RENEWAL36Xuxue Feng
1005Kaitlin C StockhamSpain2026-08-07Rangoni Of Florence UNQUALIFIED1Asiya Javayant
1006Silvio M WieserCanada2026-08-13Rousseaux, Michael Esq QUALIFIED10Bernardo Dominic
1007Aika C CampainCanada2026-08-11Chemel, James L Cpa UNQUALIFIED38Stephen Shaw
1008Tony O ShinkoArgentina2026-08-13Feiner Bros NEW14Asiya Javayant
1009Faith X DarakjySpain2026-08-01Chanay, Jeffrey A Esq NEGOTIATION99Amy Elsner
1010Emily C RulapaughItaly2026-07-25Buckley Miller Wright PROPOSAL52Amy Elsner
1011Maisha A BologniaArgentina2026-08-14Truhlar And Truhlar Attys UNQUALIFIED98Xuxue Feng
1012Stacey Z MorascaCanada2026-08-15Chapman, Ross E Esq NEW11Anna Fali
1013Arvin M WaycottCanada2026-08-12Truhlar And Truhlar Attys NEW62Asiya Javayant
1014David L MorascaArgentina2026-08-07Feltz Printing Service QUALIFIED73Ivan Magalhaes
1015Leja B BowleyFrance2026-08-10Buckley Miller Wright RENEWAL37Anna Fali
1016Smith W OstroskyRussia2026-07-19King, Christopher A Esq QUALIFIED89Bernardo Dominic
1017Arvin B RimItaly2026-08-14Morlong Associates QUALIFIED75Anna Fali
1018Antonio P CampainJapan2026-08-15King, Christopher A Esq PROPOSAL63Bernardo Dominic
1019Stacey W PaprockiUnited Kingdom2026-08-13Morlong Associates RENEWAL70Stephen Shaw
1020Stacey I KolmetzAustralia2026-08-10Morlong Associates NEW24Ioni Bowcher
1021Rodrigues G VocelkaGermany2026-07-24Feltz Printing Service PROPOSAL85Anna Fali
1022Octavia I PoquetteIndia2026-08-07Buckley Miller Wright UNQUALIFIED78Ioni Bowcher
1023Misaki D PoquetteIndia2026-08-02Buckley Miller Wright NEGOTIATION70Amy Elsner
1024Aruna C TollnerItaly2026-07-29Commercial Press PROPOSAL89Ioni Bowcher
1025Munro O MaletJapan2026-07-29Feiner Bros NEW33Stephen Shaw
1026Emily D OldroydBrazil2026-07-25Printing Dimensions QUALIFIED67Ivan Magalhaes
1027Silvio E TollnerAustralia2026-07-22Rangoni Of Florence UNQUALIFIED87Onyama Limba
1028Leon F RimSpain2026-07-23Commercial Press NEGOTIATION7Onyama Limba
1029Greenwood M VocelkaAustralia2026-08-11Commercial Press RENEWAL95Xuxue Feng
1030Nicolas W WaycottUnited Kingdom2026-07-23Feiner Bros UNQUALIFIED33Xuxue Feng
1031Jones C RulapaughSpain2026-08-08Printing Dimensions PROPOSAL5Onyama Limba
1032Jeanfrancois T GarufiSpain2026-08-14Chemel, James L Cpa RENEWAL79Bernardo Dominic
1033Adams B DilliardItaly2026-07-26Truhlar And Truhlar Attys NEW13Onyama Limba
1034Jennifer E PoquetteGermany2026-08-03Printing Dimensions NEGOTIATION14Ioni Bowcher
1035Cody Z MorascaCanada2026-08-09Truhlar And Truhlar Attys RENEWAL6Asiya Javayant
1036Isabel V FlosiCanada2026-08-14Commercial Press NEGOTIATION24Ivan Magalhaes
1037Morrow U ShinkoSpain2026-08-08King, Christopher A Esq UNQUALIFIED62Elwin Sharvill
1038Isabel L FigeroaArgentina2026-07-22Rangoni Of Florence PROPOSAL63Amy Elsner
1039Cody U SergiJapan2026-08-09Morlong Associates UNQUALIFIED9Elwin Sharvill
1040Ricardo H RutaSpain2026-07-22Chapman, Ross E Esq NEW32Xuxue Feng
1041Ashley M FollerIndia2026-07-28Chanay, Jeffrey A Esq PROPOSAL90Onyama Limba
1042Munro K BriddickJapan2026-08-14Rangoni Of Florence PROPOSAL24Amy Elsner
1043Arvin J KuskoIndia2026-07-19Feiner Bros QUALIFIED38Amy Elsner
1044Ashley H GillianCanada2026-08-10Commercial Press PROPOSAL46Stephen Shaw
1045Francesco T PerinArgentina2026-08-14Benton, John B Jr RENEWAL34Ioni Bowcher
1046Faith G AmigonIndia2026-07-26Printing Dimensions UNQUALIFIED9Stephen Shaw
1047Juan Z KolmetzSpain2026-07-31Commercial Press UNQUALIFIED40Anna Fali
1048Wickens M IturbideCanada2026-08-02Rousseaux, Michael Esq PROPOSAL74Elwin Sharvill
1049Francesco Q PoquetteBrazil2026-07-24Dorl, James J Esq PROPOSAL2Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Claire U FerenczRussiaOnyama Limba PROPOSAL
Nicolas X GauchoCanadaOnyama Limba QUALIFIED
James Z FlosiBrazilElwin Sharvill NEW
Leon N PaprockiUnited KingdomAnna Fali NEW
Greenwood G SchemmerRussiaAsiya Javayant RENEWAL
Murillo M BowleyAustraliaBernardo Dominic RENEWAL
Aika L FerenczAustraliaAmy Elsner NEW
Costa K OldroydArgentinaIvan Magalhaes NEGOTIATION
Aditya N CaudyJapanStephen Shaw NEGOTIATION
Juan B FigeroaSpainIoni Bowcher NEGOTIATION
Ricardo K RutaRussiaAmy Elsner PROPOSAL
Juan Y ButtGermanyStephen Shaw UNQUALIFIED
Octavia L OstroskyRussiaAmy Elsner NEW
Jones M NestleItalyAsiya Javayant NEGOTIATION
Claire E ShinkoAustraliaElwin Sharvill PROPOSAL
Cody L FlosiCanadaIvan Magalhaes QUALIFIED
Deepesh H ChuiBrazilStephen Shaw PROPOSAL
Greenwood J FigeroaSpainStephen Shaw PROPOSAL
Costa D ChuiIndiaBernardo Dominic RENEWAL
Tony I FollerRussiaAmy Elsner RENEWAL
Ricardo C GauchoUnited KingdomOnyama Limba NEGOTIATION
Emily I WieserGermanyAsiya Javayant NEGOTIATION
Silvio N WhobreyJapanOnyama Limba PROPOSAL
Kadeem S PoquetteGermanyAnna Fali NEGOTIATION
Silvio L MorascaItalyOnyama Limba UNQUALIFIED
Aditya W AmigonArgentinaIoni Bowcher NEGOTIATION
Clifford U GarufiGermanyAnna Fali NEW
Jeanfrancois I CaudyAustraliaAnna Fali PROPOSAL
Silvio J FerenczBrazilBernardo Dominic NEGOTIATION
Salvatore H MaletIndiaAmy Elsner PROPOSAL
Smith P BowleySpainAmy Elsner NEW
Rodrigues R NestleRussiaElwin Sharvill UNQUALIFIED
Tony U AmigonCanadaElwin Sharvill RENEWAL
Leja B CaldareraAustraliaIvan Magalhaes NEW
Johnson W TollnerSpainXuxue Feng QUALIFIED
Ivar U CaudyCanadaXuxue Feng NEW
Sinclair N RimSpainOnyama Limba NEW
Misaki V DarakjyItalyAsiya Javayant UNQUALIFIED
Greenwood M CaldareraBrazilAmy Elsner RENEWAL
David U SaylorsJapanXuxue Feng NEW
Jennifer T TollnerBrazilAmy Elsner NEW
Jones H FerenczSpainAsiya Javayant UNQUALIFIED
Ricardo Z ButtJapanIoni Bowcher UNQUALIFIED
Francesco L KuskoRussiaXuxue Feng UNQUALIFIED
Adams J SlusarskiCanadaElwin Sharvill RENEWAL
Aruna S KolmetzFranceAnna Fali NEW
Jones T RutaGermanyAnna Fali NEW
Kadeem T RutaArgentinaIoni Bowcher NEW
Stacey P RutaGermanyXuxue Feng RENEWAL
Aruna K NestleSpainOnyama Limba RENEWAL
Frozen Columns
Name
Chavez E Malet
Misaki O Briddick
Maria W Nicka
Silvio W Venere
Morrow T Foller
Nicolas W Wieser
Chavez V Wieser
Izzy Y Wieser
Aruna D Bowley
Kaitlin K Sergi
Stacey V Bowley
Juan S Campain
Tony C Saylors
Aika A Marrier
Claire Y Albares
Greenwood E Glick
Claire I Chui
Jeanfrancois E Glick
Leon M Amigon
James K Caudy
Chavez Q Kusko
Misaki C Morasca
Ivar E Caudy
Kaitlin E Whobrey
Tony S Ferencz
Munro C Poquette
Juan D Darakjy
Aditya A Shinko
Wickens G Oldroyd
Darci Z Vocelka
Johnson X Vocelka
Silvio N Ferencz
Salvatore Z Butt
Wickens Z Kolmetz
Wickens V Rulapaugh
Morrow S Whobrey
Darci R Royster
Emily N Figeroa
Leon O Morasca
Leja C Glick
Smith E Amigon
Maisha A Butt
Leja O Royster
Juan B Campain
Aika U Paprocki
Misaki Y Ostrosky
Nicolas F Poquette
Francesco G Caldarera
Murillo G Ruta
Leon U Gillian
IdCountryDate
1000Italy2026-08-05
1001Brazil2026-07-19
1002Spain2026-08-14
1003Brazil2026-08-01
1004United Kingdom2026-07-30
1005United Kingdom2026-08-11
1006United Kingdom2026-07-24
1007Brazil2026-07-19
1008India2026-08-07
1009Brazil2026-08-15
1010Germany2026-08-17
1011Russia2026-07-19
1012Germany2026-07-19
1013Russia2026-07-21
1014Canada2026-07-27
1015Canada2026-07-20
1016Canada2026-08-06
1017Germany2026-08-13
1018Argentina2026-07-28
1019Italy2026-07-23
1020United Kingdom2026-07-27
1021Spain2026-08-15
1022United Kingdom2026-08-10
1023Australia2026-08-02
1024France2026-07-21
1025Brazil2026-07-23
1026Russia2026-08-09
1027France2026-08-05
1028Russia2026-08-14
1029Australia2026-07-23
1030Spain2026-07-26
1031Spain2026-08-05
1032Italy2026-08-05
1033United Kingdom2026-08-07
1034United Kingdom2026-08-13
1035Germany2026-07-28
1036Argentina2026-07-19
1037United Kingdom2026-08-14
1038Japan2026-08-07
1039Australia2026-07-25
1040Japan2026-07-19
1041France2026-08-13
1042India2026-07-19
1043Japan2026-08-15
1044United Kingdom2026-08-15
1045France2026-07-31
1046India2026-07-25
1047Australia2026-08-01
1048Spain2026-08-02
1049Spain2026-07-29

On-Demand Data

NameIdCountryDate
Cody I Kolmetz1000Argentina2026-07-20
Kadeem L Figeroa1001Brazil2026-07-20
Juan X Flosi1002Italy2026-07-19
Faith S Doe1003Japan2026-07-30
Ashley T Figeroa1004France2026-08-12
Antonio U Malet1005Italy2026-08-16
Kaitlin X Butt1006France2026-08-15
Aditya G Bolognia1007Germany2026-08-01
Cody W Vocelka1008Argentina2026-08-01
Juan O Whobrey1009Germany2026-08-03
Ricardo N Inouye1010Germany2026-08-07
David D Campain1011Russia2026-07-30
Francesco M Dilliard1012Russia2026-07-29
Izzy E Dilliard1013Argentina2026-07-31
Clifford X Glick1014Russia2026-08-09
James G Gaucho1015Italy2026-08-03
Alejandro G Rulapaugh1016Germany2026-08-07
Jeanfrancois G Rim1017Japan2026-08-06
Salvatore S Ruta1018Australia2026-07-19
Clifford V Rulapaugh1019United Kingdom2026-07-31
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja Q SlusarskiIndiaAmy Elsner NEGOTIATION
Francesco B SchemmerGermanyXuxue Feng QUALIFIED
Francesco Z VenereJapanStephen Shaw NEW
Jefferson E WhobreyUnited KingdomIoni Bowcher QUALIFIED
Aditya G WhobreyJapanIvan Magalhaes NEW
Juan U RutaJapanIoni Bowcher RENEWAL
Ivar M StensethFranceAnna Fali NEGOTIATION
Maisha Z AmigonJapanIvan Magalhaes NEW
Emily V SchemmerUnited KingdomIoni Bowcher UNQUALIFIED
Aruna D NickaUnited KingdomOnyama Limba NEGOTIATION
Rodrigues L CampainFranceElwin Sharvill NEW
Chavez R StensethFranceAnna Fali UNQUALIFIED
Alejandro R RulapaughIndiaElwin Sharvill RENEWAL
Chavez C AlbaresUnited KingdomIoni Bowcher NEW
Aditya U ChuiUnited KingdomAmy Elsner PROPOSAL
Costa N NestleRussiaIvan Magalhaes UNQUALIFIED
Francesco D OldroydJapanOnyama Limba RENEWAL
Antonio R DarakjyItalyAmy Elsner NEGOTIATION
Izzy E PoquetteFranceAnna Fali QUALIFIED
Jefferson F NestleCanadaElwin Sharvill NEGOTIATION
Claire A FigeroaFranceIvan Magalhaes NEGOTIATION
Izzy A SergiCanadaBernardo Dominic RENEWAL
Aditya D MaletCanadaIoni Bowcher RENEWAL
Deepesh Y CaldareraArgentinaElwin Sharvill UNQUALIFIED
David I FollerRussiaBernardo Dominic NEGOTIATION
Emily F DoeArgentinaOnyama Limba QUALIFIED
Adams M OldroydIndiaXuxue Feng NEGOTIATION
Maisha I ChuiFranceIvan Magalhaes PROPOSAL
Isabel M WhobreyRussiaAnna Fali QUALIFIED
Tony A BowleyGermanyElwin Sharvill UNQUALIFIED
Maisha G AmigonGermanyIvan Magalhaes NEW
David U VenereRussiaAmy Elsner RENEWAL
Costa I RulapaughUnited KingdomBernardo Dominic QUALIFIED
Salvatore B InouyeGermanyOnyama Limba NEW
James K CaldareraJapanIoni Bowcher UNQUALIFIED
Emily T CampainUnited KingdomBernardo Dominic RENEWAL
Aditya O DilliardRussiaAsiya Javayant UNQUALIFIED
Alejandro C RutaGermanyIoni Bowcher NEW
Claire R RimJapanElwin Sharvill PROPOSAL
Costa K MacleadSpainAsiya 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>