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 N ChuiUnited KingdomBernardo Dominic QUALIFIED
Munro O MacleadIndiaIoni Bowcher NEGOTIATION
Jefferson N SaylorsRussiaIvan Magalhaes NEW
Darci J KolmetzItalyIoni Bowcher UNQUALIFIED
Misaki Q FigeroaIndiaElwin Sharvill RENEWAL
Costa W FollerBrazilAmy Elsner UNQUALIFIED
Faith U GauchoAustraliaIvan Magalhaes NEGOTIATION
David E TollnerIndiaAsiya Javayant RENEWAL
Jones L ChuiArgentinaElwin Sharvill QUALIFIED
Jefferson Q SlusarskiBrazilElwin Sharvill PROPOSAL
Morrow I FlosiItalyStephen Shaw UNQUALIFIED
Leon L SlusarskiUnited KingdomAmy Elsner UNQUALIFIED
Jones P AlbaresIndiaIvan Magalhaes QUALIFIED
James P VocelkaAustraliaAnna Fali RENEWAL
Mujtaba C KolmetzSpainIvan Magalhaes UNQUALIFIED
Mujtaba A PoquetteJapanBernardo Dominic PROPOSAL
Clifford Y CaudyCanadaStephen Shaw QUALIFIED
Stacey W StockhamItalyStephen Shaw QUALIFIED
Darci T TollnerItalyStephen Shaw NEW
Aika G GauchoArgentinaAsiya Javayant NEGOTIATION
Jennifer K DoeItalyStephen Shaw PROPOSAL
Tony H FerenczArgentinaAnna Fali PROPOSAL
Greenwood V PaprockiUnited KingdomAmy Elsner UNQUALIFIED
Nicolas R BologniaArgentinaStephen Shaw UNQUALIFIED
Morrow F KolmetzIndiaElwin Sharvill UNQUALIFIED
Morrow U NickaIndiaOnyama Limba PROPOSAL
Jennifer B StockhamBrazilElwin Sharvill UNQUALIFIED
Darci T KuskoIndiaAsiya Javayant UNQUALIFIED
Jeanfrancois B DoeRussiaElwin Sharvill RENEWAL
Ivar S NickaBrazilIvan Magalhaes NEGOTIATION
Jennifer P PerinGermanyOnyama Limba NEGOTIATION
Leon K GlickArgentinaXuxue Feng NEW
Aditya A KuskoRussiaBernardo Dominic NEGOTIATION
Claire O RulapaughGermanyElwin Sharvill UNQUALIFIED
Sinclair X MorascaRussiaAsiya Javayant UNQUALIFIED
Izzy P KolmetzSpainIoni Bowcher NEW
Adams N OstroskyRussiaStephen Shaw UNQUALIFIED
Ivar F KolmetzJapanStephen Shaw RENEWAL
Ashley U StockhamBrazilAmy Elsner PROPOSAL
Juan F MarrierUnited KingdomBernardo Dominic PROPOSAL
Mujtaba Q CaudyBrazilOnyama Limba PROPOSAL
Leja I SaylorsSpainXuxue Feng RENEWAL
Rodrigues X OstroskyBrazilAsiya Javayant QUALIFIED
Arvin V StockhamIndiaXuxue Feng PROPOSAL
Tony A OstroskyJapanAnna Fali RENEWAL
David E ButtSpainElwin Sharvill PROPOSAL
Jeanfrancois J GauchoFranceAnna Fali RENEWAL
Adams Y RulapaughFranceAnna Fali RENEWAL
Ashley L BowleyJapanIoni Bowcher PROPOSAL
Kaitlin Z MorascaRussiaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Faith H AmigonUnited KingdomIvan Magalhaes RENEWAL
Morrow M IturbideAustraliaIoni Bowcher RENEWAL
Leon W DarakjyUnited KingdomAmy Elsner QUALIFIED
Sinclair J BriddickSpainOnyama Limba RENEWAL
Antonio X VocelkaItalyAmy Elsner RENEWAL
Greenwood B MacleadAustraliaXuxue Feng RENEWAL
Clifford P WhobreySpainAmy Elsner RENEWAL
Aruna P IturbideCanadaIvan Magalhaes RENEWAL
Adams X MacleadCanadaAnna Fali NEW
Costa P OstroskySpainAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie U VenereJapan2025-06-07Buckley Miller Wright UNQUALIFIED25Xuxue Feng
1001Adams J FerenczRussia2025-06-15Feltz Printing Service RENEWAL67Asiya Javayant
1002Aditya M WieserAustralia2025-06-04Truhlar And Truhlar Attys NEGOTIATION27Anna Fali
1003Isabel I CaldareraSpain2025-05-18Chapman, Ross E Esq NEGOTIATION70Onyama Limba
1004Nicolas D FigeroaArgentina2025-05-28Morlong Associates PROPOSAL92Onyama Limba
1005Nicolas Y VocelkaItaly2025-05-25Rangoni Of Florence QUALIFIED57Amy Elsner
1006Alejandro T MaletAustralia2025-05-22Commercial Press UNQUALIFIED27Ioni Bowcher
1007Chavez F MorascaSpain2025-06-14Rangoni Of Florence NEGOTIATION36Bernardo Dominic
1008Smith C OstroskyJapan2025-06-08Dorl, James J Esq NEW13Ioni Bowcher
1009Leja W WieserSpain2025-06-13Benton, John B Jr UNQUALIFIED74Xuxue Feng
1010Greenwood X RutaIndia2025-06-15Commercial Press PROPOSAL44Bernardo Dominic
1011Rodrigues J InouyeSpain2025-05-19Buckley Miller Wright PROPOSAL55Stephen Shaw
1012Jennifer X OldroydGermany2025-05-31Dorl, James J Esq NEW84Asiya Javayant
1013Kaitlin U MarrierArgentina2025-06-14Chemel, James L Cpa PROPOSAL39Anna Fali
1014Izzy X CampainSpain2025-06-06Commercial Press NEGOTIATION57Ivan Magalhaes
1015Maria E BriddickArgentina2025-06-03Feiner Bros NEW95Stephen Shaw
1016Costa R DilliardFrance2025-05-26Chanay, Jeffrey A Esq PROPOSAL64Bernardo Dominic
1017Wickens Y CampainAustralia2025-06-14Feltz Printing Service RENEWAL78Ioni Bowcher
1018Claire P MorascaItaly2025-06-01Chanay, Jeffrey A Esq PROPOSAL16Ioni Bowcher
1019Mayumi K OldroydIndia2025-06-16Feiner Bros NEGOTIATION21Onyama Limba
1020Julie E RimItaly2025-06-14Chapman, Ross E Esq NEW53Ioni Bowcher
1021James Z PerinAustralia2025-06-05Truhlar And Truhlar Attys PROPOSAL34Elwin Sharvill
1022Sinclair S BowleyGermany2025-06-06Morlong Associates NEW69Xuxue Feng
1023Francesco A PerinUnited Kingdom2025-05-23Commercial Press RENEWAL54Onyama Limba
1024Aruna N StockhamBrazil2025-05-22Buckley Miller Wright NEW27Ioni Bowcher
1025Greenwood V FerenczFrance2025-06-15Dorl, James J Esq NEGOTIATION33Bernardo Dominic
1026Mujtaba Z VenereSpain2025-05-29Chemel, James L Cpa PROPOSAL74Amy Elsner
1027Jefferson T PaprockiSpain2025-05-19Feltz Printing Service UNQUALIFIED77Ivan Magalhaes
1028Stacey J PaprockiUnited Kingdom2025-06-01Dorl, James J Esq QUALIFIED17Onyama Limba
1029Kaitlin C AmigonSpain2025-05-29Chapman, Ross E Esq PROPOSAL61Amy Elsner
1030Chavez G WhobreySpain2025-05-21King, Christopher A Esq RENEWAL30Bernardo Dominic
1031Aika P CaudyRussia2025-05-28Rangoni Of Florence PROPOSAL96Ivan Magalhaes
1032Ricardo I RimAustralia2025-05-22Chapman, Ross E Esq PROPOSAL8Asiya Javayant
1033Claire C CampainIndia2025-05-21King, Christopher A Esq NEGOTIATION99Bernardo Dominic
1034Rodrigues T CaldareraCanada2025-05-23Feiner Bros PROPOSAL9Stephen Shaw
1035Izzy O PerinJapan2025-05-29Rousseaux, Michael Esq RENEWAL42Asiya Javayant
1036Smith I CampainArgentina2025-05-22Truhlar And Truhlar Attys QUALIFIED89Onyama Limba
1037Adams A MaletUnited Kingdom2025-06-10King, Christopher A Esq RENEWAL52Anna Fali
1038Aika P DoeRussia2025-06-05Chapman, Ross E Esq NEGOTIATION73Asiya Javayant
1039Murillo C OldroydFrance2025-06-06Chapman, Ross E Esq RENEWAL13Onyama Limba
1040Leon O NickaBrazil2025-05-24King, Christopher A Esq RENEWAL59Ivan Magalhaes
1041Misaki E DarakjyAustralia2025-05-30Feltz Printing Service NEGOTIATION37Asiya Javayant
1042Kaitlin Q KuskoUnited Kingdom2025-05-30Chemel, James L Cpa QUALIFIED73Amy Elsner
1043Ricardo G VenereBrazil2025-05-22Feiner Bros NEGOTIATION55Anna Fali
1044Salvatore T FerenczGermany2025-05-22Feltz Printing Service UNQUALIFIED21Onyama Limba
1045Faith B ChuiArgentina2025-06-15Dorl, James J Esq NEW95Bernardo Dominic
1046Ashley M FollerJapan2025-05-23Dorl, James J Esq UNQUALIFIED32Ivan Magalhaes
1047Ricardo B SaylorsAustralia2025-05-19Benton, John B Jr NEGOTIATION66Elwin Sharvill
1048Greenwood V MacleadRussia2025-06-13Feiner Bros RENEWAL40Elwin Sharvill
1049Izzy V FigeroaArgentina2025-05-25Chapman, Ross E Esq QUALIFIED90Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Ashley Q ButtIndiaAnna Fali RENEWAL
Aika U RulapaughAustraliaElwin Sharvill RENEWAL
Maisha M PerinCanadaXuxue Feng NEGOTIATION
Cody U PerinItalyAsiya Javayant UNQUALIFIED
Wickens K MaletCanadaStephen Shaw NEW
Leon R BologniaJapanOnyama Limba NEW
Leja V BriddickFranceOnyama Limba NEGOTIATION
Claire P WhobreyGermanyXuxue Feng PROPOSAL
Rodrigues K RutaItalyXuxue Feng PROPOSAL
Claire C CaldareraItalyBernardo Dominic PROPOSAL
Ashley G FollerJapanBernardo Dominic PROPOSAL
Izzy Y FerenczItalyAmy Elsner NEW
Arvin H NickaRussiaOnyama Limba PROPOSAL
Mayumi L MaletCanadaIvan Magalhaes QUALIFIED
Faith E CaudyArgentinaOnyama Limba PROPOSAL
Mayumi S WhobreyRussiaAsiya Javayant PROPOSAL
Morrow O SergiAustraliaXuxue Feng NEGOTIATION
Misaki I GauchoFranceElwin Sharvill PROPOSAL
Greenwood Q PerinJapanAsiya Javayant NEGOTIATION
Johnson T BriddickJapanAnna Fali NEW
Juan F CaldareraJapanXuxue Feng NEW
Julie W GlickBrazilXuxue Feng RENEWAL
Arvin X AlbaresJapanAsiya Javayant RENEWAL
Leon P VenereCanadaAnna Fali NEW
Leja G NestleBrazilXuxue Feng UNQUALIFIED
Emily Z GlickItalyIvan Magalhaes RENEWAL
Darci Z PerinItalyIoni Bowcher PROPOSAL
Stacey M GarufiFranceBernardo Dominic NEW
Emily M ButtIndiaAmy Elsner UNQUALIFIED
Mujtaba V ButtGermanyIoni Bowcher QUALIFIED
Kadeem N PerinBrazilIoni Bowcher RENEWAL
Octavia G MaletCanadaBernardo Dominic UNQUALIFIED
Stacey Y OldroydGermanyIvan Magalhaes NEW
Isabel Z AlbaresAustraliaIvan Magalhaes QUALIFIED
Cody U GlickCanadaIoni Bowcher PROPOSAL
Ivar W MorascaFranceBernardo Dominic QUALIFIED
Emily D SlusarskiRussiaAsiya Javayant RENEWAL
Nicolas U DarakjyCanadaAmy Elsner QUALIFIED
Izzy A CampainItalyBernardo Dominic UNQUALIFIED
Jones E CaldareraFranceAnna Fali PROPOSAL
Costa I DilliardItalyElwin Sharvill UNQUALIFIED
Darci M FollerSpainBernardo Dominic QUALIFIED
Cody X GlickGermanyOnyama Limba QUALIFIED
Deepesh Q RutaUnited KingdomOnyama Limba NEW
Morrow I GlickItalyAmy Elsner PROPOSAL
Ivar V ButtJapanElwin Sharvill UNQUALIFIED
Francesco E PaprockiJapanAmy Elsner RENEWAL
Darci D SergiJapanStephen Shaw NEW
David Y WaycottBrazilOnyama Limba QUALIFIED
Murillo Q BologniaArgentinaAnna Fali RENEWAL
Frozen Columns
Name
Aruna S Gaucho
Ivar V Vocelka
Aika M Paprocki
Morrow V Whobrey
Jones T Nicka
Aditya W Albares
Salvatore U Kusko
Julie G Kolmetz
Morrow Q Morasca
Jennifer N Campain
Ivar S Whobrey
Leon C Briddick
Clifford X Amigon
Mayumi C Garufi
Salvatore L Ostrosky
Aditya D Venere
Morrow X Inouye
Jefferson X Tollner
Sinclair G Glick
Stacey O Royster
Francesco Y Gaucho
Jennifer G Wieser
Jones X Bolognia
Johnson W Wieser
Darci B Bowley
Ashley J Kusko
Aditya V Oldroyd
Greenwood C Malet
Salvatore D Morasca
Antonio D Iturbide
Julie H Gaucho
Ivar K Campain
Octavia Y Royster
Antonio P Dilliard
Francesco B Venere
Aika Y Foller
Chavez U Gillian
Julie X Ruta
Darci Z Rim
Maria F Gillian
Ricardo Y Ferencz
Leja F Inouye
Morrow V Kusko
Faith L Kusko
Ivar Y Rulapaugh
Smith I Schemmer
Alejandro M Rulapaugh
Izzy K Caldarera
James C Campain
Chavez B Malet
IdCountryDate
1000France2025-05-23
1001France2025-06-15
1002Russia2025-06-16
1003Canada2025-05-27
1004Spain2025-06-04
1005United Kingdom2025-06-15
1006Australia2025-05-28
1007Australia2025-05-25
1008Italy2025-05-31
1009Spain2025-05-24
1010France2025-05-30
1011France2025-06-01
1012Spain2025-05-27
1013Argentina2025-05-18
1014Canada2025-06-15
1015Australia2025-06-07
1016Russia2025-06-09
1017Spain2025-05-23
1018Australia2025-06-12
1019United Kingdom2025-06-10
1020Italy2025-06-03
1021Spain2025-05-21
1022Canada2025-06-12
1023Italy2025-05-22
1024Canada2025-06-10
1025France2025-06-11
1026Argentina2025-06-16
1027Italy2025-06-09
1028India2025-05-27
1029India2025-05-25
1030Germany2025-06-08
1031Argentina2025-05-28
1032Brazil2025-05-19
1033Italy2025-05-28
1034Germany2025-06-13
1035Canada2025-06-02
1036Spain2025-05-27
1037Japan2025-06-11
1038Canada2025-06-14
1039Brazil2025-06-15
1040Argentina2025-06-04
1041Argentina2025-06-01
1042United Kingdom2025-05-31
1043Australia2025-06-16
1044Italy2025-06-11
1045Russia2025-06-04
1046United Kingdom2025-06-08
1047Italy2025-05-21
1048Japan2025-06-02
1049Germany2025-05-30

On-Demand Data

NameIdCountryDate
Nicolas U Perin1000Germany2025-06-01
Stacey J Glick1001Italy2025-05-28
Maisha R Flosi1002Japan2025-06-14
Jones O Slusarski1003Spain2025-06-14
Jennifer W Iturbide1004United Kingdom2025-05-29
Faith K Albares1005France2025-05-28
Ricardo B Nicka1006Argentina2025-05-31
Claire J Amigon1007Germany2025-05-20
Maisha T Ruta1008Argentina2025-05-20
Julie F Rulapaugh1009Canada2025-06-03
Alejandro Z Poquette1010France2025-06-04
Smith G Nestle1011France2025-06-05
Deepesh Y Foller1012Germany2025-05-19
James P Ostrosky1013Canada2025-05-31
Wickens K Albares1014Argentina2025-05-18
Stacey P Caldarera1015Spain2025-05-20
Silvio W Ferencz1016Japan2025-05-23
Alejandro E Darakjy1017Canada2025-06-04
Julie U Glick1018Spain2025-06-08
Faith D Schemmer1019Canada2025-05-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones C WaycottAustraliaElwin Sharvill PROPOSAL
Arvin Z PerinItalyElwin Sharvill UNQUALIFIED
Sinclair Q BologniaUnited KingdomAsiya Javayant NEW
Arvin E ChuiFranceOnyama Limba PROPOSAL
Leja Y FigeroaSpainAsiya Javayant RENEWAL
Jennifer O OldroydArgentinaAmy Elsner UNQUALIFIED
Johnson H AlbaresSpainOnyama Limba QUALIFIED
Stacey X WaycottBrazilAmy Elsner NEGOTIATION
Nicolas K VenereSpainAsiya Javayant NEW
Jones P FigeroaSpainXuxue Feng UNQUALIFIED
Mujtaba U RimSpainIvan Magalhaes QUALIFIED
Aika L StockhamFranceIvan Magalhaes RENEWAL
Aditya L GlickGermanyOnyama Limba QUALIFIED
Leja S SaylorsItalyXuxue Feng QUALIFIED
Silvio T CaldareraUnited KingdomStephen Shaw NEGOTIATION
Deepesh R WaycottIndiaOnyama Limba NEW
Stacey S CampainFranceBernardo Dominic RENEWAL
Claire O CaudyFranceOnyama Limba NEGOTIATION
Octavia N GarufiUnited KingdomAsiya Javayant NEGOTIATION
Ricardo Y RulapaughCanadaOnyama Limba RENEWAL
Julie X MorascaUnited KingdomAmy Elsner QUALIFIED
Morrow H WaycottUnited KingdomIoni Bowcher NEW
Antonio N PoquetteRussiaOnyama Limba UNQUALIFIED
Ashley M StensethBrazilAmy Elsner QUALIFIED
Tony A KolmetzGermanyAnna Fali UNQUALIFIED
Cody J RutaArgentinaBernardo Dominic UNQUALIFIED
Ivar Z NestleIndiaOnyama Limba PROPOSAL
Johnson O OstroskyJapanAsiya Javayant NEGOTIATION
Maria O RutaArgentinaElwin Sharvill NEW
Rodrigues W CampainJapanOnyama Limba RENEWAL
Greenwood Q MacleadUnited KingdomAmy Elsner PROPOSAL
Greenwood L StockhamGermanyIoni Bowcher NEGOTIATION
Wickens R SchemmerRussiaAmy Elsner RENEWAL
Mayumi W GlickArgentinaXuxue Feng RENEWAL
Julie Z FlosiBrazilOnyama Limba NEW
Jones R BologniaCanadaXuxue Feng NEGOTIATION
Maisha K PaprockiCanadaIvan Magalhaes QUALIFIED
Izzy Z AmigonRussiaOnyama Limba NEW
Rodrigues D SchemmerUnited KingdomAmy Elsner NEGOTIATION
Adams P MaletIndiaIoni 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>