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
Salvatore V TollnerJapanXuxue Feng NEGOTIATION
Johnson Z SaylorsArgentinaAnna Fali NEW
Deepesh J MaletUnited KingdomAsiya Javayant UNQUALIFIED
Sinclair X MarrierAustraliaAmy Elsner NEW
Arvin Z KuskoItalyAsiya Javayant RENEWAL
Leon L MacleadBrazilAmy Elsner UNQUALIFIED
Darci A KuskoArgentinaIvan Magalhaes PROPOSAL
Smith A ButtUnited KingdomStephen Shaw RENEWAL
Darci A SaylorsCanadaElwin Sharvill QUALIFIED
Ashley P BriddickRussiaElwin Sharvill PROPOSAL
Jones D AlbaresJapanIvan Magalhaes PROPOSAL
Antonio U IturbideUnited KingdomStephen Shaw NEW
Aika B FlosiBrazilIoni Bowcher NEW
Cody B DarakjyUnited KingdomAnna Fali NEGOTIATION
Silvio Y SaylorsAustraliaAmy Elsner PROPOSAL
Francesco E SaylorsArgentinaAsiya Javayant QUALIFIED
Greenwood I CampainFranceStephen Shaw PROPOSAL
Misaki D ButtFranceIoni Bowcher NEW
Adams O FerenczUnited KingdomOnyama Limba RENEWAL
Sinclair I BowleyJapanAmy Elsner NEW
Ashley E DilliardGermanyAmy Elsner NEW
Jefferson O DoeBrazilIvan Magalhaes RENEWAL
Arvin Z ChuiSpainAmy Elsner RENEWAL
Alejandro Q SchemmerFranceAnna Fali NEW
Costa I NestleFranceAmy Elsner QUALIFIED
Smith F RimBrazilBernardo Dominic PROPOSAL
Kadeem I GlickFranceOnyama Limba NEW
Silvio J PaprockiIndiaOnyama Limba PROPOSAL
Izzy U DilliardIndiaAsiya Javayant RENEWAL
Aika I FollerIndiaStephen Shaw UNQUALIFIED
Emily S MarrierFranceAsiya Javayant NEGOTIATION
Arvin R GauchoBrazilStephen Shaw PROPOSAL
Jones D ShinkoIndiaElwin Sharvill PROPOSAL
Salvatore Q GarufiJapanStephen Shaw NEW
Nicolas H WaycottFranceAmy Elsner UNQUALIFIED
Mujtaba J OstroskyJapanStephen Shaw UNQUALIFIED
Jeanfrancois J FerenczItalyOnyama Limba QUALIFIED
Wickens U GlickCanadaElwin Sharvill NEW
Leon X SaylorsGermanyAnna Fali NEW
James A MarrierItalyXuxue Feng NEGOTIATION
Ivar E InouyeUnited KingdomStephen Shaw PROPOSAL
Aika Q ButtBrazilIvan Magalhaes NEW
Jennifer X MarrierBrazilIoni Bowcher NEGOTIATION
Alejandro L VocelkaIndiaBernardo Dominic RENEWAL
Jennifer G MaletSpainAmy Elsner RENEWAL
Octavia T FigeroaArgentinaAmy Elsner NEGOTIATION
Izzy P DarakjyCanadaElwin Sharvill NEW
Murillo W MarrierAustraliaOnyama Limba NEW
Aika C TollnerIndiaOnyama Limba PROPOSAL
Nicolas A GauchoCanadaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Ivar X SchemmerJapanOnyama Limba NEGOTIATION
Wickens U RulapaughSpainIvan Magalhaes RENEWAL
Misaki O RulapaughIndiaAsiya Javayant QUALIFIED
Claire M ShinkoItalyOnyama Limba QUALIFIED
Jeanfrancois G FerenczUnited KingdomAsiya Javayant RENEWAL
Clifford C AlbaresCanadaBernardo Dominic PROPOSAL
Jefferson L PoquetteAustraliaElwin Sharvill PROPOSAL
Stacey L WaycottCanadaBernardo Dominic PROPOSAL
Mayumi F ChuiRussiaAnna Fali QUALIFIED
Aika N WhobreyFranceAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin L AlbaresAustralia2026-07-19Truhlar And Truhlar Attys RENEWAL48Anna Fali
1001Clifford B StensethAustralia2026-07-22Chemel, James L Cpa NEW32Stephen Shaw
1002Jennifer Z PoquetteIndia2026-08-15Rousseaux, Michael Esq PROPOSAL69Ioni Bowcher
1003Octavia B OstroskyUnited Kingdom2026-07-27Buckley Miller Wright NEGOTIATION42Anna Fali
1004Aruna Z MorascaIndia2026-08-01Rangoni Of Florence NEGOTIATION66Ivan Magalhaes
1005Claire X NickaJapan2026-07-29Chemel, James L Cpa UNQUALIFIED11Xuxue Feng
1006Antonio C MaletCanada2026-08-10Chapman, Ross E Esq NEGOTIATION37Asiya Javayant
1007Silvio I SaylorsUnited Kingdom2026-08-01King, Christopher A Esq RENEWAL52Ivan Magalhaes
1008Salvatore T FollerAustralia2026-08-07Chapman, Ross E Esq QUALIFIED26Amy Elsner
1009Ivar L WaycottAustralia2026-07-21Buckley Miller Wright NEGOTIATION25Bernardo Dominic
1010Darci T WieserAustralia2026-08-12Printing Dimensions UNQUALIFIED89Xuxue Feng
1011Isabel Y NickaUnited Kingdom2026-08-03Chanay, Jeffrey A Esq NEW91Asiya Javayant
1012Antonio W PoquetteItaly2026-08-12King, Christopher A Esq UNQUALIFIED70Xuxue Feng
1013Cody K OldroydAustralia2026-07-20Truhlar And Truhlar Attys UNQUALIFIED16Bernardo Dominic
1014Arvin G FlosiFrance2026-08-09Printing Dimensions RENEWAL28Stephen Shaw
1015Misaki X DilliardJapan2026-08-08Rousseaux, Michael Esq UNQUALIFIED38Ivan Magalhaes
1016Izzy X DarakjyJapan2026-08-06Rangoni Of Florence QUALIFIED24Xuxue Feng
1017Rodrigues U CaldareraAustralia2026-07-22Chemel, James L Cpa QUALIFIED80Elwin Sharvill
1018Jefferson H SlusarskiCanada2026-08-04Benton, John B Jr NEGOTIATION25Bernardo Dominic
1019Kadeem J CaldareraRussia2026-07-26Commercial Press UNQUALIFIED51Anna Fali
1020Kaitlin M GauchoAustralia2026-08-07Commercial Press QUALIFIED58Anna Fali
1021Morrow I WhobreyIndia2026-08-07Rousseaux, Michael Esq RENEWAL64Stephen Shaw
1022Darci L CampainArgentina2026-07-31Feltz Printing Service QUALIFIED32Ioni Bowcher
1023Costa X DarakjyArgentina2026-08-04Rangoni Of Florence NEGOTIATION4Xuxue Feng
1024Mujtaba N CaudyItaly2026-08-04Feltz Printing Service PROPOSAL84Asiya Javayant
1025Jones C FigeroaFrance2026-08-08Chanay, Jeffrey A Esq QUALIFIED92Onyama Limba
1026Nicolas P FollerArgentina2026-07-24Feiner Bros QUALIFIED26Asiya Javayant
1027Rodrigues F FerenczSpain2026-08-06Commercial Press PROPOSAL83Anna Fali
1028Claire W KuskoBrazil2026-07-22Chapman, Ross E Esq NEGOTIATION21Stephen Shaw
1029Clifford P RulapaughJapan2026-08-07Benton, John B Jr UNQUALIFIED82Onyama Limba
1030Rodrigues B PaprockiIndia2026-07-18King, Christopher A Esq NEGOTIATION39Anna Fali
1031Izzy Z BowleyGermany2026-08-15Printing Dimensions UNQUALIFIED39Amy Elsner
1032Smith B ChuiRussia2026-07-26Chapman, Ross E Esq NEW58Stephen Shaw
1033Stacey B FlosiUnited Kingdom2026-07-22Rousseaux, Michael Esq UNQUALIFIED3Bernardo Dominic
1034Jefferson F InouyeBrazil2026-07-25Rangoni Of Florence QUALIFIED99Stephen Shaw
1035Silvio K VenereRussia2026-07-27Morlong Associates NEGOTIATION69Elwin Sharvill
1036Leja H FollerRussia2026-08-14Morlong Associates RENEWAL51Bernardo Dominic
1037Emily N StockhamArgentina2026-07-24Buckley Miller Wright PROPOSAL37Stephen Shaw
1038Jones S TollnerUnited Kingdom2026-07-18Chanay, Jeffrey A Esq RENEWAL96Ioni Bowcher
1039Izzy Y NickaBrazil2026-07-29Buckley Miller Wright NEW84Bernardo Dominic
1040Ivar T OldroydItaly2026-08-01Truhlar And Truhlar Attys RENEWAL87Amy Elsner
1041Cody B PerinRussia2026-07-25Rousseaux, Michael Esq PROPOSAL78Amy Elsner
1042Mujtaba J WaycottGermany2026-07-21Feiner Bros QUALIFIED27Ivan Magalhaes
1043Ashley D MaletAustralia2026-07-19Rousseaux, Michael Esq QUALIFIED57Amy Elsner
1044Arvin C WieserGermany2026-08-09Feiner Bros PROPOSAL59Xuxue Feng
1045Jefferson S BowleyUnited Kingdom2026-08-16Chanay, Jeffrey A Esq QUALIFIED81Ivan Magalhaes
1046Jones W SergiBrazil2026-08-06Rousseaux, Michael Esq QUALIFIED42Elwin Sharvill
1047Claire X KolmetzAustralia2026-08-02Truhlar And Truhlar Attys PROPOSAL15Elwin Sharvill
1048Kadeem C MaletGermany2026-07-31Buckley Miller Wright QUALIFIED19Ioni Bowcher
1049Jennifer O PoquetteUnited Kingdom2026-07-21King, Christopher A Esq QUALIFIED37Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Munro L SlusarskiArgentinaStephen Shaw RENEWAL
Jennifer V ChuiBrazilAnna Fali RENEWAL
Tony S BologniaItalyElwin Sharvill QUALIFIED
Rodrigues H DoeFranceBernardo Dominic UNQUALIFIED
Sinclair M VocelkaRussiaIvan Magalhaes NEW
Octavia B MacleadBrazilIoni Bowcher NEGOTIATION
Maria L DilliardCanadaXuxue Feng UNQUALIFIED
Jones D BologniaAustraliaIoni Bowcher QUALIFIED
Silvio D GillianArgentinaAmy Elsner QUALIFIED
Rodrigues D FollerUnited KingdomOnyama Limba RENEWAL
Cody T MacleadAustraliaAsiya Javayant QUALIFIED
Octavia U CaudyUnited KingdomXuxue Feng QUALIFIED
Munro E StockhamRussiaAmy Elsner QUALIFIED
Deepesh J MorascaBrazilIoni Bowcher NEGOTIATION
Murillo C KolmetzBrazilBernardo Dominic NEW
Ricardo N RimIndiaAnna Fali PROPOSAL
Cody X ButtCanadaStephen Shaw RENEWAL
Ashley I InouyeRussiaStephen Shaw RENEWAL
Faith C PaprockiItalyStephen Shaw QUALIFIED
Emily R PoquetteIndiaBernardo Dominic NEW
Juan D AlbaresSpainIoni Bowcher NEGOTIATION
Emily J MorascaGermanyElwin Sharvill UNQUALIFIED
Jeanfrancois O RutaGermanyAnna Fali NEGOTIATION
Maria H WieserUnited KingdomBernardo Dominic QUALIFIED
Maria J TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Juan L BowleySpainBernardo Dominic UNQUALIFIED
Nicolas Y StensethItalyStephen Shaw PROPOSAL
Kadeem C FollerRussiaElwin Sharvill NEGOTIATION
Leon Y MaletIndiaAmy Elsner QUALIFIED
Silvio S GarufiSpainIvan Magalhaes UNQUALIFIED
Leon Y RutaArgentinaXuxue Feng UNQUALIFIED
Alejandro H StensethIndiaIoni Bowcher RENEWAL
Munro N PerinJapanAnna Fali QUALIFIED
Jeanfrancois W ShinkoBrazilIoni Bowcher UNQUALIFIED
Darci U WieserArgentinaAsiya Javayant QUALIFIED
Jennifer W SchemmerArgentinaStephen Shaw QUALIFIED
Murillo G FollerArgentinaElwin Sharvill UNQUALIFIED
Maisha D RoysterGermanyElwin Sharvill NEW
Francesco L GlickJapanIvan Magalhaes UNQUALIFIED
James H GarufiGermanyIvan Magalhaes UNQUALIFIED
Cody K MorascaSpainOnyama Limba UNQUALIFIED
Leja D GarufiAustraliaIvan Magalhaes RENEWAL
Greenwood B NestleUnited KingdomIvan Magalhaes PROPOSAL
Leja G StockhamGermanyAmy Elsner UNQUALIFIED
Antonio E CampainCanadaAmy Elsner PROPOSAL
Claire Z GlickArgentinaIoni Bowcher NEW
Antonio O WhobreyRussiaOnyama Limba QUALIFIED
Maria Q NickaSpainStephen Shaw QUALIFIED
Darci A VocelkaGermanyOnyama Limba NEW
Adams M RulapaughGermanyAnna Fali NEGOTIATION
Frozen Columns
Name
Nicolas N Caldarera
Ashley E Campain
Isabel F Dilliard
Kadeem R Marrier
Adams O Briddick
Misaki K Wieser
Maisha D Doe
Munro T Ruta
Deepesh Y Inouye
Darci E Inouye
Greenwood X Campain
Maria L Whobrey
Wickens D Slusarski
Deepesh D Maclead
Arvin F Venere
Salvatore Z Paprocki
Stacey W Whobrey
Chavez J Malet
Ricardo R Darakjy
Francesco Z Figeroa
Francesco O Campain
Arvin M Doe
Kadeem Q Oldroyd
Mujtaba K Gillian
Isabel S Stenseth
Jefferson B Kolmetz
Stacey U Bowley
Chavez U Vocelka
Sinclair L Slusarski
Chavez N Albares
Maisha Y Flosi
Aruna Y Caldarera
Kadeem N Bowley
James B Oldroyd
Stacey H Darakjy
Deepesh L Chui
James I Doe
Isabel Y Chui
Mujtaba F Amigon
Jones W Inouye
Leja M Darakjy
Wickens V Butt
Tony F Shinko
Adams K Malet
Kaitlin H Iturbide
Jones G Caudy
Aika J Poquette
Aruna R Paprocki
Greenwood G Kusko
Leja I Foller
IdCountryDate
1000France2026-08-02
1001Japan2026-07-27
1002India2026-08-04
1003Brazil2026-08-14
1004France2026-08-12
1005France2026-07-26
1006Germany2026-08-13
1007Brazil2026-08-14
1008Brazil2026-08-15
1009Russia2026-08-16
1010France2026-07-20
1011Canada2026-07-23
1012United Kingdom2026-08-10
1013Japan2026-08-03
1014Argentina2026-08-15
1015India2026-08-06
1016Italy2026-07-31
1017Argentina2026-08-09
1018Italy2026-07-27
1019Italy2026-07-22
1020Argentina2026-08-04
1021India2026-07-21
1022France2026-08-03
1023Japan2026-08-07
1024Canada2026-07-20
1025France2026-08-11
1026Germany2026-08-15
1027Italy2026-08-12
1028Australia2026-07-26
1029India2026-07-20
1030Brazil2026-08-12
1031Argentina2026-08-12
1032Germany2026-08-10
1033Japan2026-07-27
1034India2026-08-13
1035Japan2026-08-14
1036Canada2026-07-29
1037France2026-07-22
1038Australia2026-07-30
1039India2026-08-01
1040Australia2026-08-11
1041Canada2026-08-13
1042Spain2026-08-09
1043Argentina2026-07-23
1044Spain2026-08-11
1045Russia2026-08-16
1046Canada2026-07-31
1047India2026-07-25
1048Australia2026-07-24
1049Australia2026-07-28

On-Demand Data

NameIdCountryDate
Kaitlin L Chui1000Brazil2026-07-23
Arvin D Poquette1001Japan2026-08-10
Wickens Y Vocelka1002Australia2026-08-06
Misaki E Stenseth1003United Kingdom2026-08-08
Kadeem A Foller1004Italy2026-07-28
Maisha B Royster1005India2026-07-29
Stacey H Iturbide1006Russia2026-08-01
Alejandro V Maclead1007United Kingdom2026-07-31
David M Schemmer1008France2026-08-01
Francesco S Briddick1009Brazil2026-07-21
Rodrigues S Caldarera1010Canada2026-08-03
Aruna G Poquette1011Canada2026-08-11
Munro W Rulapaugh1012Brazil2026-08-01
Smith S Maclead1013Russia2026-08-07
Deepesh U Tollner1014Argentina2026-07-31
Kadeem E Darakjy1015Canada2026-08-16
Ashley F Figeroa1016Brazil2026-07-26
Morrow S Dilliard1017France2026-07-30
Izzy S Campain1018Argentina2026-08-16
Leon V Gillian1019United Kingdom2026-08-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio O OldroydCanadaAsiya Javayant QUALIFIED
Silvio O SlusarskiBrazilIvan Magalhaes NEGOTIATION
Misaki F StockhamGermanyAnna Fali QUALIFIED
Greenwood M StockhamSpainElwin Sharvill UNQUALIFIED
Morrow W SaylorsJapanBernardo Dominic PROPOSAL
Ashley R VocelkaCanadaStephen Shaw NEGOTIATION
Ivar P FollerUnited KingdomElwin Sharvill NEGOTIATION
Octavia P BowleyRussiaIvan Magalhaes NEGOTIATION
David W FerenczIndiaXuxue Feng UNQUALIFIED
Sinclair R BologniaUnited KingdomIvan Magalhaes UNQUALIFIED
Johnson M NestleArgentinaStephen Shaw QUALIFIED
Claire M PerinFranceAsiya Javayant QUALIFIED
Aditya T SaylorsSpainOnyama Limba NEW
Costa Q WhobreyJapanIvan Magalhaes PROPOSAL
Ricardo E StockhamArgentinaIvan Magalhaes NEGOTIATION
Aruna T DilliardArgentinaAsiya Javayant NEGOTIATION
Alejandro U GarufiItalyAsiya Javayant NEW
Octavia M DarakjyArgentinaIoni Bowcher NEGOTIATION
Arvin I DilliardFranceElwin Sharvill NEW
Misaki D BowleySpainXuxue Feng PROPOSAL
Antonio X VocelkaUnited KingdomIoni Bowcher NEW
David J AlbaresJapanIoni Bowcher QUALIFIED
Aditya M CampainJapanBernardo Dominic PROPOSAL
Adams X BowleyRussiaIvan Magalhaes QUALIFIED
Jones C StensethIndiaBernardo Dominic PROPOSAL
Ashley J ChuiBrazilAnna Fali RENEWAL
Johnson Z CaldareraArgentinaAsiya Javayant QUALIFIED
Clifford L GarufiRussiaAnna Fali NEGOTIATION
Ivar Y AmigonUnited KingdomIoni Bowcher PROPOSAL
Sinclair X DilliardRussiaAsiya Javayant QUALIFIED
Sinclair P WhobreySpainAsiya Javayant PROPOSAL
Sinclair T StensethGermanyIoni Bowcher NEGOTIATION
Leja Q VenereSpainXuxue Feng PROPOSAL
Jones O CampainSpainBernardo Dominic RENEWAL
Kadeem Y RoysterJapanStephen Shaw NEGOTIATION
Jefferson Q ChuiAustraliaOnyama Limba RENEWAL
Ivar I PaprockiBrazilAsiya Javayant PROPOSAL
Leon T ChuiIndiaXuxue Feng NEW
David G AlbaresItalyXuxue Feng NEGOTIATION
Leja F CaudySpainIoni Bowcher 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>