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
Kaitlin J BriddickGermanyAsiya Javayant NEGOTIATION
Kaitlin I SlusarskiItalyStephen Shaw QUALIFIED
Wickens O MarrierSpainIvan Magalhaes NEGOTIATION
Cody P RimJapanXuxue Feng RENEWAL
Maisha M AmigonSpainBernardo Dominic NEGOTIATION
Aruna V PerinCanadaOnyama Limba NEW
Maria J IturbideGermanyOnyama Limba RENEWAL
Octavia J CaudyFranceIoni Bowcher NEGOTIATION
Isabel R GlickItalyBernardo Dominic NEW
Maisha L MarrierGermanyAnna Fali QUALIFIED
Wickens O InouyeCanadaAmy Elsner QUALIFIED
Faith Y KolmetzIndiaAsiya Javayant NEW
Juan I KuskoUnited KingdomStephen Shaw QUALIFIED
Antonio F SlusarskiSpainStephen Shaw PROPOSAL
Ivar Y KuskoArgentinaBernardo Dominic UNQUALIFIED
Julie Y AmigonCanadaAmy Elsner RENEWAL
Isabel H AlbaresFranceIvan Magalhaes UNQUALIFIED
Jennifer Q GillianItalyBernardo Dominic NEGOTIATION
Tony Z MarrierSpainOnyama Limba UNQUALIFIED
Morrow B StensethCanadaAnna Fali UNQUALIFIED
Darci A GarufiUnited KingdomAsiya Javayant NEGOTIATION
Silvio O GlickGermanyBernardo Dominic NEGOTIATION
Chavez O ChuiBrazilStephen Shaw NEGOTIATION
Tony S RimBrazilStephen Shaw PROPOSAL
Leja P MacleadRussiaElwin Sharvill NEGOTIATION
Darci D VocelkaSpainOnyama Limba RENEWAL
Arvin M DarakjyAustraliaIoni Bowcher RENEWAL
Isabel L RulapaughJapanXuxue Feng RENEWAL
Leja G CaldareraCanadaBernardo Dominic RENEWAL
Clifford J GarufiUnited KingdomElwin Sharvill QUALIFIED
Faith U SaylorsGermanyStephen Shaw UNQUALIFIED
Stacey H SaylorsSpainIoni Bowcher UNQUALIFIED
Morrow H CampainSpainElwin Sharvill NEGOTIATION
Cody I DarakjySpainStephen Shaw UNQUALIFIED
Emily T SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Costa P CaldareraBrazilIoni Bowcher RENEWAL
Mayumi Y CaudyIndiaBernardo Dominic PROPOSAL
Faith G DoeGermanyBernardo Dominic PROPOSAL
Adams H GarufiBrazilAmy Elsner NEGOTIATION
Juan J ChuiAustraliaOnyama Limba NEGOTIATION
Alejandro O MacleadIndiaElwin Sharvill RENEWAL
Tony X AlbaresArgentinaXuxue Feng RENEWAL
Misaki Z SaylorsJapanStephen Shaw RENEWAL
Arvin G RimFranceIoni Bowcher PROPOSAL
Darci L SaylorsGermanyBernardo Dominic PROPOSAL
Murillo S StockhamItalyAsiya Javayant QUALIFIED
Izzy J PaprockiCanadaStephen Shaw UNQUALIFIED
Morrow W FerenczArgentinaXuxue Feng PROPOSAL
Nicolas I AmigonJapanIoni Bowcher UNQUALIFIED
Jennifer S DoeJapanAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ricardo Q PerinFranceAnna Fali NEW
Octavia E MaletFranceAnna Fali NEW
Greenwood B BriddickCanadaXuxue Feng RENEWAL
Adams T WieserFranceIvan Magalhaes PROPOSAL
Mujtaba I AlbaresIndiaAsiya Javayant NEW
Ashley S FerenczAustraliaAsiya Javayant PROPOSAL
Claire K OldroydIndiaElwin Sharvill NEW
Antonio Q CaudyBrazilAnna Fali PROPOSAL
Sinclair O RulapaughAustraliaStephen Shaw NEGOTIATION
Jefferson E InouyeAustraliaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer C AmigonCanada2026-08-29Dorl, James J Esq PROPOSAL17Stephen Shaw
1001Maria Q SergiBrazil2026-08-22Chemel, James L Cpa NEGOTIATION79Amy Elsner
1002Murillo P SlusarskiAustralia2026-08-02Dorl, James J Esq PROPOSAL48Ivan Magalhaes
1003Mayumi S SaylorsIndia2026-08-29Morlong Associates UNQUALIFIED56Anna Fali
1004Mayumi R InouyeGermany2026-08-13Rousseaux, Michael Esq NEGOTIATION52Asiya Javayant
1005Emily G FigeroaJapan2026-08-08Chanay, Jeffrey A Esq QUALIFIED25Stephen Shaw
1006Aditya H DilliardIndia2026-08-23Chemel, James L Cpa NEGOTIATION98Bernardo Dominic
1007Aditya F PerinGermany2026-08-12Buckley Miller Wright UNQUALIFIED68Asiya Javayant
1008Silvio N AlbaresJapan2026-07-31Feltz Printing Service NEGOTIATION89Anna Fali
1009Clifford R MaletArgentina2026-08-13Printing Dimensions QUALIFIED76Anna Fali
1010Kaitlin X FigeroaGermany2026-08-05Commercial Press NEGOTIATION79Amy Elsner
1011Antonio X AmigonFrance2026-08-02Chapman, Ross E Esq PROPOSAL10Elwin Sharvill
1012Wickens V GarufiArgentina2026-08-06Chemel, James L Cpa PROPOSAL18Ioni Bowcher
1013Salvatore K RutaRussia2026-08-12Commercial Press NEGOTIATION90Xuxue Feng
1014Greenwood U StensethArgentina2026-08-26King, Christopher A Esq UNQUALIFIED98Stephen Shaw
1015Aditya S WhobreyFrance2026-07-31Dorl, James J Esq NEW13Bernardo Dominic
1016Julie X RulapaughGermany2026-08-26Chapman, Ross E Esq NEGOTIATION84Ioni Bowcher
1017Isabel B ButtCanada2026-08-14Feiner Bros RENEWAL10Ivan Magalhaes
1018Jennifer E OldroydAustralia2026-08-07Feiner Bros UNQUALIFIED62Ivan Magalhaes
1019Smith W TollnerJapan2026-08-27Chapman, Ross E Esq RENEWAL74Anna Fali
1020Ashley Q SchemmerIndia2026-08-22Chanay, Jeffrey A Esq PROPOSAL3Stephen Shaw
1021Ashley U PoquetteJapan2026-08-22Rangoni Of Florence NEW10Ioni Bowcher
1022Sinclair X NickaAustralia2026-08-05Chemel, James L Cpa PROPOSAL12Bernardo Dominic
1023Cody N KolmetzCanada2026-08-04Feiner Bros PROPOSAL44Asiya Javayant
1024Ricardo H TollnerUnited Kingdom2026-08-01Commercial Press NEW29Bernardo Dominic
1025Aruna Z RutaBrazil2026-08-15Dorl, James J Esq UNQUALIFIED79Anna Fali
1026Emily P WhobreyRussia2026-08-11Benton, John B Jr NEW57Onyama Limba
1027Maria U AlbaresBrazil2026-08-06Feiner Bros UNQUALIFIED74Ioni Bowcher
1028Aditya H PerinRussia2026-08-24Benton, John B Jr NEW13Xuxue Feng
1029Smith Y MorascaGermany2026-08-13Chemel, James L Cpa NEGOTIATION69Bernardo Dominic
1030Misaki O NickaItaly2026-08-02Feltz Printing Service QUALIFIED3Anna Fali
1031Claire B FollerFrance2026-08-11Commercial Press NEW48Amy Elsner
1032Chavez J GillianIndia2026-08-22Benton, John B Jr NEW12Asiya Javayant
1033Morrow D BriddickRussia2026-08-24Rousseaux, Michael Esq RENEWAL41Xuxue Feng
1034Clifford I OldroydJapan2026-08-02Rangoni Of Florence QUALIFIED3Bernardo Dominic
1035Silvio C KuskoArgentina2026-08-03Chemel, James L Cpa RENEWAL26Elwin Sharvill
1036Alejandro H ChuiArgentina2026-08-04King, Christopher A Esq NEGOTIATION31Amy Elsner
1037James X RutaIndia2026-08-01Rousseaux, Michael Esq RENEWAL89Onyama Limba
1038Ivar F ButtArgentina2026-08-15Morlong Associates PROPOSAL92Elwin Sharvill
1039Mujtaba H VocelkaUnited Kingdom2026-07-31Chanay, Jeffrey A Esq RENEWAL38Anna Fali
1040Jones W GarufiAustralia2026-08-17Dorl, James J Esq UNQUALIFIED79Onyama Limba
1041Wickens K OstroskyBrazil2026-08-13Benton, John B Jr NEW56Elwin Sharvill
1042Stacey A WaycottItaly2026-08-20Commercial Press PROPOSAL17Ivan Magalhaes
1043Nicolas U BowleyIndia2026-08-11Rousseaux, Michael Esq RENEWAL14Xuxue Feng
1044Costa T VenereArgentina2026-08-22Feiner Bros UNQUALIFIED54Ioni Bowcher
1045Sinclair Q FlosiCanada2026-08-09Chapman, Ross E Esq QUALIFIED7Elwin Sharvill
1046Morrow W AlbaresUnited Kingdom2026-08-07Commercial Press NEGOTIATION73Asiya Javayant
1047Costa C GarufiIndia2026-08-06King, Christopher A Esq UNQUALIFIED41Anna Fali
1048Morrow J BowleyArgentina2026-08-16Rangoni Of Florence UNQUALIFIED4Amy Elsner
1049Mayumi O TollnerArgentina2026-08-24Dorl, James J Esq NEW57Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin C GarufiBrazilIoni Bowcher UNQUALIFIED
Octavia Y ShinkoIndiaStephen Shaw UNQUALIFIED
Munro N NestleSpainOnyama Limba UNQUALIFIED
Greenwood H BowleyCanadaStephen Shaw QUALIFIED
Darci R FigeroaBrazilElwin Sharvill NEGOTIATION
Jones L SaylorsItalyXuxue Feng UNQUALIFIED
Mayumi K PaprockiUnited KingdomBernardo Dominic UNQUALIFIED
Murillo L PaprockiIndiaElwin Sharvill NEGOTIATION
Faith O CaudyIndiaAmy Elsner NEGOTIATION
Jefferson Y VocelkaUnited KingdomIvan Magalhaes QUALIFIED
Julie L CampainAustraliaAnna Fali UNQUALIFIED
Jefferson X StockhamJapanOnyama Limba NEW
Munro A ButtSpainAnna Fali NEGOTIATION
David N GarufiItalyXuxue Feng NEGOTIATION
Greenwood A NestleJapanStephen Shaw PROPOSAL
Francesco W RoysterIndiaXuxue Feng NEW
Kadeem B SchemmerJapanOnyama Limba PROPOSAL
Darci I VenereArgentinaAnna Fali NEW
Kadeem R MorascaAustraliaXuxue Feng RENEWAL
Claire C CaldareraBrazilIvan Magalhaes UNQUALIFIED
Isabel N GillianRussiaBernardo Dominic RENEWAL
Maisha B PaprockiAustraliaStephen Shaw NEGOTIATION
Wickens H NickaItalyXuxue Feng QUALIFIED
Adams J DarakjyArgentinaOnyama Limba NEW
Octavia D PerinGermanyBernardo Dominic UNQUALIFIED
Salvatore Y WhobreyGermanyAsiya Javayant RENEWAL
Ivar D ChuiItalyBernardo Dominic UNQUALIFIED
James A StensethBrazilAsiya Javayant RENEWAL
Mayumi V PoquetteCanadaAnna Fali NEW
Nicolas G FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Julie S ShinkoIndiaElwin Sharvill NEW
Murillo N NickaAustraliaStephen Shaw QUALIFIED
Leon Y PaprockiRussiaOnyama Limba NEGOTIATION
Morrow K SchemmerRussiaAmy Elsner UNQUALIFIED
Nicolas X AlbaresFranceAmy Elsner PROPOSAL
Nicolas I MacleadBrazilIoni Bowcher RENEWAL
Jeanfrancois Z NickaUnited KingdomOnyama Limba RENEWAL
Jeanfrancois F IturbideIndiaAsiya Javayant QUALIFIED
Ashley A CampainFranceElwin Sharvill PROPOSAL
Silvio B KolmetzUnited KingdomIoni Bowcher PROPOSAL
Izzy C PaprockiCanadaXuxue Feng PROPOSAL
Faith J AlbaresAustraliaStephen Shaw PROPOSAL
Rodrigues H FerenczGermanyStephen Shaw NEW
Clifford H MorascaIndiaBernardo Dominic QUALIFIED
Leja E InouyeJapanStephen Shaw NEGOTIATION
Ashley D PoquetteRussiaAsiya Javayant PROPOSAL
Munro R BologniaUnited KingdomAnna Fali PROPOSAL
Smith I MaletUnited KingdomElwin Sharvill PROPOSAL
Juan V TollnerCanadaIoni Bowcher UNQUALIFIED
Ricardo I StensethFranceIvan Magalhaes QUALIFIED
Frozen Columns
Name
Jeanfrancois V Ruta
Jones C Caldarera
Misaki C Doe
Aika U Butt
Munro J Marrier
Misaki D Morasca
Jones K Venere
Mayumi H Ruta
Jennifer R Amigon
Wickens D Flosi
Murillo Y Nestle
Misaki R Sergi
Jefferson U Poquette
Murillo V Tollner
Juan Y Rulapaugh
Johnson H Tollner
Mayumi W Slusarski
Munro U Campain
Silvio W Rulapaugh
Misaki J Butt
Claire T Kolmetz
Deepesh H Bolognia
Jennifer B Ostrosky
Darci P Nestle
Mujtaba R Kusko
Ivar B Campain
Jones Q Oldroyd
Cody X Campain
Johnson Z Schemmer
Faith V Venere
Claire X Stenseth
Deepesh U Glick
Isabel D Bolognia
Jones H Royster
Munro Y Rim
Jeanfrancois D Kolmetz
Faith K Rulapaugh
Ashley W Tollner
Leon C Chui
Adams Y Paprocki
Deepesh C Dilliard
Jeanfrancois V Poquette
Costa E Inouye
Leja K Stenseth
Misaki A Chui
Kadeem Y Stenseth
Jones P Poquette
Aditya M Royster
Clifford M Perin
Kadeem R Wieser
IdCountryDate
1000Brazil2026-08-15
1001Spain2026-08-29
1002Japan2026-08-19
1003Germany2026-08-11
1004Japan2026-07-31
1005Germany2026-07-31
1006Italy2026-08-05
1007France2026-08-27
1008Canada2026-08-10
1009France2026-08-29
1010France2026-08-25
1011Australia2026-08-23
1012Japan2026-08-24
1013France2026-08-25
1014India2026-08-12
1015United Kingdom2026-08-11
1016Japan2026-08-23
1017Germany2026-08-17
1018Italy2026-08-25
1019France2026-08-23
1020France2026-08-26
1021Argentina2026-08-21
1022Canada2026-08-19
1023Russia2026-08-17
1024Argentina2026-08-01
1025India2026-08-01
1026Brazil2026-08-25
1027Russia2026-08-19
1028Germany2026-08-03
1029Spain2026-08-02
1030Italy2026-08-16
1031Germany2026-08-01
1032United Kingdom2026-08-01
1033United Kingdom2026-08-18
1034France2026-08-26
1035Japan2026-08-08
1036United Kingdom2026-08-22
1037Brazil2026-08-25
1038Canada2026-08-09
1039United Kingdom2026-08-16
1040France2026-08-27
1041Italy2026-08-13
1042Spain2026-08-02
1043Brazil2026-07-31
1044India2026-08-24
1045United Kingdom2026-08-28
1046Russia2026-08-17
1047Italy2026-08-23
1048United Kingdom2026-08-15
1049France2026-08-15

On-Demand Data

NameIdCountryDate
Murillo R Whobrey1000Brazil2026-08-10
Ashley I Kolmetz1001Spain2026-08-24
Greenwood B Saylors1002India2026-08-01
Alejandro C Gaucho1003Argentina2026-08-20
Isabel P Paprocki1004Italy2026-07-31
Arvin W Foller1005France2026-08-15
Munro R Dilliard1006Italy2026-08-14
Darci V Butt1007France2026-08-09
Munro Z Chui1008Spain2026-08-12
Kaitlin O Inouye1009France2026-08-10
Silvio B Malet1010Germany2026-08-14
Ricardo T Maclead1011Russia2026-08-29
Aditya G Chui1012Japan2026-07-31
Sinclair E Figeroa1013Argentina2026-08-12
Nicolas R Bowley1014India2026-08-24
Claire R Kolmetz1015India2026-08-28
Ashley M Iturbide1016India2026-08-18
Stacey D Briddick1017United Kingdom2026-08-24
Maisha K Nestle1018United Kingdom2026-08-08
Leon P Bolognia1019Italy2026-08-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria A NickaSpainXuxue Feng NEGOTIATION
David Z MorascaIndiaAnna Fali UNQUALIFIED
Smith G NestleCanadaIvan Magalhaes NEGOTIATION
Salvatore F SergiGermanyIvan Magalhaes NEGOTIATION
Ricardo D BologniaAustraliaStephen Shaw QUALIFIED
Arvin N CampainJapanXuxue Feng NEGOTIATION
Greenwood F GillianCanadaAnna Fali RENEWAL
Jefferson D BowleyAustraliaIoni Bowcher NEGOTIATION
Jefferson W WhobreyIndiaAsiya Javayant UNQUALIFIED
Chavez P DarakjyCanadaIoni Bowcher PROPOSAL
Morrow W FlosiItalyOnyama Limba UNQUALIFIED
Maisha T OldroydCanadaIvan Magalhaes UNQUALIFIED
Munro I MorascaItalyXuxue Feng NEGOTIATION
Ivar A PaprockiItalyBernardo Dominic NEGOTIATION
Darci H SaylorsRussiaElwin Sharvill NEW
Leon X IturbideJapanElwin Sharvill NEGOTIATION
Juan R PerinRussiaAmy Elsner RENEWAL
Munro Y MarrierIndiaAnna Fali NEGOTIATION
Tony Q WaycottCanadaElwin Sharvill NEGOTIATION
Jones P CaudyItalyStephen Shaw NEW
Kaitlin E BologniaBrazilAmy Elsner QUALIFIED
Deepesh U GillianJapanAnna Fali RENEWAL
David N TollnerBrazilAmy Elsner NEGOTIATION
Adams D SergiGermanyElwin Sharvill RENEWAL
Francesco Z CampainAustraliaAsiya Javayant PROPOSAL
Mujtaba U BriddickGermanyIoni Bowcher QUALIFIED
Clifford U VenereCanadaAmy Elsner PROPOSAL
Misaki M BriddickIndiaOnyama Limba QUALIFIED
James N FigeroaFranceIoni Bowcher QUALIFIED
Alejandro P AmigonIndiaAnna Fali NEGOTIATION
Johnson L MaletJapanAmy Elsner NEW
Mujtaba Q GlickGermanyOnyama Limba QUALIFIED
Silvio L ButtAustraliaIvan Magalhaes QUALIFIED
Stacey W ShinkoJapanXuxue Feng QUALIFIED
Leja Z PaprockiIndiaIoni Bowcher PROPOSAL
Kaitlin G VocelkaSpainXuxue Feng PROPOSAL
Emily C CaudyJapanIoni Bowcher UNQUALIFIED
Octavia I TollnerGermanyOnyama Limba PROPOSAL
Misaki X OstroskyUnited KingdomStephen Shaw NEGOTIATION
Aika Q VocelkaSpainStephen Shaw 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>