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
Stacey E KuskoUnited KingdomXuxue Feng RENEWAL
Aika Z PaprockiBrazilAsiya Javayant PROPOSAL
James K FlosiBrazilAsiya Javayant RENEWAL
David R CaldareraAustraliaIvan Magalhaes PROPOSAL
Jones M BowleyRussiaStephen Shaw RENEWAL
Julie H GauchoBrazilXuxue Feng PROPOSAL
Morrow C KolmetzGermanyStephen Shaw RENEWAL
Clifford V BriddickCanadaAnna Fali RENEWAL
Jones I StockhamAustraliaXuxue Feng NEW
Isabel G AmigonSpainBernardo Dominic QUALIFIED
Darci G MacleadUnited KingdomIoni Bowcher UNQUALIFIED
Juan S PerinIndiaAmy Elsner RENEWAL
Julie T DilliardSpainIvan Magalhaes NEGOTIATION
Silvio L RulapaughArgentinaStephen Shaw RENEWAL
Ricardo E BowleyIndiaAnna Fali NEW
Leja H CampainSpainAmy Elsner NEGOTIATION
Emily T MacleadIndiaBernardo Dominic UNQUALIFIED
Aruna Z PoquetteRussiaAsiya Javayant PROPOSAL
Tony E VenereGermanyBernardo Dominic PROPOSAL
Francesco O FollerJapanOnyama Limba RENEWAL
Alejandro N CampainRussiaAsiya Javayant NEGOTIATION
Sinclair C BologniaGermanyOnyama Limba QUALIFIED
Julie I FerenczArgentinaXuxue Feng QUALIFIED
Munro C OldroydItalyStephen Shaw UNQUALIFIED
Jefferson L IturbideJapanOnyama Limba UNQUALIFIED
Jones Q GillianIndiaAnna Fali PROPOSAL
Emily C NestleArgentinaStephen Shaw QUALIFIED
Murillo M DilliardBrazilAsiya Javayant NEW
Tony V GauchoCanadaIoni Bowcher UNQUALIFIED
Silvio R PaprockiCanadaAnna Fali RENEWAL
Jeanfrancois S OldroydGermanyAnna Fali QUALIFIED
Ivar F BologniaCanadaAmy Elsner NEGOTIATION
Munro K BowleyItalyElwin Sharvill NEGOTIATION
Ricardo N FlosiBrazilIvan Magalhaes UNQUALIFIED
Costa U BowleyGermanyOnyama Limba UNQUALIFIED
Maisha V TollnerFranceElwin Sharvill UNQUALIFIED
Sinclair G MarrierCanadaIoni Bowcher NEGOTIATION
Ivar K RoysterAustraliaElwin Sharvill NEGOTIATION
Munro P MaletIndiaIvan Magalhaes QUALIFIED
Faith X IturbideIndiaStephen Shaw NEW
Jones Z CaldareraSpainStephen Shaw NEGOTIATION
Jefferson V FollerAustraliaAnna Fali PROPOSAL
Salvatore N RimArgentinaElwin Sharvill UNQUALIFIED
Aruna F RimSpainIvan Magalhaes NEW
Sinclair K PaprockiRussiaAnna Fali UNQUALIFIED
Salvatore T CampainIndiaIvan Magalhaes RENEWAL
Smith S SergiJapanBernardo Dominic RENEWAL
Tony Z InouyeGermanyAnna Fali NEW
Morrow M CampainUnited KingdomXuxue Feng NEW
Kadeem H FerenczCanadaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Tony G DarakjyRussiaXuxue Feng UNQUALIFIED
Octavia A ChuiIndiaElwin Sharvill NEGOTIATION
Chavez Z BowleyItalyIoni Bowcher NEGOTIATION
Munro C VenereGermanyAmy Elsner PROPOSAL
Faith B MaletFranceIvan Magalhaes RENEWAL
Chavez A OldroydRussiaXuxue Feng QUALIFIED
Greenwood Q MaletUnited KingdomXuxue Feng PROPOSAL
Wickens C GarufiItalyAnna Fali UNQUALIFIED
Jennifer E FlosiIndiaIoni Bowcher NEW
Aditya H MacleadBrazilAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues L PaprockiBrazil2026-08-10King, Christopher A Esq NEGOTIATION80Elwin Sharvill
1001Jeanfrancois Z MaletRussia2026-07-25Commercial Press QUALIFIED97Onyama Limba
1002Cody A VocelkaRussia2026-07-29Feltz Printing Service RENEWAL96Ioni Bowcher
1003Emily W GarufiAustralia2026-07-19Chapman, Ross E Esq NEGOTIATION45Elwin Sharvill
1004Claire D PoquetteBrazil2026-08-01Chanay, Jeffrey A Esq NEGOTIATION63Ivan Magalhaes
1005Ricardo K StensethAustralia2026-08-10Truhlar And Truhlar Attys PROPOSAL78Onyama Limba
1006Alejandro M StensethIndia2026-08-01Truhlar And Truhlar Attys NEGOTIATION81Ioni Bowcher
1007Clifford K RulapaughBrazil2026-07-26Printing Dimensions QUALIFIED85Amy Elsner
1008Izzy V OstroskyRussia2026-08-10Dorl, James J Esq NEGOTIATION59Stephen Shaw
1009Julie S VenereItaly2026-07-29Benton, John B Jr PROPOSAL0Onyama Limba
1010Leja S SaylorsJapan2026-07-17Morlong Associates UNQUALIFIED80Ivan Magalhaes
1011Stacey U BologniaArgentina2026-08-13Buckley Miller Wright NEW69Bernardo Dominic
1012Faith G WaycottGermany2026-07-17Chanay, Jeffrey A Esq UNQUALIFIED51Onyama Limba
1013Juan N SlusarskiGermany2026-08-09Benton, John B Jr RENEWAL57Amy Elsner
1014Ivar T RoysterIndia2026-07-23Chanay, Jeffrey A Esq NEW87Onyama Limba
1015Maria E SchemmerUnited Kingdom2026-08-12Printing Dimensions RENEWAL47Xuxue Feng
1016Kadeem Q RutaSpain2026-07-26Truhlar And Truhlar Attys RENEWAL64Stephen Shaw
1017James A PerinIndia2026-08-11Rangoni Of Florence QUALIFIED74Asiya Javayant
1018James X WaycottCanada2026-08-11Truhlar And Truhlar Attys NEGOTIATION1Stephen Shaw
1019Johnson I ShinkoUnited Kingdom2026-08-04Chanay, Jeffrey A Esq UNQUALIFIED23Asiya Javayant
1020Cody H RimRussia2026-08-09Dorl, James J Esq RENEWAL61Bernardo Dominic
1021Greenwood V DilliardUnited Kingdom2026-08-02Printing Dimensions NEGOTIATION33Ioni Bowcher
1022Jones Q OldroydRussia2026-08-03Morlong Associates NEGOTIATION21Stephen Shaw
1023Mujtaba L RulapaughItaly2026-07-21Dorl, James J Esq RENEWAL82Onyama Limba
1024Aika K OldroydGermany2026-07-18Truhlar And Truhlar Attys UNQUALIFIED3Stephen Shaw
1025Chavez Q ButtIndia2026-07-19Rousseaux, Michael Esq RENEWAL38Asiya Javayant
1026Costa M InouyeUnited Kingdom2026-08-09Feiner Bros RENEWAL32Ioni Bowcher
1027Maria K SchemmerIndia2026-08-13Feiner Bros PROPOSAL59Ivan Magalhaes
1028Aika L RimCanada2026-08-03Commercial Press PROPOSAL19Xuxue Feng
1029Octavia O WieserUnited Kingdom2026-08-08Chemel, James L Cpa RENEWAL4Xuxue Feng
1030Darci O CaudyFrance2026-08-10Chemel, James L Cpa QUALIFIED81Xuxue Feng
1031Jennifer H MarrierArgentina2026-07-20King, Christopher A Esq NEW23Amy Elsner
1032Aika V CaudyArgentina2026-07-25King, Christopher A Esq UNQUALIFIED28Bernardo Dominic
1033Cody N GauchoItaly2026-07-25King, Christopher A Esq NEW1Onyama Limba
1034James U GauchoArgentina2026-08-01Rangoni Of Florence UNQUALIFIED78Xuxue Feng
1035Antonio L AlbaresFrance2026-07-17Rousseaux, Michael Esq UNQUALIFIED78Anna Fali
1036Rodrigues Q MarrierBrazil2026-08-09Rangoni Of Florence RENEWAL10Bernardo Dominic
1037Aika D SergiSpain2026-07-26Printing Dimensions PROPOSAL84Stephen Shaw
1038Octavia D NickaSpain2026-08-13Truhlar And Truhlar Attys NEW92Amy Elsner
1039Jeanfrancois F CaudyIndia2026-07-16Rousseaux, Michael Esq UNQUALIFIED55Asiya Javayant
1040Juan N DilliardIndia2026-08-05Feiner Bros RENEWAL92Stephen Shaw
1041Wickens W ButtIndia2026-07-29Morlong Associates RENEWAL38Ioni Bowcher
1042Jefferson A PoquetteFrance2026-07-17Printing Dimensions UNQUALIFIED87Bernardo Dominic
1043Isabel B ButtUnited Kingdom2026-08-14Printing Dimensions PROPOSAL76Onyama Limba
1044Aika V FerenczCanada2026-07-20Rangoni Of Florence NEW83Stephen Shaw
1045Morrow Z OstroskyAustralia2026-07-18Benton, John B Jr NEW32Xuxue Feng
1046Juan X RulapaughArgentina2026-07-19Chapman, Ross E Esq PROPOSAL91Onyama Limba
1047Stacey U PaprockiRussia2026-08-01Feltz Printing Service NEW46Anna Fali
1048Izzy U DilliardGermany2026-07-24Chapman, Ross E Esq QUALIFIED29Bernardo Dominic
1049Leon K SergiBrazil2026-07-23Dorl, James J Esq NEW39Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Morrow K FollerGermanyIvan Magalhaes NEGOTIATION
Ashley K InouyeItalyIoni Bowcher NEGOTIATION
Rodrigues S RutaBrazilAnna Fali QUALIFIED
Deepesh S KolmetzGermanyAmy Elsner NEGOTIATION
Chavez D RutaJapanBernardo Dominic PROPOSAL
James B IturbideUnited KingdomOnyama Limba RENEWAL
Leon O GillianCanadaBernardo Dominic PROPOSAL
Isabel G PerinFranceXuxue Feng QUALIFIED
Leja P CampainJapanOnyama Limba NEW
David J NestleAustraliaAsiya Javayant NEGOTIATION
Faith G PoquetteAustraliaXuxue Feng QUALIFIED
Darci J NickaGermanyAmy Elsner RENEWAL
Arvin V TollnerUnited KingdomElwin Sharvill NEGOTIATION
Julie C RimJapanAnna Fali UNQUALIFIED
Munro I AlbaresJapanAnna Fali PROPOSAL
Izzy J VocelkaRussiaIoni Bowcher NEGOTIATION
Emily K RimSpainAsiya Javayant NEGOTIATION
Cody L AlbaresSpainIvan Magalhaes QUALIFIED
Aditya L CaldareraRussiaAmy Elsner NEGOTIATION
Alejandro P CaldareraUnited KingdomAnna Fali NEW
Rodrigues X GlickArgentinaAsiya Javayant NEGOTIATION
Tony A CaldareraGermanyXuxue Feng QUALIFIED
Clifford C PoquetteFranceXuxue Feng UNQUALIFIED
Mujtaba J WhobreyBrazilElwin Sharvill NEW
Aruna R PoquetteRussiaStephen Shaw QUALIFIED
Ricardo E MaletUnited KingdomElwin Sharvill RENEWAL
Arvin R BowleyArgentinaBernardo Dominic QUALIFIED
Maisha C AmigonRussiaAmy Elsner RENEWAL
Rodrigues X IturbideSpainXuxue Feng UNQUALIFIED
Rodrigues V SlusarskiCanadaXuxue Feng NEW
Jeanfrancois N IturbideSpainAmy Elsner NEGOTIATION
Misaki X MorascaBrazilIoni Bowcher PROPOSAL
Kaitlin G SaylorsCanadaIoni Bowcher NEW
Stacey M FerenczUnited KingdomIvan Magalhaes PROPOSAL
Rodrigues C BriddickAustraliaAmy Elsner UNQUALIFIED
Leja H SlusarskiJapanIoni Bowcher NEGOTIATION
Aruna V MarrierJapanIoni Bowcher PROPOSAL
Aditya J DarakjyUnited KingdomOnyama Limba NEGOTIATION
Wickens J OstroskyBrazilStephen Shaw RENEWAL
Cody A DilliardSpainAsiya Javayant QUALIFIED
Adams V MacleadUnited KingdomElwin Sharvill QUALIFIED
Julie U TollnerRussiaStephen Shaw QUALIFIED
Tony T WaycottRussiaOnyama Limba QUALIFIED
Munro K TollnerArgentinaBernardo Dominic NEW
Misaki W RutaArgentinaIoni Bowcher QUALIFIED
Juan V BowleyArgentinaBernardo Dominic RENEWAL
Clifford X NestleArgentinaXuxue Feng QUALIFIED
Mujtaba Q BriddickCanadaAnna Fali PROPOSAL
Leja Q OldroydItalyStephen Shaw NEW
Costa Y IturbideFranceStephen Shaw RENEWAL
Frozen Columns
Name
Claire S Inouye
Salvatore A Perin
Isabel C Poquette
Mujtaba S Ferencz
Arvin Q Glick
Arvin Q Caldarera
Silvio A Malet
Octavia L Flosi
Jones U Bowley
Aruna G Doe
Aika Y Kolmetz
Jones T Rim
Francesco H Schemmer
Emily L Oldroyd
Maria L Ferencz
Aditya F Maclead
Tony W Gillian
Antonio J Briddick
James F Perin
Kadeem R Iturbide
Clifford S Albares
Jefferson U Chui
Munro D Perin
Antonio Y Inouye
Arvin Y Waycott
James J Oldroyd
Adams U Darakjy
Aruna F Campain
Munro U Glick
Ashley A Paprocki
Cody F Bowley
Leon H Gillian
Ricardo C Bowley
Ashley N Malet
Wickens R Schemmer
Salvatore A Albares
Maria T Gillian
Murillo Y Darakjy
Cody P Nestle
Jeanfrancois H Kolmetz
Aika U Wieser
Octavia W Foller
Adams J Malet
Emily V Kusko
Claire E Oldroyd
Arvin T Oldroyd
Kaitlin S Inouye
Jones C Gillian
Emily S Albares
Maisha X Briddick
IdCountryDate
1000Germany2026-08-04
1001Russia2026-07-22
1002India2026-07-22
1003Italy2026-08-13
1004Russia2026-07-18
1005France2026-07-27
1006Italy2026-07-16
1007Spain2026-07-18
1008France2026-07-18
1009United Kingdom2026-07-17
1010India2026-07-26
1011Argentina2026-07-31
1012Germany2026-07-20
1013Brazil2026-08-06
1014Australia2026-08-12
1015Japan2026-08-08
1016Japan2026-07-17
1017India2026-07-26
1018United Kingdom2026-07-31
1019United Kingdom2026-07-16
1020Germany2026-07-20
1021Argentina2026-07-21
1022Russia2026-07-27
1023Spain2026-07-30
1024Argentina2026-08-14
1025Australia2026-07-22
1026France2026-08-06
1027Argentina2026-08-04
1028Argentina2026-08-12
1029Japan2026-07-25
1030Russia2026-07-16
1031Brazil2026-07-16
1032Australia2026-07-25
1033Germany2026-07-31
1034Argentina2026-08-08
1035India2026-08-10
1036India2026-07-16
1037Spain2026-08-10
1038Brazil2026-07-25
1039Canada2026-07-21
1040Canada2026-07-26
1041Australia2026-08-05
1042Russia2026-08-02
1043France2026-08-06
1044France2026-07-24
1045India2026-08-14
1046Canada2026-07-29
1047Russia2026-08-03
1048Italy2026-07-27
1049Brazil2026-07-23

On-Demand Data

NameIdCountryDate
Aika G Slusarski1000Australia2026-07-26
Jones E Ruta1001United Kingdom2026-07-20
Cody F Stenseth1002Argentina2026-07-18
Silvio U Maclead1003Australia2026-08-11
Rodrigues A Figeroa1004United Kingdom2026-08-10
Johnson X Wieser1005Japan2026-07-27
Ricardo Y Caldarera1006Brazil2026-07-22
Smith R Foller1007United Kingdom2026-08-02
Jefferson T Flosi1008Russia2026-08-07
Izzy T Slusarski1009United Kingdom2026-08-02
Salvatore P Doe1010France2026-07-21
Maria X Poquette1011United Kingdom2026-08-11
Jennifer E Morasca1012Russia2026-07-28
Nicolas Q Butt1013India2026-07-23
Rodrigues E Campain1014France2026-08-12
Claire T Ferencz1015Germany2026-08-04
Sinclair W Figeroa1016Spain2026-07-31
Wickens E Doe1017United Kingdom2026-07-25
Francesco A Caudy1018Argentina2026-07-24
Faith I Kolmetz1019United Kingdom2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba X RoysterRussiaElwin Sharvill NEW
Ivar V SergiUnited KingdomXuxue Feng QUALIFIED
David M OldroydRussiaElwin Sharvill PROPOSAL
Kadeem D VenereFranceElwin Sharvill NEGOTIATION
Emily U IturbideGermanyAmy Elsner PROPOSAL
Aditya N BriddickSpainAsiya Javayant NEW
Faith W GillianJapanElwin Sharvill QUALIFIED
Antonio Y GlickCanadaIoni Bowcher QUALIFIED
Izzy G RulapaughSpainElwin Sharvill UNQUALIFIED
Stacey D WaycottBrazilIvan Magalhaes NEGOTIATION
Misaki X MaletAustraliaAnna Fali NEGOTIATION
Jennifer Y InouyeCanadaElwin Sharvill NEGOTIATION
Jeanfrancois W RoysterCanadaStephen Shaw RENEWAL
Faith N BriddickJapanElwin Sharvill NEGOTIATION
Ashley W AlbaresRussiaAmy Elsner NEGOTIATION
James N AlbaresArgentinaAnna Fali UNQUALIFIED
Smith Y MacleadArgentinaOnyama Limba PROPOSAL
Jennifer H BriddickFranceStephen Shaw UNQUALIFIED
Jennifer G OldroydIndiaBernardo Dominic RENEWAL
Greenwood W BologniaBrazilBernardo Dominic UNQUALIFIED
Emily C MorascaAustraliaBernardo Dominic RENEWAL
Aika K FerenczRussiaXuxue Feng RENEWAL
Deepesh G DarakjyArgentinaIoni Bowcher NEW
Ashley Q FigeroaBrazilXuxue Feng UNQUALIFIED
Rodrigues W ChuiCanadaAmy Elsner NEW
Mujtaba U AmigonGermanyAmy Elsner RENEWAL
Sinclair M RimArgentinaIvan Magalhaes NEGOTIATION
Arvin G GauchoSpainAnna Fali NEW
Arvin E NickaAustraliaStephen Shaw NEGOTIATION
Mayumi O StensethArgentinaIoni Bowcher RENEWAL
David F AlbaresRussiaXuxue Feng PROPOSAL
Salvatore N FlosiAustraliaOnyama Limba RENEWAL
Octavia O RoysterAustraliaIvan Magalhaes RENEWAL
Jefferson W ButtIndiaBernardo Dominic NEGOTIATION
Deepesh R SlusarskiSpainXuxue Feng PROPOSAL
Murillo X DilliardSpainOnyama Limba NEW
Smith F InouyeAustraliaElwin Sharvill PROPOSAL
Nicolas K SaylorsCanadaBernardo Dominic PROPOSAL
Jefferson L DarakjyRussiaBernardo Dominic UNQUALIFIED
Maria B OldroydGermanyBernardo Dominic 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>