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
Leja A NickaGermanyAnna Fali QUALIFIED
Mujtaba U AlbaresUnited KingdomIoni Bowcher UNQUALIFIED
Ashley X WhobreyItalyAnna Fali UNQUALIFIED
James H PerinAustraliaXuxue Feng PROPOSAL
Munro P MaletGermanyStephen Shaw RENEWAL
Jefferson F SchemmerUnited KingdomXuxue Feng NEGOTIATION
Mayumi A RimJapanAnna Fali PROPOSAL
Rodrigues J FlosiIndiaXuxue Feng NEGOTIATION
Tony Z PerinFranceStephen Shaw NEW
Sinclair W OldroydCanadaAnna Fali QUALIFIED
Salvatore V MaletIndiaBernardo Dominic UNQUALIFIED
Ricardo Q VenereJapanElwin Sharvill RENEWAL
Costa L BowleyArgentinaStephen Shaw UNQUALIFIED
Stacey I StensethItalyAmy Elsner RENEWAL
Isabel V KolmetzSpainIoni Bowcher NEW
Izzy E CampainItalyAsiya Javayant UNQUALIFIED
Rodrigues H PaprockiArgentinaElwin Sharvill RENEWAL
Wickens K StockhamItalyElwin Sharvill QUALIFIED
Wickens G OldroydArgentinaElwin Sharvill PROPOSAL
Misaki Y MaletSpainIoni Bowcher QUALIFIED
James C OldroydUnited KingdomAnna Fali UNQUALIFIED
Deepesh X FigeroaUnited KingdomXuxue Feng RENEWAL
Clifford Y CampainFranceAsiya Javayant NEW
Salvatore S VocelkaItalyBernardo Dominic RENEWAL
Aditya E RimArgentinaIoni Bowcher RENEWAL
Arvin J SchemmerSpainBernardo Dominic NEGOTIATION
Rodrigues F InouyeCanadaOnyama Limba NEW
Arvin B VocelkaItalyIvan Magalhaes NEW
Costa H BowleySpainIvan Magalhaes PROPOSAL
Munro A CaldareraAustraliaIvan Magalhaes QUALIFIED
Emily L RoysterAustraliaAnna Fali UNQUALIFIED
Octavia O ButtAustraliaOnyama Limba PROPOSAL
Wickens A OstroskyJapanIvan Magalhaes QUALIFIED
Jefferson B GauchoBrazilIoni Bowcher UNQUALIFIED
David E RutaBrazilIoni Bowcher UNQUALIFIED
Silvio J DoeAustraliaBernardo Dominic PROPOSAL
Leja G BowleySpainAmy Elsner QUALIFIED
Maria N WaycottCanadaBernardo Dominic NEGOTIATION
Jones R KolmetzArgentinaIoni Bowcher RENEWAL
Chavez U SchemmerSpainAsiya Javayant NEGOTIATION
Antonio Y SlusarskiUnited KingdomAmy Elsner PROPOSAL
Greenwood V AlbaresIndiaIvan Magalhaes NEGOTIATION
Kaitlin Y InouyeSpainAsiya Javayant RENEWAL
Arvin Y WaycottArgentinaOnyama Limba NEW
Deepesh U NickaCanadaIoni Bowcher NEW
Leon Q SergiItalyElwin Sharvill RENEWAL
Rodrigues X RoysterAustraliaStephen Shaw NEW
Clifford W MacleadRussiaAsiya Javayant PROPOSAL
Kadeem F PaprockiIndiaXuxue Feng PROPOSAL
Morrow X AmigonUnited KingdomAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ivar R ChuiItalyIoni Bowcher RENEWAL
Jeanfrancois G SergiAustraliaStephen Shaw QUALIFIED
Jones C MaletFranceAsiya Javayant RENEWAL
Ricardo L AlbaresBrazilIvan Magalhaes UNQUALIFIED
Maisha D DarakjyCanadaAmy Elsner PROPOSAL
Aruna D SchemmerSpainElwin Sharvill NEGOTIATION
Tony F InouyeArgentinaBernardo Dominic QUALIFIED
Stacey I SaylorsFranceOnyama Limba QUALIFIED
Leon J MaletAustraliaStephen Shaw PROPOSAL
Ashley S PaprockiArgentinaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily I AmigonItaly2026-07-26Rangoni Of Florence NEW85Onyama Limba
1001Stacey X SergiRussia2026-08-13Benton, John B Jr NEGOTIATION64Anna Fali
1002Cody B RimItaly2026-08-20Benton, John B Jr PROPOSAL60Amy Elsner
1003Kadeem J RimCanada2026-08-16Commercial Press PROPOSAL5Bernardo Dominic
1004Tony V KolmetzSpain2026-08-20Commercial Press NEW10Xuxue Feng
1005Kaitlin W GarufiAustralia2026-08-15Truhlar And Truhlar Attys RENEWAL21Asiya Javayant
1006Nicolas N RutaRussia2026-08-01Feiner Bros PROPOSAL91Amy Elsner
1007Mujtaba A BriddickGermany2026-08-15Benton, John B Jr PROPOSAL93Asiya Javayant
1008James Q BriddickCanada2026-07-27King, Christopher A Esq NEW42Anna Fali
1009Salvatore W DilliardBrazil2026-08-22Benton, John B Jr NEW73Amy Elsner
1010Morrow O AlbaresUnited Kingdom2026-07-30Commercial Press NEGOTIATION42Asiya Javayant
1011Salvatore N BriddickJapan2026-08-13Chanay, Jeffrey A Esq NEGOTIATION63Asiya Javayant
1012Greenwood Z AlbaresAustralia2026-08-09Chemel, James L Cpa NEW97Stephen Shaw
1013Morrow O StockhamFrance2026-07-29Rousseaux, Michael Esq NEW83Ioni Bowcher
1014Kaitlin H OldroydUnited Kingdom2026-08-15Chapman, Ross E Esq UNQUALIFIED40Xuxue Feng
1015Morrow O ButtAustralia2026-08-23Benton, John B Jr QUALIFIED57Elwin Sharvill
1016Aditya P DilliardFrance2026-07-29Buckley Miller Wright QUALIFIED28Anna Fali
1017Kaitlin V DoeSpain2026-08-15Rangoni Of Florence NEW49Onyama Limba
1018Jefferson C RulapaughAustralia2026-08-07Feltz Printing Service NEGOTIATION88Elwin Sharvill
1019Munro C WhobreyUnited Kingdom2026-07-25Rangoni Of Florence PROPOSAL2Ioni Bowcher
1020Mayumi J SlusarskiSpain2026-08-03Printing Dimensions RENEWAL45Onyama Limba
1021Cody B VenereItaly2026-08-15Chemel, James L Cpa NEW92Bernardo Dominic
1022Maria R WieserGermany2026-08-09King, Christopher A Esq UNQUALIFIED48Ivan Magalhaes
1023Maisha G ShinkoJapan2026-08-01Chemel, James L Cpa NEW42Asiya Javayant
1024Greenwood H PaprockiRussia2026-08-05Feltz Printing Service RENEWAL70Ioni Bowcher
1025Aruna L SchemmerRussia2026-08-05Benton, John B Jr NEGOTIATION66Elwin Sharvill
1026Jones D IturbideJapan2026-08-17Morlong Associates NEW80Ivan Magalhaes
1027Misaki Y FollerArgentina2026-08-07Feltz Printing Service RENEWAL24Onyama Limba
1028Izzy U ButtSpain2026-08-01Chapman, Ross E Esq RENEWAL73Anna Fali
1029Ashley M FollerArgentina2026-08-14Morlong Associates RENEWAL66Elwin Sharvill
1030Arvin J PerinItaly2026-08-17Dorl, James J Esq RENEWAL99Amy Elsner
1031Darci C GarufiItaly2026-08-16Chanay, Jeffrey A Esq NEGOTIATION98Ivan Magalhaes
1032Rodrigues S MacleadArgentina2026-08-14Chapman, Ross E Esq PROPOSAL29Bernardo Dominic
1033Alejandro H BowleyIndia2026-08-06Truhlar And Truhlar Attys NEW43Onyama Limba
1034Jeanfrancois O KolmetzItaly2026-08-15Feiner Bros QUALIFIED22Ivan Magalhaes
1035Leon G TollnerItaly2026-08-08Dorl, James J Esq UNQUALIFIED82Amy Elsner
1036Maria X StockhamIndia2026-07-30Feltz Printing Service QUALIFIED71Onyama Limba
1037Johnson A InouyeGermany2026-08-13Feiner Bros PROPOSAL1Ivan Magalhaes
1038Cody G BowleyRussia2026-07-25Chemel, James L Cpa QUALIFIED92Onyama Limba
1039Smith I CampainFrance2026-08-04Chanay, Jeffrey A Esq RENEWAL23Amy Elsner
1040Juan S GauchoUnited Kingdom2026-08-15Chemel, James L Cpa RENEWAL81Asiya Javayant
1041Ashley X RulapaughItaly2026-08-12Morlong Associates UNQUALIFIED60Onyama Limba
1042Darci J RutaItaly2026-08-07Truhlar And Truhlar Attys PROPOSAL65Onyama Limba
1043Octavia O DoeRussia2026-08-22Commercial Press NEGOTIATION17Ioni Bowcher
1044Ivar T SchemmerSpain2026-08-03Morlong Associates PROPOSAL24Stephen Shaw
1045Mujtaba D RutaIndia2026-08-16Printing Dimensions RENEWAL84Ioni Bowcher
1046Ricardo J TollnerRussia2026-08-03Printing Dimensions UNQUALIFIED15Amy Elsner
1047Tony E FigeroaIndia2026-08-21Printing Dimensions NEGOTIATION76Elwin Sharvill
1048Ashley L WieserUnited Kingdom2026-08-23Commercial Press RENEWAL17Bernardo Dominic
1049Darci Q BologniaAustralia2026-08-13Feiner Bros UNQUALIFIED89Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
David N SergiSpainAmy Elsner RENEWAL
Mujtaba Z FerenczItalyIvan Magalhaes NEW
Misaki K BowleyFranceOnyama Limba UNQUALIFIED
Costa O MarrierRussiaAsiya Javayant QUALIFIED
Ivar N PoquetteFranceIoni Bowcher RENEWAL
Stacey T VocelkaSpainXuxue Feng NEGOTIATION
Deepesh W IturbideAustraliaElwin Sharvill RENEWAL
Emily G DilliardItalyXuxue Feng RENEWAL
Sinclair H ButtCanadaOnyama Limba PROPOSAL
Johnson T InouyeAustraliaXuxue Feng NEW
Sinclair F MacleadAustraliaAmy Elsner UNQUALIFIED
Leja G SergiBrazilXuxue Feng NEW
Francesco E ShinkoBrazilBernardo Dominic QUALIFIED
Salvatore D CampainIndiaBernardo Dominic NEW
Maria H VenereUnited KingdomAsiya Javayant UNQUALIFIED
Maisha T BriddickAustraliaAnna Fali NEGOTIATION
Cody V DilliardRussiaAmy Elsner QUALIFIED
Julie J DarakjyUnited KingdomXuxue Feng NEGOTIATION
Julie R WhobreyIndiaElwin Sharvill NEW
Cody L GlickJapanAsiya Javayant RENEWAL
Aruna G GauchoJapanAmy Elsner PROPOSAL
Cody D NickaArgentinaStephen Shaw QUALIFIED
Nicolas L VocelkaIndiaOnyama Limba UNQUALIFIED
Morrow S IturbideRussiaBernardo Dominic NEGOTIATION
Isabel A ShinkoCanadaXuxue Feng NEW
Julie I SaylorsCanadaXuxue Feng UNQUALIFIED
Aruna C CaudyUnited KingdomIoni Bowcher NEGOTIATION
Morrow Z AlbaresBrazilStephen Shaw PROPOSAL
Clifford K MorascaItalyIvan Magalhaes QUALIFIED
Aika J WieserUnited KingdomAsiya Javayant UNQUALIFIED
Wickens Q CaldareraBrazilAnna Fali NEW
Adams T ButtSpainAnna Fali NEGOTIATION
Isabel W ShinkoGermanyBernardo Dominic RENEWAL
Aruna Q MarrierIndiaBernardo Dominic NEGOTIATION
James W FerenczBrazilXuxue Feng NEW
Smith X IturbideBrazilAsiya Javayant NEW
Aika L PoquetteFranceAsiya Javayant QUALIFIED
Morrow M PoquetteAustraliaElwin Sharvill PROPOSAL
James Y MarrierGermanyBernardo Dominic RENEWAL
Salvatore E MaletGermanyAnna Fali NEGOTIATION
Alejandro G GlickAustraliaOnyama Limba NEGOTIATION
Adams V KolmetzGermanyOnyama Limba QUALIFIED
Leon H DilliardAustraliaBernardo Dominic NEW
Ashley P BologniaJapanAsiya Javayant PROPOSAL
Izzy U KuskoIndiaAmy Elsner UNQUALIFIED
Sinclair X PaprockiJapanOnyama Limba PROPOSAL
Cody R RoysterAustraliaIvan Magalhaes PROPOSAL
Rodrigues H GauchoFranceElwin Sharvill UNQUALIFIED
Jeanfrancois P PerinItalyOnyama Limba QUALIFIED
Ashley N DoeSpainBernardo Dominic NEW
Frozen Columns
Name
Smith G Doe
Chavez K Shinko
Ashley J Perin
Maria K Flosi
Jones X Ferencz
Aika X Maclead
Stacey N Kolmetz
David L Rulapaugh
Antonio O Morasca
Cody B Doe
Juan D Rulapaugh
Greenwood B Iturbide
Cody V Poquette
Ashley K Butt
Darci Y Oldroyd
Antonio J Schemmer
David U Flosi
Stacey A Garufi
Munro P Schemmer
Misaki H Sergi
Greenwood B Venere
Izzy S Vocelka
Silvio X Royster
Sinclair H Morasca
Kaitlin G Perin
Antonio A Rulapaugh
Darci X Foller
Aditya K Maclead
David Z Ostrosky
Claire C Nestle
Kadeem Z Dilliard
Alejandro Z Kolmetz
Mujtaba Q Caldarera
Jones Y Tollner
Jennifer U Maclead
Tony G Kusko
Mujtaba K Stockham
Juan T Amigon
Jefferson A Caldarera
Julie W Rulapaugh
Tony Q Albares
Juan N Rim
Maisha U Whobrey
Wickens O Venere
Antonio I Nicka
Clifford E Glick
Francesco H Marrier
Ivar V Stockham
Misaki D Perin
Darci E Caudy
IdCountryDate
1000Russia2026-08-04
1001United Kingdom2026-07-25
1002Brazil2026-07-26
1003Russia2026-07-31
1004Brazil2026-08-02
1005Brazil2026-08-23
1006Brazil2026-08-21
1007United Kingdom2026-07-29
1008France2026-08-19
1009India2026-07-29
1010Australia2026-08-13
1011Japan2026-08-01
1012France2026-08-10
1013Argentina2026-08-18
1014Germany2026-08-07
1015Russia2026-08-02
1016India2026-07-31
1017Japan2026-08-18
1018Russia2026-08-15
1019France2026-08-13
1020United Kingdom2026-08-12
1021Spain2026-08-10
1022Australia2026-07-27
1023Japan2026-08-04
1024Argentina2026-08-13
1025Japan2026-08-12
1026Germany2026-08-22
1027Australia2026-07-30
1028India2026-08-03
1029Brazil2026-08-19
1030Germany2026-08-04
1031Italy2026-08-09
1032Canada2026-07-28
1033Japan2026-08-03
1034United Kingdom2026-08-20
1035Brazil2026-08-10
1036Italy2026-08-20
1037Spain2026-08-16
1038India2026-08-07
1039Germany2026-08-08
1040Germany2026-08-02
1041Argentina2026-08-02
1042Brazil2026-08-01
1043India2026-08-22
1044Canada2026-08-23
1045United Kingdom2026-07-25
1046Spain2026-08-21
1047France2026-08-12
1048Spain2026-07-25
1049Spain2026-08-02

On-Demand Data

NameIdCountryDate
Jefferson C Flosi1000Russia2026-08-05
Murillo V Slusarski1001Russia2026-08-10
Francesco U Whobrey1002Italy2026-08-09
Chavez V Gillian1003Italy2026-08-22
Isabel Q Vocelka1004Spain2026-07-26
Kadeem H Shinko1005Argentina2026-08-16
Claire L Ferencz1006United Kingdom2026-08-23
Wickens V Perin1007Italy2026-07-27
Maria E Inouye1008India2026-08-11
Isabel F Waycott1009Germany2026-08-18
Rodrigues W Campain1010Spain2026-08-18
Morrow E Saylors1011Japan2026-08-12
Jefferson I Oldroyd1012Spain2026-08-10
Tony Q Caudy1013Australia2026-08-16
Chavez C Glick1014Germany2026-08-05
Kaitlin H Kolmetz1015Germany2026-08-11
Aruna L Darakjy1016Spain2026-08-18
Leja G Iturbide1017Germany2026-07-30
Aika A Ruta1018France2026-08-15
Stacey U Kolmetz1019Canada2026-07-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow B ShinkoUnited KingdomBernardo Dominic RENEWAL
Costa Q MorascaJapanStephen Shaw RENEWAL
Cody U SaylorsItalyAmy Elsner PROPOSAL
Cody R VenereBrazilIoni Bowcher RENEWAL
Tony F MorascaSpainAnna Fali QUALIFIED
Aditya I DoeRussiaAsiya Javayant NEW
Aruna N DilliardAustraliaStephen Shaw NEGOTIATION
Silvio K SlusarskiFranceOnyama Limba NEW
Wickens V WaycottGermanyIvan Magalhaes NEW
Jefferson Q RutaArgentinaIvan Magalhaes UNQUALIFIED
Morrow J VenereGermanyAnna Fali UNQUALIFIED
Julie Y DarakjyRussiaAmy Elsner RENEWAL
Munro J MarrierCanadaBernardo Dominic NEW
Greenwood A CampainAustraliaAmy Elsner UNQUALIFIED
Maisha J RimJapanStephen Shaw PROPOSAL
Jennifer R RoysterJapanElwin Sharvill RENEWAL
Sinclair N PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Julie V WaycottCanadaOnyama Limba RENEWAL
Aditya G FigeroaAustraliaAmy Elsner NEW
Stacey D InouyeSpainElwin Sharvill QUALIFIED
Misaki G RoysterRussiaAnna Fali NEW
Costa M DoeBrazilAnna Fali PROPOSAL
Arvin P FollerAustraliaAnna Fali NEW
Faith D RoysterUnited KingdomIvan Magalhaes RENEWAL
Adams G CaldareraFranceIvan Magalhaes RENEWAL
Cody R CaudyItalyElwin Sharvill QUALIFIED
Greenwood D ChuiFranceXuxue Feng QUALIFIED
Clifford T PoquetteCanadaOnyama Limba NEGOTIATION
Munro V DoeArgentinaStephen Shaw UNQUALIFIED
Deepesh G KuskoAustraliaAnna Fali NEW
Jeanfrancois H TollnerArgentinaIoni Bowcher PROPOSAL
Sinclair B NestleIndiaAmy Elsner NEW
Aika F CaudyUnited KingdomElwin Sharvill NEGOTIATION
Kadeem Z BriddickBrazilAsiya Javayant PROPOSAL
James N MacleadCanadaIoni Bowcher NEW
Chavez R RoysterCanadaStephen Shaw RENEWAL
Aditya K SaylorsGermanyAmy Elsner UNQUALIFIED
Aditya E GlickSpainElwin Sharvill UNQUALIFIED
Alejandro I NestleCanadaStephen Shaw RENEWAL
Mayumi Z AmigonItalyXuxue Feng NEGOTIATION

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