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
Izzy Q StockhamUnited KingdomAnna Fali NEW
Kadeem T ChuiGermanyAmy Elsner NEW
Jefferson L PerinIndiaOnyama Limba RENEWAL
David D RoysterUnited KingdomBernardo Dominic RENEWAL
Mayumi A KuskoBrazilOnyama Limba UNQUALIFIED
Aika D ChuiJapanOnyama Limba PROPOSAL
Cody T NestleRussiaBernardo Dominic RENEWAL
Aika B SlusarskiFranceAsiya Javayant UNQUALIFIED
Jefferson B WieserJapanIoni Bowcher UNQUALIFIED
Jones C BriddickRussiaStephen Shaw RENEWAL
Jefferson H MorascaRussiaAmy Elsner PROPOSAL
Jefferson K AmigonGermanyAmy Elsner PROPOSAL
Emily L InouyeBrazilIoni Bowcher QUALIFIED
Claire J InouyeArgentinaIvan Magalhaes RENEWAL
Maria E ShinkoArgentinaIoni Bowcher QUALIFIED
Misaki Z CampainGermanyOnyama Limba PROPOSAL
Isabel W PoquetteJapanStephen Shaw NEGOTIATION
Salvatore Y WaycottArgentinaElwin Sharvill RENEWAL
Octavia H BologniaFranceAsiya Javayant PROPOSAL
Jeanfrancois Q VocelkaSpainElwin Sharvill PROPOSAL
Stacey C BologniaRussiaXuxue Feng NEW
Nicolas W CaldareraSpainAsiya Javayant PROPOSAL
Francesco L WaycottJapanStephen Shaw RENEWAL
Juan W OldroydRussiaXuxue Feng UNQUALIFIED
Sinclair U BologniaFranceIvan Magalhaes NEGOTIATION
Maisha Z CampainRussiaBernardo Dominic QUALIFIED
Greenwood M MaletBrazilAnna Fali NEGOTIATION
Misaki K RoysterItalyAmy Elsner RENEWAL
Wickens F RutaArgentinaStephen Shaw PROPOSAL
Maisha F NestleFranceBernardo Dominic NEW
Costa J OldroydAustraliaStephen Shaw QUALIFIED
Jennifer N RutaGermanyElwin Sharvill NEGOTIATION
Cody I DoeCanadaAmy Elsner NEGOTIATION
Cody V SchemmerItalyStephen Shaw NEW
Mayumi M DilliardUnited KingdomBernardo Dominic UNQUALIFIED
Misaki O DarakjySpainIoni Bowcher NEGOTIATION
Jennifer L DoeGermanyAnna Fali NEW
Chavez A FollerUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues G CaldareraIndiaAmy Elsner PROPOSAL
Maria D BologniaSpainAnna Fali NEW
Jefferson J ChuiRussiaElwin Sharvill UNQUALIFIED
Maria A CaudyBrazilOnyama Limba RENEWAL
Nicolas R MaletBrazilIoni Bowcher UNQUALIFIED
James I DarakjyUnited KingdomStephen Shaw UNQUALIFIED
Tony L TollnerRussiaAsiya Javayant NEGOTIATION
Rodrigues I DoeJapanXuxue Feng RENEWAL
Aruna J GauchoUnited KingdomAnna Fali PROPOSAL
Maisha G GlickBrazilIoni Bowcher QUALIFIED
Aditya I GauchoArgentinaAnna Fali NEGOTIATION
Smith Y SchemmerAustraliaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith C CaldareraCanadaElwin Sharvill RENEWAL
Johnson R AlbaresIndiaIvan Magalhaes NEW
Misaki J SergiGermanyOnyama Limba UNQUALIFIED
James W ButtItalyStephen Shaw NEGOTIATION
Leon O ChuiGermanyAnna Fali RENEWAL
Ashley G BriddickRussiaStephen Shaw NEGOTIATION
Juan E DilliardSpainAmy Elsner NEGOTIATION
Greenwood W PerinBrazilAmy Elsner UNQUALIFIED
Stacey X AlbaresAustraliaElwin Sharvill NEW
Adams L MaletRussiaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja F KuskoArgentina2026-06-19Morlong Associates PROPOSAL88Bernardo Dominic
1001Ashley U NickaArgentina2026-07-06Rousseaux, Michael Esq NEGOTIATION88Amy Elsner
1002Munro O VenereGermany2026-06-28Chapman, Ross E Esq NEW47Xuxue Feng
1003Arvin B WieserItaly2026-07-18Rangoni Of Florence QUALIFIED87Stephen Shaw
1004Morrow W PerinArgentina2026-07-17Printing Dimensions NEGOTIATION80Xuxue Feng
1005Silvio J NestleAustralia2026-06-22Commercial Press NEGOTIATION6Ivan Magalhaes
1006Kaitlin K RimUnited Kingdom2026-07-15Feiner Bros NEW24Amy Elsner
1007Murillo T VenereItaly2026-07-16Chapman, Ross E Esq QUALIFIED86Amy Elsner
1008Greenwood L SaylorsCanada2026-07-01Feiner Bros NEGOTIATION38Stephen Shaw
1009Aika S FlosiIndia2026-06-22King, Christopher A Esq PROPOSAL0Onyama Limba
1010James W DarakjyBrazil2026-07-15Dorl, James J Esq QUALIFIED26Ivan Magalhaes
1011Sinclair K StensethSpain2026-07-14Chemel, James L Cpa PROPOSAL49Ivan Magalhaes
1012Claire E VenereArgentina2026-06-19Rangoni Of Florence NEW74Amy Elsner
1013David I CampainSpain2026-07-01Dorl, James J Esq PROPOSAL42Ioni Bowcher
1014Jones X FlosiSpain2026-07-07Printing Dimensions UNQUALIFIED32Amy Elsner
1015Darci J AmigonSpain2026-07-09Buckley Miller Wright RENEWAL84Anna Fali
1016Deepesh Q VenereRussia2026-07-04Chapman, Ross E Esq PROPOSAL24Asiya Javayant
1017Alejandro I GillianAustralia2026-07-11Chemel, James L Cpa NEGOTIATION76Bernardo Dominic
1018Nicolas N WhobreyRussia2026-06-23Chemel, James L Cpa NEW33Elwin Sharvill
1019Maria B StensethItaly2026-07-02Chanay, Jeffrey A Esq PROPOSAL30Anna Fali
1020Julie A ShinkoArgentina2026-06-25Rangoni Of Florence RENEWAL7Onyama Limba
1021Misaki O TollnerItaly2026-07-01King, Christopher A Esq QUALIFIED56Amy Elsner
1022Clifford F FerenczItaly2026-07-03Buckley Miller Wright PROPOSAL78Anna Fali
1023Alejandro F StensethSpain2026-06-26Printing Dimensions QUALIFIED79Ivan Magalhaes
1024Aika C MacleadJapan2026-07-01Feltz Printing Service NEGOTIATION3Asiya Javayant
1025Cody T PaprockiIndia2026-07-14Feltz Printing Service NEGOTIATION95Elwin Sharvill
1026Johnson A TollnerItaly2026-07-16Rangoni Of Florence NEGOTIATION87Elwin Sharvill
1027Wickens X WhobreyBrazil2026-07-03Rangoni Of Florence PROPOSAL49Ioni Bowcher
1028Maria U WaycottIndia2026-06-22Dorl, James J Esq RENEWAL76Xuxue Feng
1029Morrow C CaudyFrance2026-06-30King, Christopher A Esq PROPOSAL81Bernardo Dominic
1030Aditya F KuskoUnited Kingdom2026-07-16Rousseaux, Michael Esq RENEWAL12Elwin Sharvill
1031Adams X MarrierFrance2026-07-11King, Christopher A Esq RENEWAL13Ioni Bowcher
1032Darci J OstroskyIndia2026-06-23Feiner Bros NEGOTIATION13Elwin Sharvill
1033Smith F GarufiIndia2026-07-01Chanay, Jeffrey A Esq NEGOTIATION90Asiya Javayant
1034Nicolas S FerenczItaly2026-06-30Commercial Press UNQUALIFIED36Ivan Magalhaes
1035Morrow D DarakjyItaly2026-07-07Rangoni Of Florence PROPOSAL16Asiya Javayant
1036Leon L KuskoArgentina2026-07-05Chapman, Ross E Esq NEGOTIATION95Asiya Javayant
1037Smith B WhobreyIndia2026-07-09Feiner Bros PROPOSAL25Elwin Sharvill
1038David M MorascaRussia2026-07-05Morlong Associates NEGOTIATION62Xuxue Feng
1039Tony Q KolmetzIndia2026-06-30Feltz Printing Service NEGOTIATION20Onyama Limba
1040Kaitlin O RulapaughAustralia2026-07-17Benton, John B Jr UNQUALIFIED10Ivan Magalhaes
1041Murillo N FollerGermany2026-07-10Printing Dimensions NEW14Elwin Sharvill
1042Johnson V GauchoSpain2026-07-09Rousseaux, Michael Esq NEGOTIATION74Asiya Javayant
1043Faith X RoysterIndia2026-06-29Chemel, James L Cpa PROPOSAL50Anna Fali
1044Jennifer T VocelkaUnited Kingdom2026-06-28Rangoni Of Florence NEW82Bernardo Dominic
1045Smith N ButtUnited Kingdom2026-06-19Feiner Bros QUALIFIED67Ivan Magalhaes
1046Leja H DarakjyRussia2026-07-13Commercial Press NEGOTIATION84Anna Fali
1047David K RulapaughItaly2026-07-07Buckley Miller Wright QUALIFIED23Ivan Magalhaes
1048Chavez T SlusarskiFrance2026-07-16Chemel, James L Cpa UNQUALIFIED43Onyama Limba
1049Octavia P BriddickGermany2026-07-01Chapman, Ross E Esq PROPOSAL81Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kadeem Y AlbaresJapanAnna Fali RENEWAL
Jefferson M BologniaItalyBernardo Dominic UNQUALIFIED
Juan I GlickSpainAmy Elsner UNQUALIFIED
Jennifer Z RimSpainIvan Magalhaes NEW
Smith O SlusarskiItalyOnyama Limba PROPOSAL
Mayumi Y WieserUnited KingdomIoni Bowcher PROPOSAL
Emily Y FollerBrazilAnna Fali UNQUALIFIED
Aruna T WaycottSpainIvan Magalhaes NEGOTIATION
Smith L MaletRussiaAmy Elsner RENEWAL
Francesco J PaprockiItalyXuxue Feng PROPOSAL
Wickens P SaylorsSpainOnyama Limba QUALIFIED
Arvin W ShinkoJapanIvan Magalhaes NEGOTIATION
Jones H SlusarskiCanadaBernardo Dominic UNQUALIFIED
Izzy M IturbideSpainOnyama Limba NEGOTIATION
Chavez O StensethIndiaStephen Shaw RENEWAL
Kadeem A BowleyAustraliaOnyama Limba NEGOTIATION
Emily B KolmetzJapanAsiya Javayant NEW
Rodrigues S RutaUnited KingdomAnna Fali NEW
Sinclair H DilliardFranceAnna Fali RENEWAL
Misaki O FollerFranceXuxue Feng RENEWAL
Leja H TollnerItalyIvan Magalhaes NEW
Jones S PerinCanadaIoni Bowcher RENEWAL
Maisha B BologniaItalyXuxue Feng NEW
Izzy Y WieserSpainOnyama Limba NEGOTIATION
Nicolas J VocelkaRussiaIoni Bowcher PROPOSAL
Mayumi B WieserFranceIvan Magalhaes QUALIFIED
Deepesh P ButtUnited KingdomXuxue Feng NEW
Silvio Q NestleItalyOnyama Limba PROPOSAL
Jeanfrancois K GauchoUnited KingdomAsiya Javayant NEGOTIATION
Mujtaba N WhobreyAustraliaAmy Elsner PROPOSAL
Maria N VenereItalyOnyama Limba NEW
Leon A MaletFranceIvan Magalhaes RENEWAL
Claire M DoeArgentinaAsiya Javayant UNQUALIFIED
Salvatore I AmigonCanadaAmy Elsner NEGOTIATION
Ricardo Y PoquetteCanadaAsiya Javayant PROPOSAL
Wickens X WhobreyJapanIoni Bowcher NEW
Ricardo Q PoquetteSpainBernardo Dominic UNQUALIFIED
Alejandro I CaldareraSpainStephen Shaw RENEWAL
Francesco A GarufiGermanyAnna Fali NEW
Francesco T StensethAustraliaStephen Shaw PROPOSAL
Munro S FigeroaItalyIvan Magalhaes NEW
Costa L MaletGermanyIvan Magalhaes RENEWAL
Francesco N VocelkaFranceAsiya Javayant NEGOTIATION
Aika P RutaSpainBernardo Dominic UNQUALIFIED
Emily A StensethGermanyAmy Elsner PROPOSAL
Salvatore B DarakjyBrazilBernardo Dominic PROPOSAL
Murillo H RimArgentinaBernardo Dominic QUALIFIED
Salvatore M NickaGermanyStephen Shaw NEW
Leja A IturbideItalyIvan Magalhaes RENEWAL
Maria C GillianGermanyAsiya Javayant NEW
Frozen Columns
Name
Jefferson L Saylors
Aika H Slusarski
Rodrigues E Nicka
Izzy F Chui
Jeanfrancois L Stenseth
Isabel I Flosi
Morrow Q Campain
Emily A Malet
Jeanfrancois S Bolognia
Maisha H Gillian
David I Gillian
Smith W Maclead
Johnson V Caldarera
Adams I Slusarski
Claire A Caudy
Silvio G Butt
Murillo Z Whobrey
Claire J Briddick
James O Perin
Misaki Y Gillian
Faith D Morasca
Sinclair K Iturbide
Jones W Ruta
Arvin T Nestle
Alejandro A Albares
Ashley M Morasca
Sinclair Y Inouye
Clifford J Venere
Aika T Malet
Murillo X Foller
Costa L Albares
Nicolas K Iturbide
Ashley Z Figeroa
Jeanfrancois L Rim
Aruna W Amigon
Faith S Stockham
Misaki C Morasca
Aika M Slusarski
Sinclair F Inouye
Julie G Darakjy
Emily Z Stenseth
Johnson Q Iturbide
Chavez K Paprocki
Juan J Saylors
Alejandro G Ferencz
Mayumi J Dilliard
Mujtaba I Chui
Chavez M Slusarski
Faith C Darakjy
Jeanfrancois F Butt
IdCountryDate
1000Australia2026-07-04
1001Spain2026-07-09
1002Canada2026-06-29
1003India2026-07-10
1004Russia2026-07-11
1005India2026-07-05
1006Japan2026-07-05
1007Russia2026-07-15
1008India2026-06-21
1009France2026-07-04
1010Brazil2026-07-08
1011Japan2026-06-27
1012Russia2026-07-18
1013Canada2026-06-24
1014France2026-06-26
1015France2026-07-05
1016Australia2026-06-30
1017Australia2026-07-18
1018United Kingdom2026-07-09
1019India2026-06-19
1020Argentina2026-06-21
1021India2026-07-11
1022Brazil2026-07-09
1023Spain2026-07-17
1024Italy2026-06-21
1025Argentina2026-07-11
1026Russia2026-06-30
1027Brazil2026-06-19
1028Argentina2026-07-06
1029Brazil2026-07-03
1030Italy2026-06-19
1031Brazil2026-07-14
1032Australia2026-07-09
1033India2026-07-08
1034Canada2026-06-19
1035Italy2026-07-02
1036Japan2026-06-29
1037Italy2026-07-06
1038Brazil2026-07-04
1039Australia2026-07-06
1040Russia2026-07-08
1041Argentina2026-06-27
1042Argentina2026-07-15
1043India2026-07-05
1044Spain2026-06-22
1045Brazil2026-06-26
1046Argentina2026-07-14
1047Russia2026-06-26
1048Japan2026-06-23
1049Argentina2026-06-19

On-Demand Data

NameIdCountryDate
Izzy R Kolmetz1000Germany2026-07-12
Izzy O Slusarski1001Argentina2026-06-19
Claire Z Malet1002Argentina2026-06-22
Emily L Rim1003India2026-07-03
Maria Q Malet1004Australia2026-07-07
Jennifer Y Flosi1005Japan2026-07-09
Adams W Maclead1006Spain2026-06-30
Aditya B Garufi1007India2026-06-27
Adams H Poquette1008Brazil2026-07-04
Smith D Butt1009Russia2026-07-15
Aruna U Whobrey1010Australia2026-06-27
Julie G Ferencz1011Germany2026-07-18
Misaki H Schemmer1012Japan2026-07-10
Rodrigues P Flosi1013Japan2026-07-06
Darci C Ostrosky1014India2026-06-28
Greenwood A Dilliard1015Canada2026-07-16
Claire B Iturbide1016Canada2026-07-14
Greenwood A Slusarski1017Canada2026-06-26
Sinclair F Chui1018Spain2026-07-17
Murillo Z Rulapaugh1019India2026-07-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha B DilliardFranceIvan Magalhaes UNQUALIFIED
Antonio U DilliardSpainBernardo Dominic NEW
Leja C VenereFranceAmy Elsner RENEWAL
Nicolas E GillianRussiaIvan Magalhaes RENEWAL
Claire O DoeArgentinaAmy Elsner RENEWAL
Maisha X VocelkaItalyElwin Sharvill UNQUALIFIED
Jeanfrancois P BriddickBrazilStephen Shaw PROPOSAL
Antonio F StockhamRussiaAsiya Javayant QUALIFIED
James F BologniaSpainOnyama Limba UNQUALIFIED
Tony L MaletRussiaAnna Fali NEW
Claire X GauchoIndiaStephen Shaw QUALIFIED
Jefferson N StockhamUnited KingdomIvan Magalhaes PROPOSAL
Mujtaba U OldroydRussiaAmy Elsner NEW
Darci C DarakjyItalyIvan Magalhaes RENEWAL
Chavez E BowleyGermanyOnyama Limba NEW
Julie V PaprockiBrazilIoni Bowcher NEW
Julie J MarrierSpainStephen Shaw UNQUALIFIED
Francesco I ButtIndiaOnyama Limba NEW
Francesco M RimArgentinaIvan Magalhaes UNQUALIFIED
Francesco F FerenczArgentinaXuxue Feng UNQUALIFIED
Juan T WieserIndiaStephen Shaw NEGOTIATION
Julie T OstroskyItalyXuxue Feng UNQUALIFIED
James D VenereSpainAmy Elsner PROPOSAL
Darci D ButtAustraliaStephen Shaw PROPOSAL
Emily T StockhamJapanIvan Magalhaes NEW
Chavez J GlickUnited KingdomIvan Magalhaes QUALIFIED
Mayumi R MaletArgentinaElwin Sharvill NEGOTIATION
Kadeem Y MorascaFranceXuxue Feng NEW
Alejandro O MacleadCanadaIvan Magalhaes NEW
James Q DarakjyRussiaStephen Shaw RENEWAL
Smith H CaldareraArgentinaOnyama Limba QUALIFIED
Maria A GarufiArgentinaAmy Elsner QUALIFIED
Morrow L OstroskyJapanAnna Fali RENEWAL
Jones S GarufiUnited KingdomElwin Sharvill NEW
Ashley A CaudyCanadaIvan Magalhaes RENEWAL
Mayumi K AlbaresIndiaXuxue Feng QUALIFIED
Octavia T OldroydCanadaAnna Fali UNQUALIFIED
Smith E NestleAustraliaAmy Elsner UNQUALIFIED
James V CaldareraSpainOnyama Limba UNQUALIFIED
Izzy L MaletArgentinaElwin Sharvill 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>