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
Aditya I PerinItalyIoni Bowcher RENEWAL
Maisha U DarakjyBrazilAsiya Javayant NEW
Maria R AmigonGermanyIvan Magalhaes UNQUALIFIED
Deepesh Z FerenczRussiaIoni Bowcher RENEWAL
Arvin J PaprockiArgentinaAsiya Javayant NEW
Alejandro C InouyeBrazilIvan Magalhaes RENEWAL
Nicolas Z StensethJapanAnna Fali UNQUALIFIED
Jefferson N CaudyGermanyAnna Fali NEW
Jeanfrancois U TollnerIndiaIoni Bowcher UNQUALIFIED
Munro Y WaycottCanadaAmy Elsner QUALIFIED
Silvio C ButtArgentinaAsiya Javayant NEGOTIATION
Wickens T IturbideItalyElwin Sharvill PROPOSAL
Munro A ChuiJapanBernardo Dominic QUALIFIED
Emily E ButtRussiaAmy Elsner RENEWAL
Aika W OstroskyItalyBernardo Dominic RENEWAL
Mujtaba A SaylorsSpainAnna Fali PROPOSAL
Mayumi B GillianRussiaOnyama Limba PROPOSAL
Tony B OldroydArgentinaOnyama Limba NEGOTIATION
Octavia S FlosiFranceIoni Bowcher NEW
Ivar Y DilliardAustraliaAsiya Javayant RENEWAL
Antonio Q IturbideSpainIvan Magalhaes NEW
Jones G BowleyJapanOnyama Limba NEW
Izzy C IturbideIndiaOnyama Limba UNQUALIFIED
Octavia A BriddickSpainIoni Bowcher NEW
Clifford L WieserFranceAsiya Javayant NEGOTIATION
Darci O ChuiGermanyAmy Elsner NEW
Morrow I SchemmerSpainAsiya Javayant QUALIFIED
Adams D PaprockiIndiaAsiya Javayant QUALIFIED
Salvatore H BowleyBrazilAsiya Javayant QUALIFIED
Nicolas K StockhamGermanyAsiya Javayant UNQUALIFIED
Kaitlin L BologniaUnited KingdomStephen Shaw PROPOSAL
Jefferson V ShinkoGermanyIvan Magalhaes NEGOTIATION
Kadeem J PoquetteItalyAmy Elsner RENEWAL
Ashley Z WhobreyArgentinaIoni Bowcher NEW
Jennifer J RulapaughUnited KingdomXuxue Feng PROPOSAL
Juan I ShinkoAustraliaElwin Sharvill NEGOTIATION
Maria V PaprockiBrazilAmy Elsner NEW
Tony A MorascaItalyAnna Fali NEW
Kadeem A WhobreyAustraliaAsiya Javayant NEGOTIATION
Chavez B WaycottJapanBernardo Dominic QUALIFIED
Kaitlin K StockhamSpainAmy Elsner NEW
Jeanfrancois I DoeRussiaAsiya Javayant RENEWAL
Nicolas X InouyeSpainXuxue Feng RENEWAL
Greenwood E GillianArgentinaElwin Sharvill QUALIFIED
Greenwood A RulapaughSpainOnyama Limba RENEWAL
Morrow S CampainIndiaBernardo Dominic RENEWAL
Jones O FlosiGermanyStephen Shaw QUALIFIED
Nicolas A WieserArgentinaBernardo Dominic PROPOSAL
Juan I BologniaCanadaElwin Sharvill RENEWAL
Aika B CaldareraBrazilBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Leon U ButtGermanyBernardo Dominic NEGOTIATION
Darci H SlusarskiGermanyElwin Sharvill UNQUALIFIED
Faith Z MorascaIndiaAnna Fali RENEWAL
Emily I WhobreyItalyBernardo Dominic UNQUALIFIED
Kadeem Y BowleyArgentinaAnna Fali NEGOTIATION
Izzy E OldroydFranceAmy Elsner UNQUALIFIED
Chavez L SlusarskiIndiaStephen Shaw UNQUALIFIED
Morrow B SlusarskiSpainStephen Shaw UNQUALIFIED
Jennifer X RimSpainXuxue Feng PROPOSAL
Jeanfrancois A PoquetteFranceBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair F NickaGermany2026-07-08King, Christopher A Esq QUALIFIED30Onyama Limba
1001Francesco X GauchoCanada2026-06-13Chanay, Jeffrey A Esq QUALIFIED98Stephen Shaw
1002Clifford D GauchoJapan2026-07-06King, Christopher A Esq PROPOSAL49Amy Elsner
1003Mujtaba D BriddickJapan2026-07-02Truhlar And Truhlar Attys RENEWAL52Elwin Sharvill
1004Francesco U BowleySpain2026-06-23Benton, John B Jr NEGOTIATION2Bernardo Dominic
1005Octavia G InouyeJapan2026-06-19Truhlar And Truhlar Attys QUALIFIED49Onyama Limba
1006Jeanfrancois F GlickArgentina2026-06-22Chapman, Ross E Esq PROPOSAL88Elwin Sharvill
1007Murillo U MaletRussia2026-06-16Printing Dimensions UNQUALIFIED57Asiya Javayant
1008Jefferson U IturbideArgentina2026-06-25Benton, John B Jr NEGOTIATION37Amy Elsner
1009Stacey O DoeIndia2026-06-28Rangoni Of Florence RENEWAL20Anna Fali
1010Rodrigues O SaylorsFrance2026-07-04Truhlar And Truhlar Attys QUALIFIED68Asiya Javayant
1011Francesco G MacleadRussia2026-07-08Morlong Associates UNQUALIFIED24Stephen Shaw
1012Ashley P GillianUnited Kingdom2026-07-03Printing Dimensions QUALIFIED74Amy Elsner
1013Izzy O StensethJapan2026-06-25Buckley Miller Wright QUALIFIED42Amy Elsner
1014Munro Y AlbaresAustralia2026-06-18Rangoni Of Florence UNQUALIFIED59Onyama Limba
1015Ivar K CampainRussia2026-06-17King, Christopher A Esq NEW82Stephen Shaw
1016Faith H PoquetteCanada2026-07-09Morlong Associates PROPOSAL76Xuxue Feng
1017Leon Q DoeUnited Kingdom2026-07-10Chanay, Jeffrey A Esq NEGOTIATION62Amy Elsner
1018Chavez K WhobreySpain2026-07-10Dorl, James J Esq PROPOSAL9Ioni Bowcher
1019Ricardo I RulapaughItaly2026-07-04Morlong Associates QUALIFIED73Xuxue Feng
1020Francesco P SergiIndia2026-06-28Feiner Bros QUALIFIED10Onyama Limba
1021Darci H CaudyIndia2026-06-23Feiner Bros NEGOTIATION79Ioni Bowcher
1022Julie J RulapaughArgentina2026-07-02Rousseaux, Michael Esq PROPOSAL36Stephen Shaw
1023Ricardo W VenereUnited Kingdom2026-06-17Truhlar And Truhlar Attys PROPOSAL46Elwin Sharvill
1024Johnson P SaylorsSpain2026-07-03Feltz Printing Service QUALIFIED91Amy Elsner
1025Stacey R GlickGermany2026-06-20Dorl, James J Esq UNQUALIFIED32Amy Elsner
1026Ricardo G OldroydBrazil2026-07-09King, Christopher A Esq UNQUALIFIED53Asiya Javayant
1027Deepesh G RutaJapan2026-06-17Benton, John B Jr NEGOTIATION99Xuxue Feng
1028Emily M MacleadRussia2026-06-22Rousseaux, Michael Esq NEGOTIATION92Onyama Limba
1029Francesco O RutaSpain2026-06-24Dorl, James J Esq QUALIFIED73Ioni Bowcher
1030Ashley V ChuiGermany2026-06-17Chemel, James L Cpa QUALIFIED48Onyama Limba
1031Izzy Z KolmetzFrance2026-07-08Truhlar And Truhlar Attys UNQUALIFIED30Asiya Javayant
1032Jeanfrancois M CampainJapan2026-07-07Rangoni Of Florence QUALIFIED25Stephen Shaw
1033Mujtaba X DarakjyItaly2026-07-02Printing Dimensions PROPOSAL5Amy Elsner
1034Murillo O SchemmerCanada2026-06-13Truhlar And Truhlar Attys QUALIFIED47Asiya Javayant
1035James Y ButtArgentina2026-06-18Commercial Press NEW35Bernardo Dominic
1036Izzy K SchemmerFrance2026-06-17Buckley Miller Wright RENEWAL40Anna Fali
1037Alejandro E DilliardFrance2026-06-16Printing Dimensions QUALIFIED26Bernardo Dominic
1038Arvin D SchemmerJapan2026-06-19Feltz Printing Service RENEWAL21Asiya Javayant
1039Izzy Z GarufiJapan2026-06-19Rangoni Of Florence RENEWAL14Anna Fali
1040Adams W VenereJapan2026-06-23Truhlar And Truhlar Attys QUALIFIED97Elwin Sharvill
1041Clifford L WieserArgentina2026-06-14Chemel, James L Cpa QUALIFIED41Asiya Javayant
1042Darci I MaletBrazil2026-06-17Commercial Press RENEWAL67Asiya Javayant
1043Murillo V MarrierIndia2026-06-16Printing Dimensions QUALIFIED90Bernardo Dominic
1044Francesco E WieserItaly2026-06-28Buckley Miller Wright QUALIFIED36Bernardo Dominic
1045Leon P BologniaJapan2026-06-17Chapman, Ross E Esq NEW67Anna Fali
1046Silvio H CampainArgentina2026-06-25Chemel, James L Cpa NEGOTIATION40Xuxue Feng
1047Arvin L GlickBrazil2026-07-01Chemel, James L Cpa RENEWAL59Ivan Magalhaes
1048Clifford M RoysterFrance2026-06-25Chanay, Jeffrey A Esq PROPOSAL50Anna Fali
1049Kadeem F FlosiItaly2026-06-16Morlong Associates UNQUALIFIED21Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Chavez E CampainSpainAnna Fali PROPOSAL
Darci U BologniaFranceBernardo Dominic NEW
Tony X RulapaughItalyBernardo Dominic RENEWAL
Misaki K OldroydIndiaIoni Bowcher RENEWAL
Deepesh S WhobreyJapanElwin Sharvill NEW
Morrow G SergiBrazilElwin Sharvill PROPOSAL
Claire D NestleGermanyStephen Shaw NEGOTIATION
Sinclair L SlusarskiBrazilStephen Shaw PROPOSAL
Jennifer U RutaCanadaAnna Fali QUALIFIED
Rodrigues T DarakjyRussiaXuxue Feng UNQUALIFIED
Izzy F DoeIndiaOnyama Limba NEGOTIATION
Murillo R ButtItalyIoni Bowcher NEGOTIATION
Aruna J CaudyArgentinaAmy Elsner NEW
Adams X DoeGermanyAmy Elsner QUALIFIED
Chavez T GarufiItalyOnyama Limba UNQUALIFIED
Leon D SaylorsSpainOnyama Limba UNQUALIFIED
Jefferson S StockhamSpainIoni Bowcher NEGOTIATION
Johnson V PerinFranceIvan Magalhaes NEW
Nicolas M StockhamIndiaBernardo Dominic NEW
Jennifer A CampainBrazilBernardo Dominic RENEWAL
Wickens P KolmetzIndiaXuxue Feng UNQUALIFIED
Murillo A AlbaresArgentinaIoni Bowcher NEW
Costa V NickaJapanAnna Fali UNQUALIFIED
Chavez S VenereCanadaOnyama Limba NEW
Misaki Q FlosiSpainAmy Elsner NEW
Sinclair Y WaycottFranceOnyama Limba UNQUALIFIED
Silvio I BowleyBrazilElwin Sharvill RENEWAL
Mayumi T OldroydItalyBernardo Dominic NEGOTIATION
Maisha R TollnerFranceAsiya Javayant PROPOSAL
Salvatore Q BriddickIndiaXuxue Feng NEGOTIATION
Greenwood M IturbideSpainElwin Sharvill RENEWAL
Nicolas Y DilliardGermanyAnna Fali UNQUALIFIED
Leja Q FlosiJapanBernardo Dominic UNQUALIFIED
James Q SaylorsRussiaAsiya Javayant PROPOSAL
Munro H MorascaIndiaIoni Bowcher UNQUALIFIED
Kadeem S SchemmerCanadaBernardo Dominic PROPOSAL
Misaki O AlbaresUnited KingdomIvan Magalhaes QUALIFIED
Octavia U RoysterUnited KingdomOnyama Limba NEGOTIATION
Deepesh I RimRussiaAmy Elsner NEW
Juan Y SergiSpainAmy Elsner NEGOTIATION
Faith G StensethUnited KingdomOnyama Limba QUALIFIED
Silvio A MacleadUnited KingdomStephen Shaw UNQUALIFIED
Stacey J SlusarskiFranceIvan Magalhaes QUALIFIED
Chavez Z MaletJapanStephen Shaw QUALIFIED
Octavia T ShinkoArgentinaAnna Fali NEGOTIATION
Murillo T SergiIndiaBernardo Dominic UNQUALIFIED
Smith J IturbideIndiaStephen Shaw UNQUALIFIED
Nicolas O SlusarskiJapanAmy Elsner QUALIFIED
Nicolas R DarakjyAustraliaIoni Bowcher NEGOTIATION
Francesco U GillianIndiaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Antonio K Figeroa
Julie Z Whobrey
Greenwood J Tollner
Francesco R Stockham
Munro P Butt
Morrow Y Garufi
Silvio R Caudy
James N Oldroyd
Isabel I Shinko
Wickens Q Maclead
Sinclair L Oldroyd
Morrow Z Tollner
Kadeem F Waycott
Deepesh Y Gillian
Morrow Y Rim
Octavia G Caudy
Izzy S Doe
Julie P Ruta
Maisha O Caldarera
Isabel F Nicka
Emily H Chui
Aruna K Tollner
Jones U Venere
Aika Y Malet
Morrow Q Maclead
Wickens F Venere
Antonio Z Tollner
Leon X Wieser
Maisha F Malet
Julie H Chui
Munro K Malet
Leja E Iturbide
Aditya N Ostrosky
Aruna B Nestle
Stacey V Briddick
Aika Q Sergi
Johnson L Oldroyd
Wickens C Campain
Isabel L Inouye
Costa N Iturbide
Juan V Gillian
Greenwood F Kolmetz
Claire P Caudy
Tony E Kolmetz
Julie M Flosi
Jefferson S Foller
Kadeem Q Wieser
Nicolas D Glick
Clifford H Kusko
Deepesh B Wieser
IdCountryDate
1000Italy2026-06-28
1001Argentina2026-07-03
1002United Kingdom2026-06-27
1003Russia2026-06-25
1004Australia2026-07-01
1005India2026-06-22
1006Brazil2026-06-28
1007Australia2026-06-18
1008Italy2026-06-28
1009Canada2026-06-24
1010Spain2026-06-30
1011Australia2026-07-07
1012Argentina2026-06-29
1013Italy2026-07-11
1014Italy2026-06-25
1015Japan2026-07-01
1016India2026-06-19
1017Brazil2026-06-23
1018Canada2026-07-11
1019Germany2026-06-25
1020Japan2026-06-20
1021Australia2026-07-06
1022Brazil2026-06-16
1023France2026-06-17
1024Japan2026-06-15
1025Japan2026-07-06
1026Argentina2026-06-17
1027Russia2026-07-12
1028Australia2026-07-10
1029Japan2026-06-16
1030Japan2026-07-08
1031Japan2026-06-19
1032Australia2026-06-18
1033Germany2026-06-13
1034Australia2026-07-11
1035Italy2026-06-26
1036Spain2026-06-13
1037Australia2026-06-26
1038Brazil2026-06-21
1039Japan2026-06-14
1040United Kingdom2026-07-05
1041Canada2026-06-20
1042India2026-07-06
1043Spain2026-06-24
1044Australia2026-06-20
1045Italy2026-06-23
1046Spain2026-06-23
1047Brazil2026-06-26
1048Germany2026-06-22
1049Canada2026-06-17

On-Demand Data

NameIdCountryDate
Jeanfrancois A Stenseth1000Argentina2026-06-16
Murillo R Kusko1001Germany2026-07-10
Johnson P Ruta1002Russia2026-06-30
Ashley Z Rulapaugh1003Australia2026-07-03
Julie U Caldarera1004United Kingdom2026-07-01
Stacey X Nicka1005United Kingdom2026-06-20
Leja K Wieser1006Spain2026-06-27
James B Whobrey1007Brazil2026-07-02
Aruna X Campain1008Spain2026-07-10
Alejandro M Inouye1009United Kingdom2026-07-07
Rodrigues N Morasca1010Australia2026-07-01
Murillo L Gillian1011Brazil2026-07-02
Tony T Vocelka1012Brazil2026-06-30
Ashley S Marrier1013United Kingdom2026-06-18
Wickens B Malet1014India2026-06-18
Julie D Paprocki1015Japan2026-06-24
Maria K Bowley1016Russia2026-07-07
Isabel Q Malet1017Japan2026-06-30
Rodrigues A Paprocki1018United Kingdom2026-07-11
Aruna M Doe1019Argentina2026-07-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily Q SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois G VenereAustraliaIvan Magalhaes NEW
Jennifer N PaprockiRussiaIvan Magalhaes QUALIFIED
Jeanfrancois Z OldroydRussiaIoni Bowcher RENEWAL
Ivar B BowleyFranceStephen Shaw UNQUALIFIED
Mujtaba W RutaRussiaAnna Fali NEW
Aditya B RimItalyXuxue Feng PROPOSAL
Jefferson A FigeroaIndiaIoni Bowcher NEGOTIATION
Munro U IturbideIndiaAmy Elsner QUALIFIED
Jefferson A RoysterJapanXuxue Feng PROPOSAL
Kaitlin G MaletRussiaAsiya Javayant NEW
Emily O MarrierArgentinaAmy Elsner NEW
James S GillianSpainElwin Sharvill QUALIFIED
Adams J GauchoSpainIoni Bowcher UNQUALIFIED
Adams X SchemmerItalyAmy Elsner QUALIFIED
Sinclair J VocelkaRussiaOnyama Limba UNQUALIFIED
Kadeem S RoysterFranceXuxue Feng PROPOSAL
Wickens E SaylorsGermanyIoni Bowcher PROPOSAL
Antonio J IturbideFranceIvan Magalhaes PROPOSAL
Aika Q SaylorsAustraliaAmy Elsner PROPOSAL
Maisha Z VocelkaRussiaIvan Magalhaes QUALIFIED
Faith V PerinIndiaAmy Elsner NEGOTIATION
Stacey B KolmetzJapanElwin Sharvill NEW
Jones I StockhamIndiaAmy Elsner QUALIFIED
Darci I VocelkaArgentinaAmy Elsner PROPOSAL
Aditya R OstroskyIndiaIoni Bowcher PROPOSAL
Kadeem L SlusarskiFranceAmy Elsner RENEWAL
Jones W FollerSpainAmy Elsner QUALIFIED
Stacey U BriddickJapanStephen Shaw NEGOTIATION
Julie L GarufiIndiaStephen Shaw PROPOSAL
Kadeem F SaylorsFranceXuxue Feng NEGOTIATION
Maisha D ChuiIndiaBernardo Dominic PROPOSAL
Smith M InouyeGermanyStephen Shaw NEW
Johnson B FerenczRussiaOnyama Limba QUALIFIED
Faith Q SergiUnited KingdomBernardo Dominic NEW
Jefferson U MacleadUnited KingdomIvan Magalhaes NEGOTIATION
Sinclair X RoysterIndiaAmy Elsner QUALIFIED
Aruna M KuskoUnited KingdomIoni Bowcher RENEWAL
Julie V CaudyRussiaIoni Bowcher QUALIFIED
Ashley N FlosiRussiaElwin Sharvill NEW

<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>