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
Maria C IturbideArgentinaIvan Magalhaes PROPOSAL
Silvio S KuskoIndiaOnyama Limba UNQUALIFIED
Silvio F CaudyBrazilAnna Fali NEW
Jefferson H FlosiItalyIvan Magalhaes UNQUALIFIED
Jennifer U KuskoIndiaIvan Magalhaes UNQUALIFIED
Izzy G CaldareraItalyIvan Magalhaes QUALIFIED
Nicolas N MaletItalyXuxue Feng QUALIFIED
Aika Q VenereBrazilAmy Elsner NEW
Wickens V CaldareraCanadaElwin Sharvill NEW
Aika N DoeBrazilAmy Elsner RENEWAL
Claire U OstroskyUnited KingdomStephen Shaw NEGOTIATION
Stacey Q MaletJapanAmy Elsner NEW
Ricardo G StensethSpainAsiya Javayant PROPOSAL
Claire B AlbaresGermanyIvan Magalhaes NEGOTIATION
Wickens C DarakjyItalyBernardo Dominic PROPOSAL
James F OldroydGermanyAmy Elsner UNQUALIFIED
Kadeem V IturbideRussiaXuxue Feng RENEWAL
Misaki G VocelkaItalyElwin Sharvill NEGOTIATION
Emily U DoeFranceIvan Magalhaes NEGOTIATION
Johnson Y ButtUnited KingdomOnyama Limba QUALIFIED
Silvio P ButtFranceXuxue Feng QUALIFIED
Mujtaba M AmigonAustraliaOnyama Limba UNQUALIFIED
Leon Q WaycottSpainIoni Bowcher QUALIFIED
Jennifer T RoysterGermanyAmy Elsner RENEWAL
Claire S NickaArgentinaBernardo Dominic PROPOSAL
Izzy F InouyeFranceBernardo Dominic UNQUALIFIED
Deepesh V FerenczFranceIvan Magalhaes NEW
Isabel S SaylorsItalyBernardo Dominic RENEWAL
Rodrigues Q MarrierBrazilBernardo Dominic RENEWAL
Greenwood T SergiSpainOnyama Limba QUALIFIED
Rodrigues Z MorascaArgentinaElwin Sharvill NEW
Antonio R WaycottGermanyElwin Sharvill UNQUALIFIED
Stacey J PerinItalyOnyama Limba NEW
Aditya S DoeBrazilAsiya Javayant NEW
Wickens V TollnerIndiaBernardo Dominic NEGOTIATION
Francesco B BowleyIndiaIoni Bowcher QUALIFIED
Wickens T NickaCanadaAnna Fali QUALIFIED
Chavez I DoeIndiaAsiya Javayant NEGOTIATION
Nicolas C SaylorsAustraliaOnyama Limba NEW
Wickens J StensethUnited KingdomBernardo Dominic PROPOSAL
Ricardo Y OstroskyFranceIoni Bowcher PROPOSAL
Arvin I MaletGermanyAmy Elsner NEW
Darci C VenereAustraliaAmy Elsner QUALIFIED
Arvin K VenereBrazilStephen Shaw UNQUALIFIED
Aruna K MarrierBrazilXuxue Feng PROPOSAL
Julie N WaycottIndiaStephen Shaw RENEWAL
Wickens Z PaprockiItalyOnyama Limba QUALIFIED
Octavia X DilliardUnited KingdomElwin Sharvill NEGOTIATION
Sinclair A DilliardBrazilAnna Fali NEW
Leja P GarufiUnited KingdomIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer A PaprockiGermanyStephen Shaw RENEWAL
Salvatore X BriddickArgentinaIoni Bowcher QUALIFIED
Isabel C InouyeUnited KingdomIoni Bowcher NEGOTIATION
Aika B BriddickItalyStephen Shaw PROPOSAL
Octavia I ChuiFranceIvan Magalhaes NEGOTIATION
Salvatore S PoquetteGermanyAnna Fali RENEWAL
Juan E WieserRussiaStephen Shaw NEGOTIATION
Francesco E PoquetteJapanElwin Sharvill RENEWAL
Ashley E FlosiSpainIoni Bowcher QUALIFIED
Nicolas X RulapaughIndiaElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya N KuskoSpain2026-06-28Benton, John B Jr NEW44Asiya Javayant
1001Tony W BriddickFrance2026-07-23Feiner Bros UNQUALIFIED56Xuxue Feng
1002Faith V PaprockiBrazil2026-07-04Printing Dimensions NEW33Ioni Bowcher
1003Silvio A MaletGermany2026-07-12Chapman, Ross E Esq NEGOTIATION49Ioni Bowcher
1004Wickens C RulapaughItaly2026-07-23Morlong Associates RENEWAL58Asiya Javayant
1005Costa F PoquetteSpain2026-07-21Commercial Press NEGOTIATION89Ioni Bowcher
1006Leja C GlickBrazil2026-07-15Buckley Miller Wright UNQUALIFIED85Ivan Magalhaes
1007Murillo I IturbideFrance2026-07-01Chanay, Jeffrey A Esq QUALIFIED43Onyama Limba
1008Munro U SlusarskiAustralia2026-07-13Morlong Associates QUALIFIED99Amy Elsner
1009Nicolas W BowleyItaly2026-07-13Feiner Bros PROPOSAL44Anna Fali
1010Misaki D SchemmerGermany2026-07-01Feltz Printing Service NEGOTIATION75Elwin Sharvill
1011Mujtaba U InouyeArgentina2026-07-03Chanay, Jeffrey A Esq PROPOSAL72Amy Elsner
1012Maria F BriddickRussia2026-07-21King, Christopher A Esq QUALIFIED32Ivan Magalhaes
1013Munro P MaletFrance2026-07-21Rousseaux, Michael Esq NEGOTIATION80Bernardo Dominic
1014Julie O BologniaBrazil2026-06-26Printing Dimensions RENEWAL52Anna Fali
1015Rodrigues L SchemmerUnited Kingdom2026-07-05Chanay, Jeffrey A Esq NEW54Stephen Shaw
1016Maisha M MaletAustralia2026-07-20Dorl, James J Esq UNQUALIFIED90Onyama Limba
1017Aruna Q RutaAustralia2026-06-29Rousseaux, Michael Esq NEW52Xuxue Feng
1018Adams M CaldareraAustralia2026-07-15Rousseaux, Michael Esq UNQUALIFIED23Anna Fali
1019Salvatore L CampainArgentina2026-07-08Commercial Press UNQUALIFIED98Anna Fali
1020Kadeem N WieserAustralia2026-07-19Chanay, Jeffrey A Esq PROPOSAL35Ivan Magalhaes
1021Claire B CaldareraUnited Kingdom2026-07-10Dorl, James J Esq UNQUALIFIED45Stephen Shaw
1022Octavia I DilliardSpain2026-06-24Morlong Associates NEGOTIATION20Asiya Javayant
1023Adams G ShinkoItaly2026-07-06King, Christopher A Esq PROPOSAL26Stephen Shaw
1024Claire P PaprockiIndia2026-07-05Dorl, James J Esq UNQUALIFIED86Onyama Limba
1025James P StockhamIndia2026-06-27Dorl, James J Esq NEW0Bernardo Dominic
1026Jeanfrancois G SlusarskiJapan2026-07-06Rangoni Of Florence PROPOSAL65Asiya Javayant
1027Murillo O BriddickCanada2026-07-02Chapman, Ross E Esq UNQUALIFIED25Stephen Shaw
1028David N BologniaUnited Kingdom2026-06-29Dorl, James J Esq QUALIFIED59Stephen Shaw
1029Jefferson N ShinkoArgentina2026-06-30Buckley Miller Wright QUALIFIED29Onyama Limba
1030Izzy S PerinGermany2026-07-10Chapman, Ross E Esq RENEWAL53Onyama Limba
1031Mujtaba T AlbaresJapan2026-07-02Truhlar And Truhlar Attys NEGOTIATION99Ivan Magalhaes
1032Kadeem V WhobreyUnited Kingdom2026-07-18Feltz Printing Service RENEWAL67Bernardo Dominic
1033Isabel J TollnerIndia2026-07-02Benton, John B Jr RENEWAL59Stephen Shaw
1034Octavia F GlickRussia2026-06-28Buckley Miller Wright PROPOSAL57Anna Fali
1035Arvin X DoeGermany2026-07-03Buckley Miller Wright NEW19Elwin Sharvill
1036Mujtaba Z DarakjyFrance2026-07-23Feiner Bros UNQUALIFIED84Ivan Magalhaes
1037Jennifer A StensethJapan2026-06-26Rangoni Of Florence RENEWAL52Xuxue Feng
1038Darci F FlosiJapan2026-07-17Buckley Miller Wright NEW84Elwin Sharvill
1039Julie R NickaFrance2026-06-28Chemel, James L Cpa NEW77Ivan Magalhaes
1040Francesco A CaldareraFrance2026-07-07Benton, John B Jr QUALIFIED88Ioni Bowcher
1041Clifford V GarufiGermany2026-07-05Rousseaux, Michael Esq QUALIFIED19Xuxue Feng
1042Kaitlin W GillianArgentina2026-07-21Feltz Printing Service UNQUALIFIED39Amy Elsner
1043Cody O BowleyGermany2026-07-08Chapman, Ross E Esq QUALIFIED72Elwin Sharvill
1044Jones T OstroskyAustralia2026-07-05Morlong Associates NEW80Ioni Bowcher
1045Cody K MaletIndia2026-07-01Chanay, Jeffrey A Esq NEGOTIATION49Amy Elsner
1046Francesco A PoquetteJapan2026-07-11Chemel, James L Cpa RENEWAL66Onyama Limba
1047Tony Z SaylorsRussia2026-07-13Rousseaux, Michael Esq PROPOSAL81Asiya Javayant
1048Ashley A RimBrazil2026-07-01Truhlar And Truhlar Attys PROPOSAL63Anna Fali
1049Greenwood A GarufiIndia2026-07-06Chapman, Ross E Esq PROPOSAL37Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Antonio C WieserSpainAnna Fali QUALIFIED
Johnson P PoquetteRussiaStephen Shaw QUALIFIED
Aditya B RulapaughJapanAmy Elsner NEW
Maisha J ChuiAustraliaIoni Bowcher NEGOTIATION
Jeanfrancois X MorascaFranceXuxue Feng PROPOSAL
Julie B VenereIndiaAmy Elsner UNQUALIFIED
Munro U MacleadGermanyStephen Shaw QUALIFIED
Mujtaba E CaldareraIndiaIvan Magalhaes NEGOTIATION
Clifford X WieserJapanAnna Fali NEW
Johnson D AlbaresGermanyAsiya Javayant NEW
Julie I BowleyIndiaOnyama Limba NEW
Nicolas S FigeroaBrazilAnna Fali NEGOTIATION
Deepesh S MaletUnited KingdomAnna Fali NEW
Alejandro Q CaudyIndiaIoni Bowcher QUALIFIED
Salvatore J RoysterAustraliaIoni Bowcher NEW
Adams Q KolmetzJapanElwin Sharvill NEGOTIATION
Izzy Y FollerFranceAnna Fali QUALIFIED
Julie N DoeItalyAmy Elsner PROPOSAL
Aruna A VocelkaAustraliaIoni Bowcher NEGOTIATION
Aditya O CaldareraIndiaXuxue Feng QUALIFIED
Claire T OldroydArgentinaAmy Elsner UNQUALIFIED
Jeanfrancois A MaletCanadaAmy Elsner NEGOTIATION
Faith A VocelkaRussiaIoni Bowcher RENEWAL
Rodrigues Z AmigonAustraliaIoni Bowcher RENEWAL
Murillo H ButtUnited KingdomAnna Fali NEGOTIATION
Chavez N CaldareraGermanyOnyama Limba UNQUALIFIED
Stacey P GarufiJapanIoni Bowcher QUALIFIED
Jeanfrancois R CaldareraJapanAmy Elsner RENEWAL
Maria P BologniaRussiaIoni Bowcher RENEWAL
Jones E PerinJapanAmy Elsner PROPOSAL
Mayumi U BowleyJapanBernardo Dominic NEGOTIATION
Munro H WieserArgentinaAmy Elsner UNQUALIFIED
Arvin L WieserFranceOnyama Limba NEW
Jefferson E BologniaAustraliaElwin Sharvill UNQUALIFIED
Mayumi U BriddickFranceIoni Bowcher UNQUALIFIED
Chavez R SlusarskiSpainBernardo Dominic PROPOSAL
Francesco M DilliardUnited KingdomXuxue Feng NEW
Kadeem X SergiItalyIvan Magalhaes QUALIFIED
Arvin P PaprockiAustraliaAnna Fali PROPOSAL
Misaki P BologniaIndiaBernardo Dominic QUALIFIED
Ivar U VenereJapanAmy Elsner QUALIFIED
Cody J StockhamFranceAmy Elsner QUALIFIED
Costa U SlusarskiSpainIoni Bowcher NEGOTIATION
Smith T MorascaRussiaAsiya Javayant PROPOSAL
Aditya Y DoeItalyOnyama Limba NEW
Emily T GlickSpainAnna Fali UNQUALIFIED
Murillo H WhobreyRussiaElwin Sharvill RENEWAL
Deepesh P DarakjyIndiaBernardo Dominic NEW
Jeanfrancois K SchemmerArgentinaOnyama Limba NEW
Jeanfrancois S FollerGermanyElwin Sharvill NEGOTIATION
Frozen Columns
Name
Claire O Doe
Greenwood C Iturbide
Mayumi F Dilliard
Claire R Doe
Jefferson L Shinko
Sinclair Z Foller
Morrow J Bolognia
Jefferson Z Iturbide
Stacey P Figeroa
Smith N Sergi
Adams E Glick
Maisha V Campain
Emily W Marrier
Deepesh M Doe
Francesco R Stenseth
Chavez B Morasca
Jeanfrancois X Chui
Maisha C Oldroyd
Mayumi I Whobrey
Rodrigues O Wieser
Leon B Amigon
Costa P Sergi
Octavia K Paprocki
Leja R Kolmetz
Alejandro L Nestle
Maisha X Flosi
Munro Z Doe
Greenwood K Glick
Nicolas C Paprocki
Jeanfrancois B Waycott
Chavez Z Doe
Darci Q Royster
Aruna Z Caldarera
Misaki V Sergi
Clifford H Briddick
Alejandro T Slusarski
Salvatore O Royster
Smith S Malet
Isabel X Briddick
Wickens M Rulapaugh
Aditya C Glick
Rodrigues R Paprocki
Isabel H Flosi
Mayumi X Venere
Jennifer Z Nestle
Jefferson J Shinko
Ricardo O Malet
Morrow E Bowley
Emily T Gillian
Wickens X Darakjy
IdCountryDate
1000Brazil2026-07-09
1001Japan2026-07-19
1002India2026-07-23
1003Australia2026-07-18
1004Germany2026-07-13
1005Canada2026-06-26
1006Russia2026-06-25
1007Italy2026-07-20
1008Australia2026-07-21
1009France2026-07-01
1010France2026-07-09
1011France2026-07-13
1012Argentina2026-06-28
1013Japan2026-07-02
1014Australia2026-06-30
1015Italy2026-07-07
1016France2026-07-09
1017Argentina2026-07-17
1018India2026-07-03
1019Italy2026-07-15
1020Australia2026-07-23
1021Argentina2026-07-06
1022Brazil2026-07-05
1023Australia2026-07-02
1024Italy2026-07-20
1025Spain2026-06-26
1026Russia2026-06-24
1027India2026-07-01
1028United Kingdom2026-07-12
1029France2026-06-28
1030Argentina2026-07-02
1031Canada2026-07-21
1032Russia2026-06-25
1033Canada2026-07-06
1034India2026-07-09
1035Japan2026-07-15
1036Spain2026-07-11
1037Argentina2026-06-30
1038Spain2026-07-08
1039Canada2026-07-20
1040United Kingdom2026-06-28
1041Brazil2026-06-24
1042Russia2026-06-29
1043Russia2026-07-15
1044Spain2026-07-16
1045Canada2026-07-02
1046Brazil2026-06-24
1047Canada2026-07-17
1048Italy2026-07-09
1049Canada2026-07-15

On-Demand Data

NameIdCountryDate
Isabel F Rulapaugh1000Germany2026-07-18
Octavia K Caldarera1001Germany2026-07-21
Greenwood W Slusarski1002United Kingdom2026-07-07
Costa S Saylors1003Russia2026-07-13
Costa O Inouye1004Canada2026-07-19
Kadeem I Tollner1005France2026-07-18
Maisha P Ostrosky1006Japan2026-07-14
Alejandro O Garufi1007United Kingdom2026-07-18
Misaki A Caldarera1008Canada2026-07-14
Ivar G Amigon1009Italy2026-07-01
Claire Y Paprocki1010Canada2026-06-30
Salvatore H Foller1011Spain2026-06-25
Izzy K Nicka1012Italy2026-07-07
Isabel H Figeroa1013Argentina2026-07-08
Isabel U Rim1014Japan2026-07-07
Aruna K Marrier1015Italy2026-07-14
Stacey W Paprocki1016Germany2026-07-12
Jones B Campain1017Canada2026-06-27
Cody T Garufi1018Japan2026-07-16
Ivar T Iturbide1019Argentina2026-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh P SaylorsGermanyElwin Sharvill RENEWAL
Jefferson K OldroydFranceXuxue Feng QUALIFIED
Chavez S ChuiGermanyBernardo Dominic RENEWAL
Jennifer V PaprockiArgentinaIvan Magalhaes UNQUALIFIED
Clifford U CaldareraSpainIoni Bowcher QUALIFIED
Clifford Z ChuiIndiaAsiya Javayant PROPOSAL
Adams B DarakjyRussiaOnyama Limba NEGOTIATION
Rodrigues Q FigeroaJapanOnyama Limba NEGOTIATION
David D PaprockiGermanyAsiya Javayant PROPOSAL
Greenwood T StockhamAustraliaAmy Elsner RENEWAL
Silvio D InouyeIndiaOnyama Limba UNQUALIFIED
David N KolmetzFranceIoni Bowcher NEGOTIATION
Jeanfrancois G SchemmerAustraliaOnyama Limba RENEWAL
Francesco V SaylorsItalyBernardo Dominic NEGOTIATION
Munro H RulapaughBrazilIoni Bowcher QUALIFIED
Isabel Y SlusarskiJapanAnna Fali NEGOTIATION
Francesco C InouyeCanadaAsiya Javayant RENEWAL
Faith K KolmetzItalyIvan Magalhaes RENEWAL
Chavez W RimBrazilIoni Bowcher PROPOSAL
Darci H MaletBrazilAmy Elsner NEW
Julie S GillianFranceAsiya Javayant RENEWAL
Izzy Z SlusarskiFranceIoni Bowcher NEW
Kadeem S StensethAustraliaOnyama Limba RENEWAL
Salvatore L FerenczGermanyElwin Sharvill UNQUALIFIED
Aika X ButtJapanBernardo Dominic QUALIFIED
Murillo P MaletSpainAnna Fali RENEWAL
Izzy M WaycottSpainStephen Shaw NEGOTIATION
Sinclair H OstroskyBrazilOnyama Limba QUALIFIED
Kaitlin S GillianArgentinaXuxue Feng NEW
Aditya I SergiFranceElwin Sharvill UNQUALIFIED
Mujtaba X InouyeSpainAsiya Javayant UNQUALIFIED
Jennifer D RoysterGermanyStephen Shaw QUALIFIED
David B DarakjyItalyIoni Bowcher NEW
Izzy J ChuiArgentinaIvan Magalhaes PROPOSAL
Munro K DarakjyArgentinaAsiya Javayant NEGOTIATION
Emily U FerenczGermanyBernardo Dominic PROPOSAL
Mayumi N NickaSpainAsiya Javayant PROPOSAL
Jones P SlusarskiFranceElwin Sharvill UNQUALIFIED
Ashley H KolmetzIndiaStephen Shaw NEW
Deepesh E RutaIndiaAsiya Javayant 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>