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 R BriddickIndiaAmy Elsner RENEWAL
Isabel S VenereIndiaAmy Elsner UNQUALIFIED
Izzy H KuskoAustraliaIoni Bowcher NEW
Maisha W BriddickFranceElwin Sharvill NEGOTIATION
Jeanfrancois S NickaAustraliaIvan Magalhaes RENEWAL
David R FigeroaAustraliaStephen Shaw NEGOTIATION
Isabel X RulapaughBrazilBernardo Dominic PROPOSAL
Munro D OldroydUnited KingdomAsiya Javayant RENEWAL
Deepesh B MacleadItalyIvan Magalhaes NEGOTIATION
Deepesh C WhobreyUnited KingdomStephen Shaw UNQUALIFIED
Cody F FerenczUnited KingdomIvan Magalhaes RENEWAL
Tony J DoeSpainXuxue Feng UNQUALIFIED
Izzy L BowleyFranceElwin Sharvill UNQUALIFIED
Silvio R FigeroaJapanOnyama Limba NEGOTIATION
Silvio T BriddickGermanyAsiya Javayant RENEWAL
Adams C RutaArgentinaAnna Fali RENEWAL
Nicolas F DilliardRussiaIvan Magalhaes NEGOTIATION
Costa Y KuskoAustraliaBernardo Dominic RENEWAL
Stacey G MacleadIndiaStephen Shaw NEW
Ivar D PoquetteGermanyXuxue Feng NEGOTIATION
Deepesh J PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Cody Z GauchoGermanyStephen Shaw RENEWAL
Kadeem E GarufiBrazilAnna Fali PROPOSAL
Silvio T BowleyRussiaElwin Sharvill NEGOTIATION
Jones H NestleIndiaAsiya Javayant NEGOTIATION
Aruna D RimRussiaXuxue Feng NEGOTIATION
Alejandro A WaycottGermanyXuxue Feng UNQUALIFIED
Misaki I CaudyCanadaAsiya Javayant NEGOTIATION
Leja Y MaletIndiaBernardo Dominic RENEWAL
Sinclair B AmigonBrazilXuxue Feng PROPOSAL
Nicolas X MorascaBrazilIoni Bowcher QUALIFIED
Murillo B SaylorsItalyElwin Sharvill PROPOSAL
Nicolas Y SergiUnited KingdomIoni Bowcher NEGOTIATION
Misaki E FlosiBrazilIoni Bowcher NEW
Deepesh C OldroydJapanAsiya Javayant UNQUALIFIED
Maria L AmigonUnited KingdomBernardo Dominic QUALIFIED
Smith E WieserBrazilAsiya Javayant UNQUALIFIED
Julie K MaletBrazilElwin Sharvill QUALIFIED
Izzy K OstroskyCanadaIoni Bowcher NEW
Adams J NickaJapanStephen Shaw PROPOSAL
Alejandro P WhobreySpainIvan Magalhaes NEGOTIATION
Leja K OldroydAustraliaAmy Elsner NEGOTIATION
Arvin T DoeUnited KingdomAsiya Javayant NEW
Ivar W NestleAustraliaIvan Magalhaes PROPOSAL
Ivar G OldroydBrazilOnyama Limba RENEWAL
Arvin A NickaSpainOnyama Limba NEGOTIATION
Stacey O GauchoItalyXuxue Feng PROPOSAL
Misaki N VocelkaGermanyElwin Sharvill UNQUALIFIED
Deepesh K OstroskyIndiaBernardo Dominic PROPOSAL
Jeanfrancois K BowleyBrazilIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Morrow G VenereAustraliaIvan Magalhaes RENEWAL
Claire L ButtGermanyIvan Magalhaes RENEWAL
Aruna Q ButtUnited KingdomStephen Shaw PROPOSAL
Greenwood U SlusarskiCanadaBernardo Dominic QUALIFIED
Stacey X StockhamJapanStephen Shaw RENEWAL
Smith Z OstroskyGermanyElwin Sharvill PROPOSAL
Julie T TollnerFranceStephen Shaw PROPOSAL
Smith T KuskoFranceElwin Sharvill NEW
Aruna C PaprockiGermanyIoni Bowcher NEW
David R CaudyGermanyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin A FigeroaJapan2025-04-30Chanay, Jeffrey A Esq UNQUALIFIED20Ioni Bowcher
1001Juan N FlosiCanada2025-04-30Rangoni Of Florence NEGOTIATION41Xuxue Feng
1002Adams H VenereUnited Kingdom2025-04-28King, Christopher A Esq PROPOSAL77Anna Fali
1003Kaitlin W ButtItaly2025-04-10Benton, John B Jr PROPOSAL29Onyama Limba
1004David T AmigonBrazil2025-04-28Buckley Miller Wright RENEWAL98Ivan Magalhaes
1005Deepesh L ButtArgentina2025-04-15Printing Dimensions NEGOTIATION25Ioni Bowcher
1006Faith Y SchemmerItaly2025-04-13Feltz Printing Service NEGOTIATION4Ioni Bowcher
1007Ashley E DoeUnited Kingdom2025-04-23Benton, John B Jr PROPOSAL52Anna Fali
1008Tony M VenereUnited Kingdom2025-04-05Feltz Printing Service NEGOTIATION59Asiya Javayant
1009Antonio H IturbideItaly2025-04-23Chanay, Jeffrey A Esq QUALIFIED54Amy Elsner
1010Ricardo K DarakjyArgentina2025-04-04Feltz Printing Service UNQUALIFIED7Ioni Bowcher
1011Francesco J VocelkaCanada2025-04-16Rangoni Of Florence NEGOTIATION33Anna Fali
1012Aika E FigeroaJapan2025-04-04Morlong Associates PROPOSAL9Asiya Javayant
1013Clifford C ChuiAustralia2025-04-23Rangoni Of Florence PROPOSAL19Onyama Limba
1014Deepesh J TollnerRussia2025-04-26Feiner Bros NEGOTIATION61Elwin Sharvill
1015Julie G MacleadUnited Kingdom2025-04-26Truhlar And Truhlar Attys NEGOTIATION76Amy Elsner
1016Antonio G TollnerItaly2025-04-08Buckley Miller Wright QUALIFIED99Elwin Sharvill
1017Smith T DarakjyFrance2025-04-17Chapman, Ross E Esq QUALIFIED27Xuxue Feng
1018Francesco S MorascaIndia2025-04-30Chapman, Ross E Esq PROPOSAL81Xuxue Feng
1019Smith K VenereAustralia2025-04-22Benton, John B Jr NEW53Xuxue Feng
1020David B CaldareraJapan2025-04-03Feiner Bros NEGOTIATION10Elwin Sharvill
1021Deepesh K TollnerFrance2025-04-15Chemel, James L Cpa UNQUALIFIED60Ivan Magalhaes
1022Wickens U RoysterRussia2025-04-29Dorl, James J Esq PROPOSAL58Elwin Sharvill
1023Isabel R GarufiCanada2025-04-18Buckley Miller Wright RENEWAL34Amy Elsner
1024Misaki D PoquetteItaly2025-04-17Rangoni Of Florence NEW83Elwin Sharvill
1025Darci F FollerItaly2025-04-08Morlong Associates PROPOSAL40Asiya Javayant
1026Ashley Z RoysterUnited Kingdom2025-04-30Feiner Bros PROPOSAL75Anna Fali
1027Ricardo N MacleadAustralia2025-04-14King, Christopher A Esq PROPOSAL53Anna Fali
1028Maisha P GlickRussia2025-04-20Printing Dimensions NEW15Anna Fali
1029Murillo Z WieserGermany2025-04-25Printing Dimensions UNQUALIFIED34Xuxue Feng
1030Cody B StensethUnited Kingdom2025-04-24Chanay, Jeffrey A Esq QUALIFIED73Asiya Javayant
1031Adams Y OldroydRussia2025-04-15Printing Dimensions QUALIFIED7Xuxue Feng
1032Aruna T GillianRussia2025-04-27Chemel, James L Cpa PROPOSAL57Onyama Limba
1033Tony V WhobreyIndia2025-04-11Morlong Associates QUALIFIED54Bernardo Dominic
1034Wickens S KuskoJapan2025-04-20Truhlar And Truhlar Attys UNQUALIFIED20Onyama Limba
1035Ivar T WaycottUnited Kingdom2025-04-30Buckley Miller Wright RENEWAL2Xuxue Feng
1036Tony Y WhobreyCanada2025-04-09Chanay, Jeffrey A Esq NEGOTIATION14Stephen Shaw
1037Ricardo A CaudyJapan2025-04-17Rousseaux, Michael Esq UNQUALIFIED0Elwin Sharvill
1038Ivar H PoquetteAustralia2025-04-11Rangoni Of Florence RENEWAL46Stephen Shaw
1039David J IturbideFrance2025-04-10Feltz Printing Service NEGOTIATION5Ivan Magalhaes
1040Munro H BologniaArgentina2025-04-25King, Christopher A Esq RENEWAL10Stephen Shaw
1041Francesco E MaletSpain2025-04-16Feltz Printing Service UNQUALIFIED74Xuxue Feng
1042Misaki B RulapaughGermany2025-04-04Feltz Printing Service NEGOTIATION61Xuxue Feng
1043Leja Q MaletFrance2025-04-05Benton, John B Jr QUALIFIED71Ivan Magalhaes
1044Mayumi H CaldareraUnited Kingdom2025-04-16Truhlar And Truhlar Attys NEGOTIATION29Elwin Sharvill
1045Aditya G GauchoBrazil2025-04-23Chanay, Jeffrey A Esq NEGOTIATION86Amy Elsner
1046Clifford Y DilliardItaly2025-04-06Truhlar And Truhlar Attys RENEWAL86Onyama Limba
1047Costa J WaycottSpain2025-04-03Chapman, Ross E Esq PROPOSAL54Amy Elsner
1048Clifford U MaletRussia2025-04-18Chemel, James L Cpa NEGOTIATION81Stephen Shaw
1049Tony B NickaRussia2025-04-21Truhlar And Truhlar Attys NEW34Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
David M PaprockiRussiaIoni Bowcher PROPOSAL
Mujtaba Y PoquetteRussiaBernardo Dominic PROPOSAL
Antonio Z SergiUnited KingdomIoni Bowcher UNQUALIFIED
Wickens J CaldareraUnited KingdomElwin Sharvill NEGOTIATION
Ivar Y SergiGermanyXuxue Feng NEGOTIATION
Tony V FigeroaIndiaXuxue Feng UNQUALIFIED
Nicolas T ChuiAustraliaAmy Elsner PROPOSAL
Octavia Q DilliardIndiaOnyama Limba UNQUALIFIED
Murillo W WieserRussiaElwin Sharvill PROPOSAL
David N FigeroaArgentinaStephen Shaw UNQUALIFIED
Greenwood R DoeItalyAnna Fali PROPOSAL
James E MorascaCanadaXuxue Feng UNQUALIFIED
James Y PerinBrazilBernardo Dominic PROPOSAL
Chavez V TollnerBrazilElwin Sharvill NEW
Julie X ShinkoIndiaAmy Elsner RENEWAL
Kadeem C MacleadUnited KingdomIvan Magalhaes UNQUALIFIED
Leon N PerinGermanyXuxue Feng QUALIFIED
Francesco P KolmetzItalyAmy Elsner QUALIFIED
Aika Y ShinkoUnited KingdomIvan Magalhaes UNQUALIFIED
James B SchemmerBrazilBernardo Dominic QUALIFIED
Murillo R RulapaughUnited KingdomStephen Shaw UNQUALIFIED
Deepesh W GlickSpainXuxue Feng PROPOSAL
Izzy H DilliardCanadaStephen Shaw RENEWAL
Aruna G KolmetzBrazilAmy Elsner RENEWAL
Claire H NestleUnited KingdomIoni Bowcher NEW
Maria I WieserItalyElwin Sharvill NEGOTIATION
Stacey X FlosiItalyIvan Magalhaes PROPOSAL
Octavia Y GlickCanadaIvan Magalhaes UNQUALIFIED
Smith L CaudyRussiaIoni Bowcher UNQUALIFIED
Mujtaba W KuskoItalyElwin Sharvill NEGOTIATION
James O ChuiJapanIvan Magalhaes PROPOSAL
Emily L VenereFranceIoni Bowcher RENEWAL
Silvio P IturbideArgentinaStephen Shaw NEW
Mujtaba S KuskoRussiaStephen Shaw NEW
Wickens J FollerAustraliaBernardo Dominic RENEWAL
Wickens D CaudyUnited KingdomStephen Shaw QUALIFIED
Greenwood H WhobreyUnited KingdomBernardo Dominic QUALIFIED
Francesco F MorascaItalyXuxue Feng RENEWAL
Morrow S MaletCanadaBernardo Dominic NEGOTIATION
Emily H MaletSpainStephen Shaw PROPOSAL
Salvatore J GillianUnited KingdomAnna Fali QUALIFIED
Aditya Z NickaGermanyBernardo Dominic UNQUALIFIED
Leon D GillianRussiaIoni Bowcher RENEWAL
Maisha X PoquetteAustraliaStephen Shaw UNQUALIFIED
Francesco V GauchoJapanAmy Elsner NEGOTIATION
Maisha F SchemmerAustraliaIvan Magalhaes UNQUALIFIED
Tony V OldroydRussiaOnyama Limba NEGOTIATION
Kadeem Q PerinIndiaAmy Elsner NEGOTIATION
Adams W RutaFranceBernardo Dominic NEW
Smith O KuskoSpainElwin Sharvill NEGOTIATION
Frozen Columns
Name
Mayumi R Ferencz
Leja K Paprocki
David O Malet
Faith R Shinko
Morrow R Venere
Deepesh Q Wieser
David S Gaucho
Arvin B Poquette
Kadeem C Glick
Chavez K Caudy
Nicolas W Rulapaugh
Juan Y Maclead
Cody R Briddick
Murillo I Paprocki
Adams B Nicka
Adams C Venere
Jennifer T Campain
Jeanfrancois U Inouye
Chavez P Stockham
Kaitlin A Chui
Izzy H Briddick
Juan W Rulapaugh
Isabel X Morasca
Mayumi G Foller
Tony M Caudy
Alejandro T Rulapaugh
Salvatore G Inouye
Maisha K Saylors
Sinclair E Bolognia
Mayumi J Amigon
Ashley J Bowley
Munro Z Bowley
Wickens O Wieser
James P Oldroyd
Kaitlin W Whobrey
Cody M Campain
Antonio F Royster
Francesco V Paprocki
Stacey N Venere
Costa E Paprocki
David V Waycott
Clifford W Stenseth
David I Malet
Deepesh I Garufi
James A Amigon
Ricardo S Oldroyd
Juan V Iturbide
Isabel R Poquette
Stacey I Ferencz
Leon K Wieser
IdCountryDate
1000United Kingdom2025-04-16
1001France2025-04-18
1002United Kingdom2025-04-10
1003Italy2025-04-06
1004France2025-04-08
1005Canada2025-04-28
1006United Kingdom2025-04-19
1007India2025-04-30
1008France2025-04-04
1009Japan2025-04-10
1010Spain2025-04-06
1011Brazil2025-04-19
1012Spain2025-04-05
1013France2025-04-27
1014India2025-04-10
1015Japan2025-04-30
1016India2025-04-26
1017Italy2025-04-14
1018Argentina2025-04-30
1019Japan2025-04-17
1020France2025-04-13
1021United Kingdom2025-04-04
1022Canada2025-04-07
1023United Kingdom2025-04-08
1024Germany2025-04-08
1025Russia2025-04-07
1026United Kingdom2025-04-07
1027France2025-04-03
1028France2025-04-29
1029Italy2025-04-10
1030United Kingdom2025-04-20
1031Spain2025-04-09
1032Italy2025-04-30
1033France2025-04-29
1034Japan2025-04-09
1035Brazil2025-04-04
1036Argentina2025-04-29
1037Japan2025-04-07
1038France2025-04-30
1039India2025-04-19
1040Russia2025-04-15
1041United Kingdom2025-04-07
1042Japan2025-04-29
1043Argentina2025-04-18
1044Germany2025-04-21
1045Argentina2025-04-12
1046India2025-04-09
1047United Kingdom2025-04-09
1048France2025-04-24
1049United Kingdom2025-04-22

On-Demand Data

NameIdCountryDate
Maria S Nicka1000Germany2025-04-28
Aditya O Figeroa1001Germany2025-04-26
Maisha J Wieser1002Brazil2025-04-14
Smith K Venere1003Argentina2025-04-17
Greenwood C Bowley1004France2025-04-24
Wickens S Wieser1005Germany2025-04-01
Antonio A Albares1006Spain2025-04-11
Maisha Q Briddick1007Russia2025-04-07
Izzy R Nicka1008India2025-04-23
Smith X Waycott1009France2025-04-17
James K Butt1010France2025-04-13
Mujtaba H Caudy1011Italy2025-04-19
James J Nestle1012Japan2025-04-21
Faith N Caudy1013Brazil2025-04-13
Kaitlin C Kusko1014Italy2025-04-18
Ashley K Rulapaugh1015United Kingdom2025-04-04
Izzy H Morasca1016United Kingdom2025-04-21
Rodrigues T Perin1017Italy2025-04-03
Maria Y Ferencz1018Spain2025-04-12
Octavia T Maclead1019Russia2025-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar P ButtArgentinaOnyama Limba NEW
Clifford X RutaFranceIoni Bowcher RENEWAL
Jeanfrancois X RoysterAustraliaBernardo Dominic PROPOSAL
Ricardo N KolmetzUnited KingdomOnyama Limba PROPOSAL
Izzy W MaletAustraliaStephen Shaw NEGOTIATION
Smith J PoquetteSpainAsiya Javayant NEGOTIATION
Maria K FlosiAustraliaAnna Fali UNQUALIFIED
Leon E FerenczAustraliaBernardo Dominic RENEWAL
Rodrigues V VenereGermanyAnna Fali NEGOTIATION
Clifford T GauchoItalyAsiya Javayant QUALIFIED
Leja E InouyeRussiaOnyama Limba RENEWAL
Salvatore W StockhamCanadaAmy Elsner UNQUALIFIED
Leja R StockhamIndiaXuxue Feng QUALIFIED
Stacey A CaudyUnited KingdomIoni Bowcher RENEWAL
Izzy K RulapaughCanadaXuxue Feng PROPOSAL
Ashley M InouyeItalyAmy Elsner RENEWAL
Morrow B CampainUnited KingdomAsiya Javayant RENEWAL
Wickens K FerenczSpainElwin Sharvill PROPOSAL
Claire B StensethGermanyAmy Elsner QUALIFIED
Jones Y SchemmerArgentinaIvan Magalhaes QUALIFIED
Deepesh W FigeroaFranceBernardo Dominic PROPOSAL
Morrow E DarakjyBrazilBernardo Dominic UNQUALIFIED
Julie K GlickRussiaStephen Shaw NEGOTIATION
Kaitlin J CampainCanadaIoni Bowcher UNQUALIFIED
Mujtaba O WieserBrazilElwin Sharvill QUALIFIED
Octavia M SchemmerIndiaElwin Sharvill PROPOSAL
Francesco V OstroskyBrazilIoni Bowcher PROPOSAL
Wickens G GillianUnited KingdomAnna Fali PROPOSAL
Jones T DarakjyBrazilBernardo Dominic RENEWAL
Mayumi G GauchoIndiaOnyama Limba NEGOTIATION
Silvio X RulapaughRussiaIvan Magalhaes UNQUALIFIED
Clifford K SlusarskiFranceAmy Elsner PROPOSAL
Mayumi A BriddickSpainIoni Bowcher NEW
Francesco F SergiGermanyAnna Fali NEGOTIATION
Jennifer P BowleyAustraliaAsiya Javayant NEGOTIATION
Smith I RimItalyAmy Elsner NEGOTIATION
Greenwood G TollnerArgentinaBernardo Dominic PROPOSAL
Julie R MacleadAustraliaAnna Fali NEW
Julie X GlickIndiaXuxue Feng RENEWAL
Mayumi R GlickArgentinaIoni Bowcher 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>