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
Aika Z AmigonGermanyOnyama Limba RENEWAL
Juan C MarrierGermanyAsiya Javayant UNQUALIFIED
Aditya E GauchoFranceOnyama Limba RENEWAL
Aika G DoeBrazilIvan Magalhaes PROPOSAL
Rodrigues P WhobreyBrazilAmy Elsner NEGOTIATION
Jennifer U SchemmerRussiaAnna Fali PROPOSAL
Rodrigues K NickaRussiaAnna Fali NEGOTIATION
Stacey T BologniaUnited KingdomBernardo Dominic RENEWAL
Costa H CampainAustraliaElwin Sharvill UNQUALIFIED
Misaki W VocelkaCanadaIvan Magalhaes UNQUALIFIED
Salvatore T BowleyGermanyIoni Bowcher QUALIFIED
Rodrigues K SergiItalyAnna Fali UNQUALIFIED
Silvio W CaldareraIndiaStephen Shaw UNQUALIFIED
Wickens D RimSpainIvan Magalhaes PROPOSAL
Mayumi J FlosiRussiaElwin Sharvill UNQUALIFIED
Izzy K SaylorsIndiaStephen Shaw UNQUALIFIED
Jennifer P StensethAustraliaXuxue Feng NEW
Ashley D MaletArgentinaXuxue Feng NEGOTIATION
Salvatore G ButtSpainAsiya Javayant NEW
Jennifer D DarakjyUnited KingdomIoni Bowcher PROPOSAL
Morrow H MaletItalyIoni Bowcher UNQUALIFIED
Johnson D GillianRussiaXuxue Feng RENEWAL
Munro M FerenczIndiaXuxue Feng QUALIFIED
Costa T SergiRussiaOnyama Limba NEW
Maria U WhobreyCanadaAnna Fali UNQUALIFIED
Chavez Z SaylorsJapanIoni Bowcher RENEWAL
Francesco G RimBrazilOnyama Limba PROPOSAL
Julie Q RulapaughGermanyAmy Elsner NEW
Tony Q WieserGermanyElwin Sharvill UNQUALIFIED
Aruna Z MacleadSpainOnyama Limba NEGOTIATION
Jeanfrancois U WaycottFranceAnna Fali RENEWAL
Aruna O NickaIndiaAsiya Javayant QUALIFIED
Leon R NickaIndiaBernardo Dominic UNQUALIFIED
Jones K CampainGermanyAnna Fali UNQUALIFIED
Jones H MarrierJapanAmy Elsner RENEWAL
Maria E KuskoItalyIoni Bowcher NEGOTIATION
Faith S RimBrazilBernardo Dominic RENEWAL
Maisha Z SergiIndiaAnna Fali PROPOSAL
Claire I GillianCanadaXuxue Feng NEGOTIATION
Misaki T RimBrazilIvan Magalhaes NEW
Ashley R KuskoFranceElwin Sharvill UNQUALIFIED
Silvio U GillianIndiaElwin Sharvill NEGOTIATION
Darci Z AlbaresCanadaBernardo Dominic RENEWAL
Ricardo X OldroydUnited KingdomElwin Sharvill NEGOTIATION
Salvatore M OldroydIndiaXuxue Feng NEW
Faith J ButtRussiaAnna Fali RENEWAL
Stacey O KolmetzBrazilXuxue Feng NEGOTIATION
Jones S WaycottArgentinaElwin Sharvill PROPOSAL
David E BologniaJapanIoni Bowcher UNQUALIFIED
Isabel P InouyeGermanyStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson D NestleRussiaElwin Sharvill RENEWAL
Claire B SchemmerAustraliaIoni Bowcher RENEWAL
Arvin P FigeroaJapanOnyama Limba UNQUALIFIED
Ricardo S SergiJapanAmy Elsner NEGOTIATION
Morrow C RimRussiaAmy Elsner PROPOSAL
Julie P PerinRussiaAnna Fali UNQUALIFIED
Francesco W AmigonIndiaAmy Elsner QUALIFIED
Rodrigues R FerenczJapanIvan Magalhaes NEW
Adams Y InouyeAustraliaIvan Magalhaes UNQUALIFIED
Greenwood H SlusarskiCanadaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja Q StockhamCanada2026-06-24Rangoni Of Florence UNQUALIFIED25Bernardo Dominic
1001Ricardo T GlickRussia2026-06-29Truhlar And Truhlar Attys PROPOSAL13Anna Fali
1002Ivar X AlbaresAustralia2026-07-10Feiner Bros QUALIFIED2Onyama Limba
1003Izzy A PerinRussia2026-07-07Printing Dimensions NEGOTIATION45Xuxue Feng
1004Antonio Z KuskoItaly2026-06-30Feltz Printing Service UNQUALIFIED34Elwin Sharvill
1005Murillo D ShinkoSpain2026-07-02Morlong Associates NEGOTIATION47Amy Elsner
1006Chavez S RutaAustralia2026-07-17Printing Dimensions UNQUALIFIED38Bernardo Dominic
1007Jeanfrancois A RulapaughIndia2026-06-22Chapman, Ross E Esq NEGOTIATION58Ivan Magalhaes
1008Silvio L MaletArgentina2026-06-29Chemel, James L Cpa NEW39Ioni Bowcher
1009Ashley V MaletCanada2026-07-06Printing Dimensions NEGOTIATION10Elwin Sharvill
1010Greenwood L ChuiGermany2026-07-08Rangoni Of Florence QUALIFIED64Ioni Bowcher
1011Jeanfrancois H SaylorsFrance2026-07-09Benton, John B Jr NEGOTIATION72Onyama Limba
1012Arvin X CaldareraGermany2026-06-19Chemel, James L Cpa RENEWAL2Amy Elsner
1013Juan O RulapaughCanada2026-07-10Dorl, James J Esq QUALIFIED17Onyama Limba
1014Emily M GauchoUnited Kingdom2026-06-26King, Christopher A Esq NEGOTIATION91Onyama Limba
1015Wickens K BriddickSpain2026-07-15Feltz Printing Service UNQUALIFIED75Elwin Sharvill
1016Jones L BowleyUnited Kingdom2026-06-20Printing Dimensions PROPOSAL56Amy Elsner
1017Rodrigues X FerenczSpain2026-06-29Rousseaux, Michael Esq PROPOSAL76Onyama Limba
1018Aika Y ShinkoUnited Kingdom2026-06-19Rousseaux, Michael Esq NEGOTIATION63Anna Fali
1019Aruna Q StockhamAustralia2026-07-13Commercial Press NEW92Amy Elsner
1020Cody U MorascaRussia2026-07-10Feltz Printing Service UNQUALIFIED50Anna Fali
1021Misaki D FerenczBrazil2026-06-22Chanay, Jeffrey A Esq NEGOTIATION98Xuxue Feng
1022Kaitlin N KolmetzIndia2026-07-14Dorl, James J Esq UNQUALIFIED70Elwin Sharvill
1023Aruna S IturbideJapan2026-06-27Chanay, Jeffrey A Esq NEGOTIATION22Asiya Javayant
1024Francesco T CaudyBrazil2026-07-14Rousseaux, Michael Esq QUALIFIED22Anna Fali
1025Octavia E KolmetzAustralia2026-06-22Printing Dimensions NEGOTIATION99Bernardo Dominic
1026Emily T MaletFrance2026-06-27Chemel, James L Cpa NEW12Onyama Limba
1027Mayumi X CampainFrance2026-06-19Printing Dimensions QUALIFIED95Stephen Shaw
1028Mujtaba Z MaletGermany2026-07-11Dorl, James J Esq QUALIFIED53Ivan Magalhaes
1029Jones R SergiCanada2026-07-15King, Christopher A Esq NEGOTIATION74Xuxue Feng
1030Octavia T WieserItaly2026-07-11Rangoni Of Florence UNQUALIFIED4Stephen Shaw
1031Cody K DarakjyAustralia2026-07-15Truhlar And Truhlar Attys UNQUALIFIED97Ivan Magalhaes
1032Greenwood J GlickItaly2026-07-01Truhlar And Truhlar Attys QUALIFIED32Ioni Bowcher
1033Murillo Q GarufiRussia2026-06-23Truhlar And Truhlar Attys NEGOTIATION1Stephen Shaw
1034Alejandro C StensethRussia2026-07-07Rangoni Of Florence QUALIFIED92Anna Fali
1035Octavia A NestleCanada2026-07-12Chemel, James L Cpa UNQUALIFIED65Ioni Bowcher
1036Wickens D DilliardItaly2026-06-28Benton, John B Jr NEGOTIATION52Amy Elsner
1037Octavia Y SaylorsUnited Kingdom2026-06-21Benton, John B Jr UNQUALIFIED44Amy Elsner
1038Morrow F MaletSpain2026-06-25Commercial Press UNQUALIFIED0Anna Fali
1039Jennifer W NestleUnited Kingdom2026-07-17Chapman, Ross E Esq UNQUALIFIED65Ioni Bowcher
1040Jones W MorascaBrazil2026-07-10Printing Dimensions PROPOSAL20Xuxue Feng
1041Claire N MarrierGermany2026-07-17Feiner Bros PROPOSAL61Stephen Shaw
1042Maria E InouyeUnited Kingdom2026-07-10Rangoni Of Florence RENEWAL2Onyama Limba
1043Cody Y IturbideSpain2026-06-20Commercial Press RENEWAL47Ivan Magalhaes
1044Julie N TollnerCanada2026-07-14Chapman, Ross E Esq PROPOSAL14Amy Elsner
1045Antonio K GauchoAustralia2026-06-25Truhlar And Truhlar Attys PROPOSAL92Ioni Bowcher
1046Juan T GauchoArgentina2026-06-28Printing Dimensions RENEWAL70Stephen Shaw
1047Misaki K SchemmerUnited Kingdom2026-07-07King, Christopher A Esq RENEWAL54Amy Elsner
1048Johnson X MaletArgentina2026-07-09Rangoni Of Florence NEGOTIATION5Ivan Magalhaes
1049Maisha P BologniaFrance2026-07-17Benton, John B Jr PROPOSAL77Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Julie P SergiAustraliaStephen Shaw RENEWAL
Ivar S WieserUnited KingdomOnyama Limba UNQUALIFIED
Ivar R SaylorsUnited KingdomBernardo Dominic NEGOTIATION
Clifford C GauchoItalyElwin Sharvill UNQUALIFIED
Maria B OstroskyBrazilIoni Bowcher UNQUALIFIED
Wickens A OldroydAustraliaAnna Fali NEW
Kaitlin P BowleyBrazilOnyama Limba NEGOTIATION
Greenwood J SlusarskiUnited KingdomBernardo Dominic RENEWAL
Kadeem S AlbaresFranceXuxue Feng NEGOTIATION
Sinclair J ChuiBrazilBernardo Dominic QUALIFIED
Ivar B OldroydBrazilBernardo Dominic NEGOTIATION
Ricardo Y KolmetzBrazilElwin Sharvill NEGOTIATION
Mujtaba I GauchoAustraliaOnyama Limba NEGOTIATION
Arvin S GillianGermanyOnyama Limba QUALIFIED
Sinclair B IturbideBrazilIoni Bowcher NEGOTIATION
Arvin T DoeBrazilStephen Shaw NEGOTIATION
Isabel J GauchoAustraliaStephen Shaw RENEWAL
Chavez O BriddickBrazilAsiya Javayant UNQUALIFIED
Johnson H VocelkaUnited KingdomStephen Shaw PROPOSAL
Rodrigues E AmigonCanadaStephen Shaw UNQUALIFIED
Ricardo M CaldareraFranceAsiya Javayant QUALIFIED
Ivar K ButtIndiaAnna Fali RENEWAL
Arvin S AmigonIndiaXuxue Feng PROPOSAL
Antonio I FerenczBrazilAmy Elsner RENEWAL
Darci V ChuiBrazilIvan Magalhaes QUALIFIED
Ricardo G NestleAustraliaElwin Sharvill RENEWAL
Izzy O SaylorsSpainXuxue Feng QUALIFIED
Cody Q SchemmerGermanyXuxue Feng RENEWAL
Stacey H TollnerJapanIoni Bowcher PROPOSAL
Julie J FerenczSpainBernardo Dominic PROPOSAL
Murillo E GillianItalyXuxue Feng NEGOTIATION
Salvatore Q ShinkoBrazilAnna Fali NEGOTIATION
Maisha D SchemmerBrazilAmy Elsner NEGOTIATION
Clifford Y MaletItalyAmy Elsner UNQUALIFIED
Murillo O DoeArgentinaBernardo Dominic QUALIFIED
Morrow D MacleadItalyAmy Elsner RENEWAL
Jones U FigeroaAustraliaAmy Elsner PROPOSAL
Jones Q PoquetteJapanAnna Fali UNQUALIFIED
Greenwood Z KolmetzUnited KingdomXuxue Feng QUALIFIED
Deepesh C MacleadFranceIoni Bowcher NEGOTIATION
Kaitlin P KolmetzIndiaXuxue Feng NEGOTIATION
Darci C GillianAustraliaAsiya Javayant NEGOTIATION
Deepesh P DoeBrazilAnna Fali NEGOTIATION
Ricardo P DilliardRussiaAnna Fali RENEWAL
Cody H SaylorsCanadaAnna Fali UNQUALIFIED
Jennifer Y InouyeUnited KingdomStephen Shaw RENEWAL
Murillo J InouyeUnited KingdomBernardo Dominic UNQUALIFIED
Leon J AmigonFranceAnna Fali PROPOSAL
Claire A BologniaAustraliaOnyama Limba NEGOTIATION
Adams Y WieserJapanAmy Elsner PROPOSAL
Frozen Columns
Name
Antonio Z Waycott
Costa X Maclead
Munro D Malet
Maria N Perin
Costa C Rulapaugh
Salvatore C Vocelka
Adams V Caudy
Antonio R Iturbide
David G Nestle
Clifford D Campain
Kadeem G Marrier
Aruna I Gillian
Mayumi S Foller
Smith X Wieser
Francesco R Vocelka
Ricardo E Shinko
Emily K Slusarski
Aika X Oldroyd
Silvio X Chui
Kadeem E Ruta
Maisha O Marrier
Misaki O Marrier
Jennifer S Slusarski
Alejandro T Caldarera
Ashley J Ostrosky
Chavez V Oldroyd
Silvio J Paprocki
James N Malet
Leja B Ostrosky
Maisha D Foller
Francesco P Chui
Cody J Amigon
Kadeem C Sergi
Kadeem H Tollner
Isabel E Oldroyd
Cody K Morasca
Faith B Nicka
Jones Q Inouye
Smith Y Inouye
Aika Y Campain
Munro R Paprocki
David Y Waycott
Juan W Kusko
Silvio N Foller
Maria Y Doe
Munro N Darakjy
Octavia Q Bowley
Izzy F Perin
Octavia O Amigon
Tony T Darakjy
IdCountryDate
1000Japan2026-07-18
1001Australia2026-06-24
1002Canada2026-06-30
1003Russia2026-06-26
1004Brazil2026-07-02
1005Italy2026-07-17
1006France2026-07-12
1007Japan2026-07-16
1008United Kingdom2026-06-27
1009Italy2026-07-18
1010Russia2026-07-09
1011Germany2026-07-07
1012Spain2026-07-18
1013Germany2026-07-02
1014Argentina2026-07-13
1015Australia2026-06-25
1016Brazil2026-07-05
1017Italy2026-07-06
1018Argentina2026-07-06
1019Germany2026-06-23
1020Argentina2026-07-16
1021Australia2026-06-28
1022Italy2026-06-23
1023Canada2026-06-20
1024Australia2026-07-09
1025France2026-07-14
1026Russia2026-06-20
1027Spain2026-07-12
1028Australia2026-07-10
1029Japan2026-07-07
1030Germany2026-06-25
1031Russia2026-06-20
1032India2026-07-09
1033Italy2026-07-07
1034Japan2026-07-12
1035Canada2026-06-26
1036Brazil2026-07-18
1037Spain2026-07-05
1038Italy2026-07-11
1039India2026-06-29
1040France2026-07-04
1041Brazil2026-07-03
1042Australia2026-06-19
1043Russia2026-06-30
1044Spain2026-07-07
1045Argentina2026-07-07
1046Canada2026-07-14
1047Russia2026-06-23
1048Australia2026-06-19
1049United Kingdom2026-06-21

On-Demand Data

NameIdCountryDate
Nicolas V Caudy1000Japan2026-06-24
Kadeem O Dilliard1001Italy2026-07-16
Aditya C Iturbide1002United Kingdom2026-07-15
Octavia E Morasca1003India2026-06-20
Clifford N Foller1004France2026-07-08
Antonio J Marrier1005Russia2026-06-29
Arvin S Oldroyd1006Russia2026-06-27
Munro M Nestle1007Japan2026-07-11
Maria A Tollner1008Japan2026-06-26
Wickens H Figeroa1009United Kingdom2026-06-28
Alejandro H Chui1010Argentina2026-07-02
Jones H Waycott1011France2026-07-10
Johnson V Stenseth1012France2026-07-13
Jennifer Q Saylors1013Canada2026-06-28
Antonio P Vocelka1014Spain2026-07-18
Rodrigues V Kolmetz1015Brazil2026-06-26
Jennifer H Kusko1016Russia2026-06-30
Mayumi A Albares1017France2026-07-17
Izzy A Kusko1018United Kingdom2026-07-12
Salvatore G Morasca1019Japan2026-07-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba K GauchoRussiaAnna Fali NEW
Greenwood J VocelkaSpainXuxue Feng UNQUALIFIED
Nicolas N StensethFranceOnyama Limba NEGOTIATION
Ashley W MaletFranceAsiya Javayant UNQUALIFIED
Izzy K SchemmerAustraliaAmy Elsner PROPOSAL
Misaki X RimRussiaIoni Bowcher NEW
Morrow L StockhamIndiaAnna Fali QUALIFIED
Costa W CampainUnited KingdomAmy Elsner UNQUALIFIED
Mayumi H SchemmerUnited KingdomOnyama Limba PROPOSAL
Antonio Y SergiJapanAsiya Javayant RENEWAL
Kadeem K ButtRussiaBernardo Dominic NEW
Francesco P FollerSpainStephen Shaw UNQUALIFIED
Greenwood I DarakjyGermanyOnyama Limba RENEWAL
Mujtaba D CampainAustraliaStephen Shaw PROPOSAL
Leja I FerenczJapanOnyama Limba NEW
Kadeem N MarrierItalyAmy Elsner RENEWAL
Maria W GarufiBrazilXuxue Feng QUALIFIED
Ashley E BriddickCanadaIvan Magalhaes PROPOSAL
Jeanfrancois W RimBrazilBernardo Dominic NEGOTIATION
Nicolas H WaycottFranceAsiya Javayant PROPOSAL
Leon K AmigonGermanyOnyama Limba PROPOSAL
Darci F KolmetzGermanyIoni Bowcher RENEWAL
Jones H PerinBrazilAmy Elsner RENEWAL
Greenwood A BriddickSpainBernardo Dominic RENEWAL
Nicolas X KuskoItalyAsiya Javayant PROPOSAL
Jeanfrancois B MaletAustraliaStephen Shaw NEGOTIATION
Deepesh F GillianCanadaAmy Elsner PROPOSAL
Jennifer D PoquetteGermanyOnyama Limba RENEWAL
Sinclair J RoysterFranceAnna Fali RENEWAL
Salvatore L DilliardRussiaIvan Magalhaes QUALIFIED
Deepesh H IturbideJapanIoni Bowcher QUALIFIED
Maria L MacleadCanadaAsiya Javayant NEW
Aruna E FollerBrazilOnyama Limba UNQUALIFIED
Faith K GauchoSpainAnna Fali NEGOTIATION
Aditya O AlbaresItalyXuxue Feng UNQUALIFIED
Antonio S BriddickCanadaStephen Shaw QUALIFIED
Maria G MaletIndiaIvan Magalhaes PROPOSAL
Maria X BowleyArgentinaIoni Bowcher QUALIFIED
Aruna Z SergiBrazilElwin Sharvill UNQUALIFIED
Sinclair L NestleIndiaStephen Shaw QUALIFIED

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