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
Mayumi Y FollerItalyAmy Elsner RENEWAL
Chavez Z GauchoUnited KingdomXuxue Feng RENEWAL
Murillo B GauchoItalyIoni Bowcher UNQUALIFIED
Smith W ButtBrazilIvan Magalhaes RENEWAL
Juan C GauchoGermanyAmy Elsner PROPOSAL
Juan A GauchoSpainBernardo Dominic PROPOSAL
Jennifer K StockhamAustraliaBernardo Dominic QUALIFIED
Ricardo A RoysterGermanyBernardo Dominic QUALIFIED
Greenwood G FollerJapanElwin Sharvill UNQUALIFIED
Aruna E WieserJapanAsiya Javayant QUALIFIED
Mayumi U OstroskyUnited KingdomElwin Sharvill NEW
Silvio Z ButtCanadaStephen Shaw PROPOSAL
Jones M CaudyFranceIvan Magalhaes NEGOTIATION
Chavez P FerenczAustraliaXuxue Feng NEGOTIATION
Chavez J DoeRussiaAsiya Javayant UNQUALIFIED
Greenwood F BriddickAustraliaAsiya Javayant UNQUALIFIED
Clifford F InouyeArgentinaStephen Shaw QUALIFIED
Cody J MaletSpainXuxue Feng PROPOSAL
Maisha Z GillianIndiaAnna Fali QUALIFIED
Octavia U VocelkaIndiaAsiya Javayant RENEWAL
James L BologniaCanadaIoni Bowcher PROPOSAL
Maisha H KuskoSpainBernardo Dominic UNQUALIFIED
Darci E CaldareraGermanyElwin Sharvill RENEWAL
Emily H PoquetteUnited KingdomElwin Sharvill NEW
James P FerenczBrazilBernardo Dominic RENEWAL
Aditya R VenereRussiaXuxue Feng QUALIFIED
Leon C StensethUnited KingdomStephen Shaw UNQUALIFIED
Juan E MorascaBrazilAnna Fali PROPOSAL
Jefferson X IturbideJapanElwin Sharvill NEW
Mujtaba K FigeroaRussiaBernardo Dominic QUALIFIED
Wickens Z SaylorsAustraliaXuxue Feng RENEWAL
Julie J OstroskyIndiaIoni Bowcher PROPOSAL
Jones Q OstroskyGermanyElwin Sharvill PROPOSAL
Leon G ChuiCanadaOnyama Limba NEW
Chavez H CampainRussiaElwin Sharvill UNQUALIFIED
Darci J ChuiItalyAnna Fali RENEWAL
Octavia K TollnerCanadaIoni Bowcher NEGOTIATION
Ivar H MarrierGermanyIoni Bowcher UNQUALIFIED
Maisha Z ChuiFranceOnyama Limba NEW
Izzy R DoeItalyAmy Elsner NEGOTIATION
Misaki C IturbideUnited KingdomIvan Magalhaes QUALIFIED
Kadeem I CampainSpainXuxue Feng PROPOSAL
Wickens J StockhamItalyAnna Fali RENEWAL
Clifford W RimCanadaIoni Bowcher UNQUALIFIED
Aruna F AmigonFranceOnyama Limba QUALIFIED
Sinclair Z PaprockiJapanOnyama Limba UNQUALIFIED
Leon N FigeroaBrazilBernardo Dominic QUALIFIED
Ashley S OstroskyIndiaOnyama Limba PROPOSAL
Antonio Z RutaFranceIvan Magalhaes NEGOTIATION
Jones E MaletSpainElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson E AmigonArgentinaAmy Elsner UNQUALIFIED
Aruna F FollerUnited KingdomXuxue Feng NEGOTIATION
Costa W OstroskyGermanyXuxue Feng PROPOSAL
James W RoysterIndiaIoni Bowcher UNQUALIFIED
Cody U VocelkaJapanAnna Fali NEW
Jeanfrancois E OstroskyItalyIoni Bowcher NEGOTIATION
Clifford V RulapaughJapanAnna Fali UNQUALIFIED
Julie O MacleadCanadaAmy Elsner NEW
Jefferson R GauchoIndiaAsiya Javayant RENEWAL
Kaitlin Z WieserFranceAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio W DarakjyArgentina2026-06-22Dorl, James J Esq RENEWAL14Stephen Shaw
1001Julie I WhobreyBrazil2026-06-16Feltz Printing Service PROPOSAL65Bernardo Dominic
1002Aruna T ChuiUnited Kingdom2026-06-20Feltz Printing Service NEW71Ivan Magalhaes
1003Adams A StensethFrance2026-06-18Chapman, Ross E Esq UNQUALIFIED88Asiya Javayant
1004Mujtaba T OldroydBrazil2026-06-10Feiner Bros QUALIFIED84Onyama Limba
1005Silvio T BowleyRussia2026-07-04Chanay, Jeffrey A Esq RENEWAL72Amy Elsner
1006Francesco W WhobreyGermany2026-06-13Buckley Miller Wright RENEWAL95Bernardo Dominic
1007Kaitlin G NickaSpain2026-06-19Rousseaux, Michael Esq PROPOSAL66Anna Fali
1008Chavez U GillianBrazil2026-07-07Rangoni Of Florence NEGOTIATION84Ioni Bowcher
1009Juan T ShinkoRussia2026-07-07Rangoni Of Florence QUALIFIED93Ioni Bowcher
1010Munro Y KuskoJapan2026-06-12Commercial Press RENEWAL11Asiya Javayant
1011Claire K CaldareraAustralia2026-06-17Chapman, Ross E Esq NEGOTIATION45Ioni Bowcher
1012Rodrigues X NickaSpain2026-06-18Truhlar And Truhlar Attys PROPOSAL64Stephen Shaw
1013Juan T IturbideUnited Kingdom2026-07-01Truhlar And Truhlar Attys RENEWAL12Bernardo Dominic
1014Tony S FerenczCanada2026-06-22Chanay, Jeffrey A Esq UNQUALIFIED95Asiya Javayant
1015Emily Y DilliardBrazil2026-06-29Buckley Miller Wright QUALIFIED65Bernardo Dominic
1016Mayumi X CaldareraJapan2026-06-24Chemel, James L Cpa QUALIFIED8Ivan Magalhaes
1017Silvio H WhobreyUnited Kingdom2026-06-15Commercial Press NEGOTIATION67Anna Fali
1018Rodrigues S StensethGermany2026-06-25Chapman, Ross E Esq NEW50Bernardo Dominic
1019Stacey H WieserItaly2026-06-11Feiner Bros NEGOTIATION55Amy Elsner
1020Leon E DarakjyRussia2026-07-06Truhlar And Truhlar Attys NEGOTIATION59Bernardo Dominic
1021Maisha N AlbaresRussia2026-06-14Buckley Miller Wright PROPOSAL79Anna Fali
1022Julie C CampainRussia2026-06-08Chemel, James L Cpa PROPOSAL6Asiya Javayant
1023Francesco X MorascaIndia2026-06-13Feltz Printing Service QUALIFIED15Stephen Shaw
1024Ricardo U ShinkoRussia2026-07-07Buckley Miller Wright QUALIFIED30Ioni Bowcher
1025Alejandro E IturbideUnited Kingdom2026-07-06Feltz Printing Service NEW46Amy Elsner
1026Faith M TollnerItaly2026-06-18Benton, John B Jr QUALIFIED11Bernardo Dominic
1027Deepesh P DoeRussia2026-07-02Commercial Press RENEWAL66Ioni Bowcher
1028Smith K BriddickBrazil2026-07-01Morlong Associates NEW88Anna Fali
1029Salvatore R TollnerJapan2026-06-19Rangoni Of Florence RENEWAL55Onyama Limba
1030Jefferson U IturbideSpain2026-06-08Rangoni Of Florence NEGOTIATION64Bernardo Dominic
1031Morrow Z RimSpain2026-06-21Chemel, James L Cpa NEW27Elwin Sharvill
1032Isabel E KuskoRussia2026-07-07Dorl, James J Esq QUALIFIED70Amy Elsner
1033Aditya W RutaUnited Kingdom2026-06-09King, Christopher A Esq PROPOSAL40Amy Elsner
1034Ivar Y MorascaIndia2026-06-15Printing Dimensions RENEWAL22Ivan Magalhaes
1035Silvio U FerenczGermany2026-06-20Chanay, Jeffrey A Esq UNQUALIFIED14Bernardo Dominic
1036Sinclair B WhobreyRussia2026-07-07Buckley Miller Wright QUALIFIED18Ioni Bowcher
1037Darci Z NestleArgentina2026-06-13Dorl, James J Esq UNQUALIFIED53Xuxue Feng
1038Jennifer O PaprockiFrance2026-06-14Printing Dimensions UNQUALIFIED97Xuxue Feng
1039Stacey Q VocelkaRussia2026-06-16Truhlar And Truhlar Attys NEGOTIATION52Ioni Bowcher
1040Jeanfrancois M MacleadItaly2026-07-04Printing Dimensions UNQUALIFIED22Stephen Shaw
1041Jennifer U VenereJapan2026-06-20Printing Dimensions QUALIFIED55Bernardo Dominic
1042Arvin R BologniaGermany2026-06-30Dorl, James J Esq NEGOTIATION12Asiya Javayant
1043Costa F StockhamFrance2026-06-11Rangoni Of Florence PROPOSAL46Bernardo Dominic
1044David Q WhobreyIndia2026-06-22Chanay, Jeffrey A Esq UNQUALIFIED36Stephen Shaw
1045Munro Y KuskoRussia2026-06-16Commercial Press NEW36Ivan Magalhaes
1046Wickens I MarrierUnited Kingdom2026-06-16Rousseaux, Michael Esq QUALIFIED62Onyama Limba
1047Costa X ChuiGermany2026-06-15Rangoni Of Florence PROPOSAL49Elwin Sharvill
1048Aika M TollnerGermany2026-06-16King, Christopher A Esq PROPOSAL81Asiya Javayant
1049Maisha N MarrierJapan2026-07-07Dorl, James J Esq RENEWAL64Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Alejandro V WhobreySpainIoni Bowcher QUALIFIED
Wickens L OldroydSpainElwin Sharvill PROPOSAL
Nicolas N SergiArgentinaStephen Shaw QUALIFIED
Emily U PaprockiFranceAmy Elsner UNQUALIFIED
Ivar Q OstroskyFranceAmy Elsner NEGOTIATION
Antonio C GarufiBrazilElwin Sharvill PROPOSAL
Jennifer J OldroydGermanyElwin Sharvill NEW
Cody C GlickArgentinaAmy Elsner RENEWAL
Ashley T PoquetteCanadaAmy Elsner UNQUALIFIED
Antonio G FigeroaSpainXuxue Feng QUALIFIED
Claire S BologniaUnited KingdomElwin Sharvill RENEWAL
Claire V DoeRussiaIoni Bowcher RENEWAL
Leon I StensethUnited KingdomXuxue Feng NEGOTIATION
Costa S MaletIndiaXuxue Feng PROPOSAL
Maisha Y GillianCanadaXuxue Feng PROPOSAL
Izzy I OldroydGermanyStephen Shaw NEGOTIATION
Antonio S KuskoJapanAmy Elsner RENEWAL
Maisha R GlickArgentinaIvan Magalhaes QUALIFIED
Ivar N GauchoUnited KingdomOnyama Limba NEGOTIATION
Tony S OstroskyRussiaAnna Fali NEGOTIATION
Ashley L SergiCanadaIvan Magalhaes NEW
Ashley O VenereAustraliaIvan Magalhaes PROPOSAL
Julie Q CaldareraRussiaXuxue Feng PROPOSAL
David K StockhamCanadaBernardo Dominic UNQUALIFIED
Mujtaba E WaycottArgentinaAnna Fali UNQUALIFIED
Adams F GlickUnited KingdomAnna Fali UNQUALIFIED
Kadeem L OldroydJapanIoni Bowcher UNQUALIFIED
Jones W PerinCanadaIvan Magalhaes NEW
Nicolas I DoeUnited KingdomOnyama Limba QUALIFIED
Sinclair Q CaudyItalyAnna Fali RENEWAL
Mayumi H PerinAustraliaXuxue Feng NEW
Costa X NickaBrazilAsiya Javayant NEGOTIATION
Nicolas T VocelkaGermanyBernardo Dominic QUALIFIED
Julie O BowleyItalyAmy Elsner RENEWAL
Greenwood P InouyeAustraliaElwin Sharvill NEGOTIATION
Deepesh O PoquetteFranceBernardo Dominic RENEWAL
Mayumi E MaletIndiaIvan Magalhaes QUALIFIED
Ricardo I CampainFranceIvan Magalhaes NEGOTIATION
Greenwood R OldroydCanadaXuxue Feng UNQUALIFIED
Salvatore Z PoquetteRussiaIoni Bowcher UNQUALIFIED
Sinclair E FigeroaIndiaIvan Magalhaes QUALIFIED
Greenwood U KolmetzFranceStephen Shaw RENEWAL
Sinclair X PoquetteAustraliaAnna Fali UNQUALIFIED
Nicolas H RimJapanBernardo Dominic QUALIFIED
Tony V RoysterJapanIvan Magalhaes UNQUALIFIED
Wickens Y MorascaArgentinaOnyama Limba UNQUALIFIED
Salvatore H VenereItalyAmy Elsner QUALIFIED
Costa W WieserBrazilXuxue Feng UNQUALIFIED
Mujtaba O OstroskyAustraliaAsiya Javayant UNQUALIFIED
Adams E GarufiArgentinaXuxue Feng NEGOTIATION
Frozen Columns
Name
Mayumi M Rim
Mayumi E Malet
Francesco O Morasca
Jennifer A Chui
Adams Q Morasca
Murillo R Inouye
Silvio W Shinko
Kaitlin C Paprocki
Ivar M Dilliard
Aruna M Doe
Aika O Malet
Chavez W Vocelka
Antonio V Rim
Sinclair K Wieser
David X Doe
Francesco A Glick
Aditya B Stenseth
Claire I Paprocki
Jones J Ostrosky
Adams R Paprocki
Faith T Chui
Greenwood W Nicka
Kaitlin Q Vocelka
Isabel G Caudy
Kadeem H Waycott
Francesco D Schemmer
Maisha I Chui
Izzy G Caldarera
Nicolas U Waycott
Aruna W Albares
Aruna B Figeroa
Aditya L Butt
Aditya A Albares
Jefferson E Sergi
Stacey Q Malet
Alejandro C Flosi
Ricardo A Whobrey
Tony Y Marrier
Nicolas L Rulapaugh
Clifford A Tollner
Izzy S Venere
Maisha A Doe
Mayumi W Dilliard
Morrow M Caudy
Murillo I Vocelka
Darci W Slusarski
Aditya O Caudy
Julie Q Oldroyd
Emily B Slusarski
Aruna F Amigon
IdCountryDate
1000Australia2026-06-22
1001Japan2026-07-03
1002United Kingdom2026-06-27
1003Brazil2026-07-04
1004India2026-06-19
1005Italy2026-06-25
1006France2026-07-04
1007Australia2026-06-25
1008Canada2026-07-05
1009United Kingdom2026-06-13
1010Russia2026-06-13
1011France2026-07-04
1012Japan2026-07-01
1013United Kingdom2026-06-29
1014Brazil2026-06-11
1015Russia2026-07-04
1016Canada2026-06-20
1017India2026-07-01
1018France2026-06-27
1019United Kingdom2026-07-05
1020France2026-06-21
1021Russia2026-06-12
1022Brazil2026-06-27
1023Russia2026-06-11
1024India2026-06-08
1025Japan2026-06-17
1026Canada2026-06-26
1027Argentina2026-06-09
1028Japan2026-06-08
1029Germany2026-06-24
1030India2026-06-08
1031India2026-06-17
1032Argentina2026-07-03
1033Spain2026-06-08
1034Russia2026-07-01
1035India2026-07-01
1036France2026-07-04
1037Australia2026-06-11
1038Argentina2026-06-22
1039France2026-07-02
1040Argentina2026-06-27
1041Japan2026-06-26
1042United Kingdom2026-06-20
1043Italy2026-06-27
1044Japan2026-06-28
1045Spain2026-06-27
1046India2026-06-23
1047Argentina2026-07-05
1048Japan2026-07-06
1049United Kingdom2026-06-20

On-Demand Data

NameIdCountryDate
Emily W Caudy1000Germany2026-06-16
Costa Y Campain1001Italy2026-06-26
Octavia F Iturbide1002Brazil2026-06-30
Antonio Q Maclead1003United Kingdom2026-06-23
Stacey U Malet1004Spain2026-07-01
Claire E Shinko1005Japan2026-06-25
Greenwood M Rulapaugh1006Italy2026-07-02
Aruna D Rulapaugh1007Russia2026-07-01
Ashley D Darakjy1008Germany2026-07-03
Deepesh W Ostrosky1009Canada2026-06-17
Clifford A Tollner1010France2026-07-03
Rodrigues F Campain1011Canada2026-07-06
Jefferson S Nestle1012Japan2026-06-27
Antonio V Foller1013United Kingdom2026-06-16
Emily D Rulapaugh1014France2026-06-25
Leja F Foller1015Japan2026-06-27
Jones U Sergi1016Canada2026-06-22
Aditya K Marrier1017Brazil2026-06-18
Arvin P Marrier1018France2026-06-20
Claire I Foller1019India2026-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki T MarrierUnited KingdomStephen Shaw RENEWAL
Costa V VenereArgentinaAnna Fali PROPOSAL
Costa M CampainGermanyAmy Elsner NEGOTIATION
Greenwood W BologniaFranceAmy Elsner RENEWAL
James V RutaItalyBernardo Dominic NEGOTIATION
Adams B BologniaSpainIvan Magalhaes NEGOTIATION
Jefferson J BriddickGermanyXuxue Feng RENEWAL
Aditya K FollerUnited KingdomAsiya Javayant NEGOTIATION
Ashley X FlosiSpainXuxue Feng NEW
Johnson Y GarufiGermanyAsiya Javayant RENEWAL
Arvin Z NestleFranceOnyama Limba PROPOSAL
Silvio H WieserItalyBernardo Dominic NEW
Tony D IturbideFranceIvan Magalhaes NEGOTIATION
Cody J AmigonItalyIoni Bowcher NEGOTIATION
Leon H SlusarskiAustraliaIvan Magalhaes PROPOSAL
Costa Z MorascaRussiaOnyama Limba NEW
Wickens B RulapaughGermanyElwin Sharvill QUALIFIED
Alejandro M MacleadArgentinaElwin Sharvill NEGOTIATION
Munro F MacleadItalyStephen Shaw PROPOSAL
Salvatore I GlickArgentinaElwin Sharvill PROPOSAL
Munro C FigeroaCanadaXuxue Feng RENEWAL
Ricardo P BriddickJapanIoni Bowcher UNQUALIFIED
Isabel C PoquetteItalyAnna Fali NEW
Smith Z SaylorsArgentinaOnyama Limba RENEWAL
Cody Y MaletJapanIvan Magalhaes NEGOTIATION
Costa B AlbaresIndiaAsiya Javayant UNQUALIFIED
Jones O PoquetteGermanyAmy Elsner RENEWAL
Aika O DarakjyFranceElwin Sharvill PROPOSAL
Arvin I RulapaughIndiaAmy Elsner QUALIFIED
Morrow G RulapaughFranceOnyama Limba NEW
Misaki V PerinUnited KingdomAnna Fali UNQUALIFIED
Chavez H CaldareraIndiaStephen Shaw QUALIFIED
Kaitlin M KuskoBrazilAsiya Javayant NEGOTIATION
Kaitlin V CampainIndiaIvan Magalhaes RENEWAL
Aika Y SchemmerBrazilOnyama Limba UNQUALIFIED
Johnson I BowleyRussiaIvan Magalhaes RENEWAL
Silvio A MarrierRussiaElwin Sharvill NEGOTIATION
Kadeem B NestleItalyXuxue Feng RENEWAL
Octavia H IturbideJapanIoni Bowcher QUALIFIED
Mayumi Y GillianGermanyOnyama Limba 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>