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
Silvio V WhobreyGermanyStephen Shaw UNQUALIFIED
Julie X NickaJapanIvan Magalhaes NEGOTIATION
Tony K SaylorsUnited KingdomAmy Elsner QUALIFIED
Silvio Z WaycottRussiaBernardo Dominic NEW
Tony D GauchoSpainOnyama Limba RENEWAL
Silvio N IturbideItalyBernardo Dominic NEGOTIATION
Sinclair F BowleyFranceBernardo Dominic NEW
Sinclair Z ButtUnited KingdomAmy Elsner RENEWAL
Nicolas U StockhamRussiaAmy Elsner NEGOTIATION
Wickens T NestleBrazilBernardo Dominic NEW
Isabel B RoysterAustraliaElwin Sharvill NEW
Salvatore U CaudyRussiaStephen Shaw NEGOTIATION
Salvatore U FlosiFranceAmy Elsner QUALIFIED
Kaitlin J MaletRussiaBernardo Dominic NEW
Jefferson E TollnerAustraliaOnyama Limba RENEWAL
Arvin R PoquetteArgentinaElwin Sharvill NEW
Izzy L BriddickRussiaStephen Shaw RENEWAL
Kadeem X PaprockiFranceStephen Shaw QUALIFIED
Deepesh M NickaFranceAnna Fali RENEWAL
Nicolas E CaudyItalyBernardo Dominic NEW
Maria R NestleGermanyAmy Elsner UNQUALIFIED
Johnson A RutaGermanyAnna Fali UNQUALIFIED
Claire M MorascaAustraliaAnna Fali NEGOTIATION
Nicolas B OldroydCanadaXuxue Feng NEW
Kaitlin J ShinkoRussiaAsiya Javayant RENEWAL
Alejandro T WhobreyGermanyXuxue Feng NEW
Stacey Z ButtJapanAsiya Javayant RENEWAL
Mujtaba T NestleIndiaIvan Magalhaes PROPOSAL
Izzy O MorascaFranceAnna Fali RENEWAL
Nicolas F StockhamArgentinaIvan Magalhaes NEGOTIATION
Deepesh A KuskoRussiaAnna Fali RENEWAL
Nicolas R GillianItalyXuxue Feng QUALIFIED
Nicolas T MorascaJapanIvan Magalhaes UNQUALIFIED
Rodrigues C WhobreyUnited KingdomAmy Elsner NEW
Greenwood T GauchoGermanyOnyama Limba PROPOSAL
Sinclair B GauchoIndiaAmy Elsner NEW
Leon K IturbideSpainOnyama Limba RENEWAL
Deepesh I FlosiUnited KingdomIvan Magalhaes PROPOSAL
Emily R PerinItalyIvan Magalhaes UNQUALIFIED
Deepesh D ShinkoFranceAnna Fali PROPOSAL
Julie K StockhamItalyIoni Bowcher RENEWAL
Darci G SergiRussiaXuxue Feng QUALIFIED
Deepesh Q GauchoItalyIvan Magalhaes QUALIFIED
Smith T AlbaresFranceStephen Shaw QUALIFIED
Jennifer P RoysterUnited KingdomAmy Elsner RENEWAL
Greenwood Y CampainRussiaAmy Elsner UNQUALIFIED
Jones P FlosiAustraliaAmy Elsner NEGOTIATION
Mayumi K MaletRussiaStephen Shaw NEGOTIATION
Munro J StensethItalyBernardo Dominic RENEWAL
Julie N MaletCanadaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois F MarrierAustraliaIvan Magalhaes RENEWAL
Kadeem A BriddickJapanAsiya Javayant NEGOTIATION
Claire K IturbideUnited KingdomIoni Bowcher RENEWAL
Claire E FigeroaIndiaXuxue Feng PROPOSAL
Chavez N TollnerRussiaAmy Elsner NEW
Darci U GarufiItalyElwin Sharvill NEW
Ivar K WhobreyItalyAsiya Javayant QUALIFIED
Emily D MorascaCanadaAsiya Javayant QUALIFIED
Julie Q GillianCanadaAmy Elsner NEW
Ashley N CaldareraFranceElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily N SaylorsArgentina2026-07-06King, Christopher A Esq NEW44Amy Elsner
1001Stacey D MaletBrazil2026-07-15Buckley Miller Wright UNQUALIFIED45Anna Fali
1002Aruna L CampainFrance2026-06-30Dorl, James J Esq RENEWAL13Ioni Bowcher
1003Jennifer A DilliardGermany2026-06-29Rousseaux, Michael Esq NEW41Onyama Limba
1004Aruna C VocelkaAustralia2026-07-16Rangoni Of Florence UNQUALIFIED48Asiya Javayant
1005Murillo O DoeUnited Kingdom2026-06-20Rousseaux, Michael Esq NEW25Elwin Sharvill
1006Jeanfrancois M VocelkaJapan2026-06-30Rousseaux, Michael Esq NEW50Ioni Bowcher
1007Ivar X MaletAustralia2026-06-29Truhlar And Truhlar Attys QUALIFIED31Stephen Shaw
1008Murillo G FigeroaSpain2026-06-20Chemel, James L Cpa NEW70Xuxue Feng
1009Antonio P WaycottGermany2026-06-21Morlong Associates NEGOTIATION63Elwin Sharvill
1010Sinclair K FigeroaUnited Kingdom2026-07-14Printing Dimensions QUALIFIED5Xuxue Feng
1011Salvatore F ShinkoIndia2026-06-19Dorl, James J Esq NEW50Ioni Bowcher
1012Greenwood G RulapaughAustralia2026-07-07Feltz Printing Service UNQUALIFIED14Stephen Shaw
1013Julie D VenereGermany2026-07-07Dorl, James J Esq QUALIFIED12Stephen Shaw
1014Greenwood Q CaldareraArgentina2026-06-20King, Christopher A Esq NEW7Amy Elsner
1015Silvio L IturbideFrance2026-07-15Chapman, Ross E Esq QUALIFIED4Bernardo Dominic
1016James W NestleUnited Kingdom2026-07-09Dorl, James J Esq RENEWAL84Elwin Sharvill
1017Stacey K GillianIndia2026-06-29Buckley Miller Wright RENEWAL38Amy Elsner
1018Stacey G StockhamItaly2026-07-15Chapman, Ross E Esq UNQUALIFIED80Xuxue Feng
1019Mayumi Z RutaCanada2026-06-22King, Christopher A Esq QUALIFIED16Ioni Bowcher
1020Aditya J KuskoItaly2026-07-08Buckley Miller Wright UNQUALIFIED20Ioni Bowcher
1021Ashley G DoeGermany2026-06-24Dorl, James J Esq NEGOTIATION95Onyama Limba
1022Clifford K VenereGermany2026-07-15Printing Dimensions RENEWAL76Bernardo Dominic
1023Jeanfrancois U MaletCanada2026-06-30Truhlar And Truhlar Attys QUALIFIED59Asiya Javayant
1024Ivar K MaletCanada2026-06-26Feiner Bros PROPOSAL61Onyama Limba
1025Greenwood W StensethCanada2026-07-06Chapman, Ross E Esq UNQUALIFIED43Elwin Sharvill
1026James Q WieserAustralia2026-06-20Truhlar And Truhlar Attys NEW86Onyama Limba
1027Francesco D GauchoRussia2026-07-11Feltz Printing Service UNQUALIFIED81Anna Fali
1028Deepesh A SchemmerCanada2026-06-19Commercial Press RENEWAL64Anna Fali
1029Clifford T MacleadJapan2026-07-04Dorl, James J Esq NEGOTIATION75Onyama Limba
1030Jeanfrancois X GlickItaly2026-07-14Buckley Miller Wright QUALIFIED64Bernardo Dominic
1031Aruna G SaylorsAustralia2026-07-08Benton, John B Jr QUALIFIED79Onyama Limba
1032Adams Y StockhamIndia2026-07-03King, Christopher A Esq PROPOSAL6Elwin Sharvill
1033Greenwood O StensethRussia2026-07-12Chemel, James L Cpa UNQUALIFIED51Asiya Javayant
1034Kaitlin M WieserCanada2026-06-24Morlong Associates QUALIFIED27Xuxue Feng
1035Adams A KuskoCanada2026-07-14Feltz Printing Service RENEWAL98Anna Fali
1036Maria V GauchoItaly2026-06-25Rangoni Of Florence PROPOSAL89Anna Fali
1037Octavia A InouyeAustralia2026-07-14Chanay, Jeffrey A Esq UNQUALIFIED10Anna Fali
1038Ricardo K ChuiArgentina2026-07-09Buckley Miller Wright NEW62Bernardo Dominic
1039Ricardo D BologniaGermany2026-07-05Feiner Bros PROPOSAL47Elwin Sharvill
1040Johnson X CaudyRussia2026-07-02Chemel, James L Cpa NEGOTIATION99Stephen Shaw
1041Stacey V WaycottRussia2026-06-30Buckley Miller Wright NEW27Ioni Bowcher
1042Stacey Q SlusarskiGermany2026-07-13Feiner Bros NEW0Amy Elsner
1043Ashley N IturbideFrance2026-07-03Benton, John B Jr QUALIFIED90Onyama Limba
1044Ashley P ChuiFrance2026-07-11Buckley Miller Wright QUALIFIED49Ioni Bowcher
1045Darci O WaycottUnited Kingdom2026-07-10Chapman, Ross E Esq UNQUALIFIED59Xuxue Feng
1046Mujtaba G DilliardRussia2026-07-02Chapman, Ross E Esq NEW49Ioni Bowcher
1047Chavez Y PoquetteAustralia2026-07-09Rangoni Of Florence PROPOSAL78Amy Elsner
1048Salvatore K ChuiIndia2026-07-03Chapman, Ross E Esq NEGOTIATION71Amy Elsner
1049Rodrigues P ButtGermany2026-06-17Chapman, Ross E Esq PROPOSAL47Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Antonio L SergiJapanOnyama Limba PROPOSAL
Stacey Y MarrierUnited KingdomElwin Sharvill NEGOTIATION
Greenwood Q ShinkoIndiaStephen Shaw PROPOSAL
Aditya X PerinCanadaXuxue Feng UNQUALIFIED
Mujtaba Q ButtFranceOnyama Limba QUALIFIED
Jeanfrancois S CaldareraAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin B AmigonArgentinaElwin Sharvill UNQUALIFIED
James V GarufiRussiaElwin Sharvill QUALIFIED
Aruna H OstroskyGermanyStephen Shaw RENEWAL
David X KolmetzJapanXuxue Feng PROPOSAL
Deepesh P OstroskyBrazilAnna Fali NEW
Juan C PerinRussiaElwin Sharvill NEGOTIATION
Costa J ShinkoUnited KingdomBernardo Dominic RENEWAL
Leja V OstroskyUnited KingdomBernardo Dominic NEW
Aditya N GlickItalyAnna Fali NEW
James V PaprockiArgentinaIvan Magalhaes QUALIFIED
James Q MacleadRussiaAsiya Javayant UNQUALIFIED
Ashley K MarrierCanadaOnyama Limba UNQUALIFIED
Mujtaba F MorascaAustraliaBernardo Dominic NEGOTIATION
Sinclair J AmigonRussiaOnyama Limba QUALIFIED
Wickens Q BologniaJapanIoni Bowcher PROPOSAL
Mujtaba E VocelkaItalyBernardo Dominic PROPOSAL
Claire Z DilliardArgentinaAsiya Javayant QUALIFIED
Murillo M SchemmerUnited KingdomIoni Bowcher NEW
David D OstroskyGermanyBernardo Dominic PROPOSAL
Maisha V RutaAustraliaStephen Shaw PROPOSAL
Misaki E IturbideArgentinaBernardo Dominic UNQUALIFIED
Ivar R WaycottSpainAsiya Javayant NEGOTIATION
Stacey S WieserGermanyAsiya Javayant QUALIFIED
Chavez S WieserCanadaElwin Sharvill NEW
Adams R SaylorsArgentinaElwin Sharvill NEGOTIATION
Aditya Q AmigonFranceAnna Fali NEW
Kaitlin M PerinIndiaBernardo Dominic NEGOTIATION
Aruna P PoquetteJapanOnyama Limba UNQUALIFIED
Aruna I FollerRussiaStephen Shaw QUALIFIED
Salvatore V StockhamUnited KingdomIvan Magalhaes NEGOTIATION
Antonio Z MaletIndiaIvan Magalhaes UNQUALIFIED
Antonio C MorascaJapanBernardo Dominic NEW
Aruna M MarrierItalyAnna Fali QUALIFIED
Mujtaba L MarrierItalyStephen Shaw NEGOTIATION
Francesco R CampainItalyIoni Bowcher QUALIFIED
Julie R RimItalyIvan Magalhaes RENEWAL
Wickens Q PoquetteAustraliaIvan Magalhaes NEW
Faith Z RutaArgentinaOnyama Limba PROPOSAL
Ricardo A RimFranceBernardo Dominic QUALIFIED
Cody Q RoysterItalyAsiya Javayant QUALIFIED
Claire P KuskoJapanIvan Magalhaes NEGOTIATION
Julie E NickaJapanStephen Shaw NEW
Francesco Q KolmetzArgentinaOnyama Limba RENEWAL
Aruna F DarakjyBrazilElwin Sharvill NEGOTIATION
Frozen Columns
Name
Isabel D Royster
Silvio E Caudy
Ivar J Venere
Claire Z Ruta
Clifford U Rim
Greenwood Q Garufi
Octavia T Chui
Ricardo Q Venere
Costa J Chui
Leja I Figeroa
Julie S Schemmer
Maisha A Paprocki
Julie U Sergi
Antonio I Wieser
Adams F Rulapaugh
Wickens V Garufi
Isabel T Rim
Ricardo D Foller
James E Venere
Johnson Z Kolmetz
James L Marrier
Johnson O Maclead
Izzy K Chui
Juan U Glick
Arvin E Wieser
Misaki X Tollner
Maria Z Sergi
Greenwood A Gaucho
Jennifer V Venere
Deepesh M Bolognia
Jeanfrancois I Marrier
Chavez V Saylors
Claire U Figeroa
Wickens F Perin
Emily Y Ruta
Rodrigues Q Caudy
Alejandro I Foller
Faith B Caldarera
Antonio L Malet
Silvio A Rim
Cody H Malet
Tony S Flosi
Murillo K Royster
Izzy X Foller
Murillo Q Bowley
Murillo H Perin
Aika H Darakjy
Cody T Perin
Leja W Figeroa
Silvio L Marrier
IdCountryDate
1000United Kingdom2026-06-17
1001United Kingdom2026-07-15
1002India2026-07-08
1003France2026-06-20
1004Germany2026-06-26
1005Australia2026-06-24
1006Canada2026-06-25
1007India2026-06-22
1008Germany2026-07-15
1009France2026-07-03
1010Spain2026-06-29
1011United Kingdom2026-07-15
1012France2026-07-15
1013Japan2026-07-11
1014Spain2026-07-04
1015Brazil2026-07-12
1016Italy2026-07-12
1017Brazil2026-06-30
1018Brazil2026-06-27
1019Brazil2026-07-15
1020Australia2026-06-24
1021United Kingdom2026-06-19
1022Canada2026-07-16
1023Brazil2026-07-10
1024Germany2026-06-30
1025United Kingdom2026-07-05
1026Australia2026-06-21
1027India2026-07-09
1028Germany2026-07-02
1029United Kingdom2026-07-07
1030Russia2026-07-08
1031Canada2026-06-28
1032Japan2026-07-15
1033Italy2026-06-27
1034India2026-07-15
1035Spain2026-06-22
1036Germany2026-07-10
1037India2026-07-02
1038Argentina2026-07-07
1039Italy2026-07-11
1040Italy2026-07-12
1041Japan2026-07-16
1042Spain2026-07-13
1043Spain2026-06-29
1044Spain2026-06-17
1045India2026-07-03
1046United Kingdom2026-06-25
1047Italy2026-07-14
1048Canada2026-06-25
1049Spain2026-07-01

On-Demand Data

NameIdCountryDate
Aruna D Chui1000Germany2026-06-17
Chavez X Gillian1001Spain2026-06-22
Leon G Shinko1002Russia2026-07-04
Jones G Inouye1003Japan2026-07-03
Aditya C Campain1004Australia2026-06-21
Maria M Whobrey1005Russia2026-07-05
Morrow B Rim1006Spain2026-07-16
Kadeem M Sergi1007Italy2026-07-15
Ivar I Stockham1008Argentina2026-06-22
Ashley M Venere1009Germany2026-06-20
Misaki Q Stenseth1010Argentina2026-06-24
Faith C Paprocki1011United Kingdom2026-06-23
Leon Y Briddick1012Argentina2026-06-30
David T Vocelka1013India2026-06-30
Isabel L Wieser1014Argentina2026-07-01
Jeanfrancois K Whobrey1015Germany2026-06-18
Aika Z Inouye1016United Kingdom2026-07-04
Juan U Whobrey1017India2026-06-22
Aika S Caudy1018France2026-07-06
Costa D Chui1019Brazil2026-07-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens K DoeIndiaAsiya Javayant QUALIFIED
Clifford G RulapaughUnited KingdomOnyama Limba UNQUALIFIED
Leja Y SaylorsSpainIoni Bowcher RENEWAL
Faith M BologniaRussiaStephen Shaw QUALIFIED
Chavez T VenereArgentinaAsiya Javayant RENEWAL
Misaki J VenereItalyStephen Shaw NEW
Smith C BologniaItalyStephen Shaw NEGOTIATION
Cody B GauchoFranceXuxue Feng NEGOTIATION
Aruna P WieserFranceIvan Magalhaes NEGOTIATION
Darci K SaylorsJapanAsiya Javayant RENEWAL
Silvio Q DarakjyBrazilAsiya Javayant PROPOSAL
Jefferson L NickaAustraliaAmy Elsner NEGOTIATION
Isabel J DoeIndiaIvan Magalhaes RENEWAL
Maria N MarrierJapanXuxue Feng UNQUALIFIED
Chavez I AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
David Q FollerBrazilXuxue Feng NEGOTIATION
Faith O BriddickArgentinaOnyama Limba NEW
Antonio D CaldareraJapanAmy Elsner NEGOTIATION
Arvin D NickaUnited KingdomElwin Sharvill PROPOSAL
Darci E MorascaGermanyAsiya Javayant NEW
Munro G SlusarskiAustraliaIoni Bowcher NEW
Deepesh S FerenczSpainIvan Magalhaes NEGOTIATION
Ricardo X StockhamUnited KingdomAsiya Javayant UNQUALIFIED
Silvio N RutaSpainOnyama Limba UNQUALIFIED
Jennifer I CampainArgentinaAsiya Javayant QUALIFIED
David R GauchoRussiaAsiya Javayant NEGOTIATION
Chavez R MacleadFranceStephen Shaw NEW
Aditya Q InouyeAustraliaOnyama Limba PROPOSAL
Salvatore K ChuiItalyBernardo Dominic NEW
Adams V WieserSpainAsiya Javayant NEW
Misaki A WhobreyCanadaIvan Magalhaes NEW
Morrow P OstroskyJapanStephen Shaw PROPOSAL
Salvatore G FlosiCanadaStephen Shaw QUALIFIED
Smith N NickaRussiaElwin Sharvill NEW
Leon T BowleyRussiaAnna Fali QUALIFIED
Munro Z MarrierAustraliaXuxue Feng NEW
Kadeem R StockhamSpainAnna Fali RENEWAL
Octavia L InouyeSpainStephen Shaw RENEWAL
David E CaldareraCanadaIoni Bowcher UNQUALIFIED
Stacey Q FigeroaSpainAsiya Javayant 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>