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
Claire K VocelkaBrazilAmy Elsner RENEWAL
Jefferson D RimAustraliaIvan Magalhaes NEGOTIATION
Isabel S NestleJapanXuxue Feng RENEWAL
Izzy D ShinkoUnited KingdomAnna Fali NEGOTIATION
Aditya B GlickArgentinaBernardo Dominic PROPOSAL
Maria E TollnerFranceXuxue Feng NEW
Ashley M GarufiJapanElwin Sharvill PROPOSAL
Kaitlin X IturbideIndiaIoni Bowcher RENEWAL
Jeanfrancois K AlbaresRussiaIoni Bowcher QUALIFIED
Darci Y FollerCanadaAnna Fali QUALIFIED
Silvio W InouyeJapanIvan Magalhaes RENEWAL
Leon N MaletFranceOnyama Limba NEW
Aika F CaudySpainBernardo Dominic RENEWAL
Rodrigues W GlickUnited KingdomAsiya Javayant NEGOTIATION
Rodrigues L GlickSpainElwin Sharvill UNQUALIFIED
Sinclair P KuskoAustraliaAmy Elsner RENEWAL
Claire A ButtBrazilAmy Elsner PROPOSAL
Alejandro A BologniaRussiaAnna Fali PROPOSAL
Isabel L BologniaIndiaIoni Bowcher NEGOTIATION
Izzy U WhobreyJapanIvan Magalhaes RENEWAL
Kaitlin C FlosiIndiaIoni Bowcher RENEWAL
Izzy O StockhamIndiaAnna Fali NEW
Kadeem C GlickBrazilStephen Shaw QUALIFIED
Costa M NickaArgentinaAnna Fali UNQUALIFIED
Ricardo F PaprockiItalyOnyama Limba NEW
Sinclair X SlusarskiCanadaAsiya Javayant NEW
Nicolas E BriddickGermanyAsiya Javayant PROPOSAL
Ashley J MaletIndiaAnna Fali NEW
Sinclair L StockhamIndiaStephen Shaw RENEWAL
Izzy I CaldareraRussiaAmy Elsner NEW
Cody H GillianAustraliaAmy Elsner UNQUALIFIED
Deepesh D SaylorsArgentinaAmy Elsner UNQUALIFIED
Aruna Y VocelkaArgentinaXuxue Feng PROPOSAL
Ivar B InouyeSpainIoni Bowcher NEGOTIATION
Aika Q KolmetzIndiaAnna Fali UNQUALIFIED
Isabel L CaldareraIndiaAnna Fali RENEWAL
Sinclair E DoeUnited KingdomIvan Magalhaes NEGOTIATION
Deepesh K SlusarskiJapanStephen Shaw NEGOTIATION
Stacey M OstroskyItalyXuxue Feng UNQUALIFIED
Alejandro N GillianGermanyAmy Elsner PROPOSAL
Isabel Q SergiAustraliaIoni Bowcher PROPOSAL
Francesco F PaprockiGermanyIvan Magalhaes RENEWAL
Emily T DoeArgentinaXuxue Feng PROPOSAL
Ricardo A IturbideFranceOnyama Limba NEGOTIATION
Murillo F GillianSpainIvan Magalhaes RENEWAL
Alejandro T KolmetzItalyStephen Shaw NEW
Alejandro U RoysterAustraliaAmy Elsner UNQUALIFIED
Kadeem S WieserSpainAsiya Javayant RENEWAL
Maria Z CaudyJapanIvan Magalhaes QUALIFIED
Silvio J KolmetzGermanyBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson Y NestleAustraliaIoni Bowcher QUALIFIED
Aditya M WieserRussiaBernardo Dominic UNQUALIFIED
Aika P AlbaresIndiaAnna Fali QUALIFIED
Claire P PaprockiSpainAnna Fali UNQUALIFIED
Faith K GillianFranceStephen Shaw PROPOSAL
Izzy Y GillianArgentinaAsiya Javayant RENEWAL
Murillo J PoquetteSpainStephen Shaw UNQUALIFIED
Chavez P BriddickGermanyElwin Sharvill PROPOSAL
Alejandro K GauchoIndiaBernardo Dominic NEW
Jeanfrancois G MorascaJapanXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia Q AlbaresAustralia2026-08-25Rangoni Of Florence NEW64Ioni Bowcher
1001Darci M TollnerJapan2026-08-25Chapman, Ross E Esq QUALIFIED84Stephen Shaw
1002Octavia G AlbaresRussia2026-08-17Feltz Printing Service QUALIFIED10Xuxue Feng
1003Murillo D DoeBrazil2026-08-15Chanay, Jeffrey A Esq QUALIFIED64Anna Fali
1004Kadeem B CampainGermany2026-08-03Rangoni Of Florence PROPOSAL39Anna Fali
1005Salvatore W TollnerArgentina2026-08-21Printing Dimensions QUALIFIED34Bernardo Dominic
1006Morrow N ButtUnited Kingdom2026-08-23Dorl, James J Esq NEGOTIATION78Elwin Sharvill
1007James N VenereSpain2026-08-04Rangoni Of Florence NEGOTIATION74Ivan Magalhaes
1008Maisha K StensethAustralia2026-08-12Chanay, Jeffrey A Esq UNQUALIFIED76Elwin Sharvill
1009Izzy L BologniaGermany2026-08-08Chanay, Jeffrey A Esq PROPOSAL35Asiya Javayant
1010Darci R PerinSpain2026-08-04Rousseaux, Michael Esq NEGOTIATION47Amy Elsner
1011Deepesh P StockhamFrance2026-08-20Commercial Press RENEWAL95Bernardo Dominic
1012Cody V GauchoAustralia2026-08-15Feiner Bros PROPOSAL36Bernardo Dominic
1013James Q VenereRussia2026-08-19Feltz Printing Service NEGOTIATION87Onyama Limba
1014Kaitlin Z FollerRussia2026-08-22Truhlar And Truhlar Attys QUALIFIED78Ioni Bowcher
1015Alejandro W PaprockiAustralia2026-08-20Feiner Bros RENEWAL7Amy Elsner
1016Jennifer I FollerAustralia2026-08-21Chanay, Jeffrey A Esq UNQUALIFIED91Ivan Magalhaes
1017Antonio H StensethArgentina2026-08-16Chanay, Jeffrey A Esq QUALIFIED8Onyama Limba
1018Octavia E CaudyIndia2026-08-02Dorl, James J Esq NEGOTIATION38Asiya Javayant
1019Faith W VenereFrance2026-08-19Truhlar And Truhlar Attys UNQUALIFIED92Asiya Javayant
1020Clifford M StockhamAustralia2026-08-12Benton, John B Jr RENEWAL2Ivan Magalhaes
1021Antonio K MarrierItaly2026-08-21Buckley Miller Wright NEGOTIATION10Ioni Bowcher
1022Emily H SlusarskiAustralia2026-08-04Feiner Bros RENEWAL2Anna Fali
1023Costa R FerenczSpain2026-08-11Feltz Printing Service UNQUALIFIED66Onyama Limba
1024Arvin W GillianArgentina2026-08-24King, Christopher A Esq NEW31Onyama Limba
1025Juan O FerenczArgentina2026-08-13Rousseaux, Michael Esq NEGOTIATION98Amy Elsner
1026Jones N GillianJapan2026-08-20Chapman, Ross E Esq PROPOSAL36Anna Fali
1027Murillo X GarufiGermany2026-08-01Chemel, James L Cpa NEGOTIATION59Elwin Sharvill
1028Greenwood P StensethAustralia2026-08-25Commercial Press NEW21Asiya Javayant
1029Izzy W GlickArgentina2026-08-12Chapman, Ross E Esq NEW24Anna Fali
1030Nicolas G StensethCanada2026-08-25Chemel, James L Cpa UNQUALIFIED84Onyama Limba
1031Salvatore F SchemmerFrance2026-08-07Chanay, Jeffrey A Esq QUALIFIED10Bernardo Dominic
1032David Q DarakjyCanada2026-08-23King, Christopher A Esq PROPOSAL48Onyama Limba
1033Sinclair S AmigonBrazil2026-08-06Chemel, James L Cpa RENEWAL32Asiya Javayant
1034Izzy D MarrierGermany2026-08-23Feltz Printing Service QUALIFIED80Amy Elsner
1035Arvin Q SaylorsCanada2026-08-08Chemel, James L Cpa NEW38Onyama Limba
1036James H GillianIndia2026-08-13Feltz Printing Service QUALIFIED15Onyama Limba
1037Sinclair P MaletAustralia2026-08-28Rousseaux, Michael Esq RENEWAL96Onyama Limba
1038Francesco S InouyeArgentina2026-08-08Rousseaux, Michael Esq PROPOSAL99Ioni Bowcher
1039Wickens Y CaldareraItaly2026-08-22Commercial Press NEGOTIATION78Bernardo Dominic
1040Salvatore N TollnerRussia2026-08-14Chanay, Jeffrey A Esq NEW44Asiya Javayant
1041Francesco G StockhamAustralia2026-07-30Benton, John B Jr NEW88Onyama Limba
1042Antonio T DoeUnited Kingdom2026-08-24Rangoni Of Florence PROPOSAL55Anna Fali
1043Ivar T SergiCanada2026-08-13Truhlar And Truhlar Attys QUALIFIED75Ioni Bowcher
1044Ashley A FollerJapan2026-08-21Rousseaux, Michael Esq PROPOSAL45Stephen Shaw
1045Juan U DilliardFrance2026-08-08Benton, John B Jr NEW36Ioni Bowcher
1046Jefferson L FerenczSpain2026-08-01Chanay, Jeffrey A Esq RENEWAL90Elwin Sharvill
1047Mujtaba J DarakjyFrance2026-08-24Feltz Printing Service NEGOTIATION10Ivan Magalhaes
1048Stacey R OstroskyFrance2026-08-15Benton, John B Jr PROPOSAL90Amy Elsner
1049Stacey Q ChuiAustralia2026-08-19Buckley Miller Wright PROPOSAL1Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Juan B AlbaresBrazilIvan Magalhaes RENEWAL
Francesco W RoysterAustraliaAnna Fali QUALIFIED
Ricardo V VocelkaRussiaIvan Magalhaes RENEWAL
Greenwood D FlosiBrazilIvan Magalhaes RENEWAL
Izzy S WhobreySpainIvan Magalhaes UNQUALIFIED
Faith G KolmetzUnited KingdomAmy Elsner NEGOTIATION
Sinclair B FollerGermanyStephen Shaw PROPOSAL
Juan F FigeroaUnited KingdomAsiya Javayant NEW
Aditya H PoquetteIndiaIoni Bowcher PROPOSAL
Izzy J RoysterRussiaXuxue Feng NEW
Tony E WieserJapanAmy Elsner UNQUALIFIED
Tony G CaudyRussiaAnna Fali QUALIFIED
Jeanfrancois C OstroskyJapanXuxue Feng UNQUALIFIED
Wickens S CaldareraGermanyIoni Bowcher NEGOTIATION
Johnson K PoquetteFranceElwin Sharvill QUALIFIED
Adams Q SergiSpainStephen Shaw NEW
Stacey T DoeBrazilOnyama Limba NEGOTIATION
Tony O ShinkoGermanyAsiya Javayant RENEWAL
Aruna S SlusarskiItalyXuxue Feng NEW
Aruna B MacleadJapanOnyama Limba NEGOTIATION
Julie H RoysterRussiaOnyama Limba NEW
Jeanfrancois I RutaUnited KingdomStephen Shaw RENEWAL
Darci K RulapaughCanadaAmy Elsner QUALIFIED
Francesco Y CaudyIndiaAmy Elsner QUALIFIED
Mujtaba K PoquetteBrazilXuxue Feng PROPOSAL
David U AmigonUnited KingdomElwin Sharvill NEW
Francesco S BowleyGermanyAnna Fali NEW
Jefferson Q GlickAustraliaIoni Bowcher NEGOTIATION
Stacey V RoysterGermanyOnyama Limba UNQUALIFIED
Kaitlin G StensethIndiaOnyama Limba QUALIFIED
Ivar K GlickFranceAmy Elsner NEGOTIATION
Arvin A TollnerJapanXuxue Feng PROPOSAL
Jennifer N SchemmerIndiaBernardo Dominic NEGOTIATION
Rodrigues O MarrierCanadaAmy Elsner PROPOSAL
Ivar V DoeAustraliaAmy Elsner PROPOSAL
Maisha I BriddickArgentinaStephen Shaw NEGOTIATION
Silvio M FlosiBrazilOnyama Limba NEW
Munro R VocelkaItalyStephen Shaw RENEWAL
Mayumi K SlusarskiArgentinaBernardo Dominic QUALIFIED
Izzy H BriddickFranceElwin Sharvill PROPOSAL
Jeanfrancois S KuskoCanadaBernardo Dominic NEW
Kadeem P ButtFranceAmy Elsner PROPOSAL
Octavia B DarakjyGermanyIvan Magalhaes NEW
Francesco D AlbaresCanadaElwin Sharvill NEGOTIATION
Greenwood A WaycottGermanyIoni Bowcher NEW
Sinclair T PoquetteSpainAsiya Javayant NEGOTIATION
Tony U WieserGermanyAmy Elsner NEW
Octavia K FerenczIndiaOnyama Limba RENEWAL
Cody U StockhamUnited KingdomAmy Elsner PROPOSAL
Faith V DoeGermanyAmy Elsner QUALIFIED
Frozen Columns
Name
James J Stenseth
Chavez J Caldarera
Ivar Y Chui
Deepesh P Royster
Stacey C Wieser
Aika X Albares
Chavez P Royster
Juan W Rim
Julie C Bowley
Jennifer B Bowley
Maria V Figeroa
Isabel V Venere
Antonio A Foller
Ricardo M Malet
James T Saylors
Aruna O Schemmer
Alejandro K Kusko
Aruna I Nestle
Darci T Garufi
Maria V Rim
Julie R Saylors
Aruna O Kolmetz
Jeanfrancois D Foller
Jeanfrancois T Kolmetz
Izzy L Malet
Ashley M Venere
Jeanfrancois F Venere
Julie P Nestle
Deepesh F Chui
Juan T Nestle
Maisha I Butt
Francesco I Briddick
Claire T Nestle
Silvio J Slusarski
Deepesh C Paprocki
Johnson B Waycott
Mujtaba O Flosi
Ivar R Glick
Jones K Flosi
Adams V Malet
David I Glick
Sinclair M Figeroa
Aditya I Ostrosky
Chavez Z Stockham
Stacey W Gillian
Darci V Perin
Jennifer E Nestle
David O Foller
Jones Z Morasca
Mayumi W Saylors
IdCountryDate
1000Germany2026-08-19
1001Italy2026-08-27
1002Russia2026-08-13
1003India2026-08-08
1004United Kingdom2026-08-24
1005Australia2026-08-08
1006Russia2026-08-25
1007Canada2026-08-08
1008Spain2026-07-31
1009Canada2026-08-07
1010Brazil2026-08-27
1011Spain2026-08-22
1012Russia2026-08-16
1013India2026-08-09
1014France2026-08-01
1015Canada2026-08-08
1016Spain2026-08-04
1017Japan2026-08-06
1018France2026-08-02
1019Australia2026-08-22
1020France2026-08-22
1021Spain2026-08-19
1022Italy2026-08-22
1023Canada2026-08-14
1024Germany2026-08-02
1025India2026-08-03
1026Spain2026-08-13
1027France2026-08-07
1028France2026-08-17
1029Canada2026-08-20
1030Canada2026-08-21
1031India2026-08-12
1032Russia2026-08-14
1033Italy2026-08-17
1034Australia2026-08-13
1035Argentina2026-08-09
1036United Kingdom2026-08-07
1037India2026-08-28
1038Germany2026-08-20
1039Australia2026-08-22
1040Canada2026-08-17
1041United Kingdom2026-08-26
1042India2026-08-07
1043Japan2026-08-10
1044United Kingdom2026-08-10
1045Spain2026-08-18
1046Argentina2026-08-28
1047Spain2026-08-20
1048Brazil2026-08-15
1049Canada2026-08-14

On-Demand Data

NameIdCountryDate
Sinclair O Stockham1000India2026-08-12
Rodrigues O Malet1001United Kingdom2026-07-31
Jennifer O Shinko1002France2026-08-12
Cody L Amigon1003Russia2026-08-13
Octavia W Kusko1004India2026-08-16
Maria D Perin1005Canada2026-08-21
Julie Q Stockham1006Italy2026-07-30
Leja G Dilliard1007Russia2026-08-19
Antonio G Ruta1008Germany2026-08-03
Adams I Chui1009Argentina2026-08-24
Aditya Z Chui1010Argentina2026-08-19
Ivar M Malet1011India2026-08-20
Maria M Campain1012India2026-08-21
Leja R Ferencz1013Brazil2026-08-02
Leon Y Caudy1014France2026-08-26
Kaitlin M Butt1015Italy2026-08-24
Faith P Figeroa1016France2026-08-15
Wickens P Rim1017United Kingdom2026-08-02
Ricardo Z Sergi1018Canada2026-08-09
Darci J Maclead1019Spain2026-08-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David N GarufiJapanAmy Elsner QUALIFIED
Aditya H CaldareraJapanOnyama Limba PROPOSAL
Maisha T StockhamGermanyAnna Fali UNQUALIFIED
Faith R StockhamRussiaOnyama Limba PROPOSAL
Johnson J ShinkoUnited KingdomStephen Shaw PROPOSAL
Tony Z SergiIndiaXuxue Feng RENEWAL
Johnson L ChuiCanadaBernardo Dominic NEGOTIATION
Murillo Q RutaJapanStephen Shaw UNQUALIFIED
Jennifer U BowleyArgentinaElwin Sharvill QUALIFIED
Claire W DoeAustraliaAmy Elsner RENEWAL
Claire D MorascaUnited KingdomAmy Elsner NEW
Cody M MacleadFranceBernardo Dominic QUALIFIED
Aika H WaycottSpainIvan Magalhaes NEGOTIATION
Mayumi S RimIndiaStephen Shaw NEW
Misaki W FlosiUnited KingdomElwin Sharvill QUALIFIED
Jennifer S VocelkaAustraliaElwin Sharvill PROPOSAL
Jeanfrancois S RimItalyAsiya Javayant PROPOSAL
Salvatore Z WaycottSpainElwin Sharvill PROPOSAL
Rodrigues B CampainFranceAsiya Javayant NEGOTIATION
Sinclair I StensethSpainXuxue Feng QUALIFIED
Juan P ChuiAustraliaIoni Bowcher NEGOTIATION
Isabel Z MarrierArgentinaBernardo Dominic QUALIFIED
Juan O SaylorsUnited KingdomXuxue Feng NEGOTIATION
Kadeem G SergiCanadaAsiya Javayant RENEWAL
Silvio Z GlickRussiaIoni Bowcher PROPOSAL
Deepesh T FlosiRussiaElwin Sharvill PROPOSAL
Chavez J OstroskyRussiaAsiya Javayant QUALIFIED
Ashley X AmigonBrazilXuxue Feng NEW
Wickens B WaycottUnited KingdomIvan Magalhaes UNQUALIFIED
Alejandro D ButtJapanAmy Elsner NEGOTIATION
Johnson Q OldroydUnited KingdomAmy Elsner QUALIFIED
Kadeem O RutaCanadaStephen Shaw NEW
Wickens N MaletRussiaAnna Fali RENEWAL
Mujtaba E PaprockiCanadaAsiya Javayant NEW
Aruna V DoeJapanAsiya Javayant UNQUALIFIED
Sinclair G NestleBrazilElwin Sharvill UNQUALIFIED
Smith H GauchoRussiaXuxue Feng NEGOTIATION
Costa C ButtAustraliaIoni Bowcher RENEWAL
Mayumi L BowleyArgentinaIoni Bowcher QUALIFIED
Murillo U AmigonIndiaIvan Magalhaes 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>