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
Misaki R WieserAustraliaElwin Sharvill NEW
Adams V OstroskyUnited KingdomXuxue Feng PROPOSAL
Jennifer A RoysterUnited KingdomAmy Elsner UNQUALIFIED
Jefferson L GlickUnited KingdomAnna Fali QUALIFIED
Juan L ChuiSpainBernardo Dominic RENEWAL
Ricardo Q VocelkaJapanOnyama Limba RENEWAL
Adams Z MorascaCanadaBernardo Dominic NEW
Smith J MacleadJapanBernardo Dominic QUALIFIED
Misaki P CampainSpainBernardo Dominic QUALIFIED
Wickens M IturbideCanadaOnyama Limba QUALIFIED
David N BologniaAustraliaBernardo Dominic RENEWAL
Alejandro A DarakjyCanadaAmy Elsner NEW
Cody A BowleyIndiaIvan Magalhaes NEGOTIATION
Mujtaba O FerenczCanadaIoni Bowcher NEW
Silvio C VocelkaGermanyOnyama Limba QUALIFIED
Francesco U StensethCanadaAmy Elsner RENEWAL
Darci E OldroydJapanStephen Shaw UNQUALIFIED
Aruna E WaycottCanadaOnyama Limba PROPOSAL
Octavia M NestleSpainAnna Fali PROPOSAL
Isabel A BowleyUnited KingdomElwin Sharvill QUALIFIED
Jennifer C RulapaughItalyStephen Shaw PROPOSAL
Jennifer B DilliardUnited KingdomIoni Bowcher RENEWAL
Greenwood L BriddickGermanyBernardo Dominic NEW
Misaki C CampainBrazilBernardo Dominic NEW
Costa M FollerItalyIoni Bowcher RENEWAL
Munro W SchemmerAustraliaBernardo Dominic UNQUALIFIED
Mujtaba Z MacleadUnited KingdomIoni Bowcher NEW
Tony J RimJapanStephen Shaw RENEWAL
Salvatore P NestleItalyIvan Magalhaes QUALIFIED
Tony J GillianRussiaAsiya Javayant NEW
Stacey Q VenereCanadaXuxue Feng UNQUALIFIED
Ricardo U VenereGermanyIoni Bowcher NEW
Jeanfrancois N BologniaArgentinaIoni Bowcher QUALIFIED
Costa V NestleRussiaIvan Magalhaes NEGOTIATION
Tony R ShinkoItalyAsiya Javayant UNQUALIFIED
Clifford I VocelkaBrazilStephen Shaw NEW
Tony V ChuiUnited KingdomAmy Elsner UNQUALIFIED
Izzy X FerenczAustraliaBernardo Dominic NEGOTIATION
Deepesh N FerenczAustraliaIvan Magalhaes UNQUALIFIED
Maisha T VocelkaIndiaOnyama Limba RENEWAL
Cody C SaylorsAustraliaIoni Bowcher QUALIFIED
Isabel N AlbaresIndiaElwin Sharvill NEW
Julie L CaudyArgentinaXuxue Feng NEW
Salvatore J SchemmerFranceAmy Elsner UNQUALIFIED
Morrow H ChuiCanadaXuxue Feng QUALIFIED
Sinclair B GauchoItalyXuxue Feng UNQUALIFIED
Murillo Z FlosiSpainOnyama Limba NEW
Nicolas Q SaylorsAustraliaAnna Fali NEGOTIATION
Faith O ShinkoIndiaIvan Magalhaes QUALIFIED
Kaitlin X ButtJapanXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire C PaprockiFranceAnna Fali RENEWAL
Rodrigues J ChuiArgentinaBernardo Dominic UNQUALIFIED
Mayumi I FollerCanadaBernardo Dominic RENEWAL
Aika N RulapaughSpainAmy Elsner NEGOTIATION
Cody S StockhamSpainStephen Shaw PROPOSAL
Isabel J KuskoJapanIvan Magalhaes UNQUALIFIED
Morrow E MaletCanadaAnna Fali NEGOTIATION
Greenwood Y StensethSpainOnyama Limba NEW
Deepesh N ShinkoAustraliaAsiya Javayant NEGOTIATION
Johnson P TollnerJapanElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson F MaletAustralia2026-06-20Commercial Press UNQUALIFIED36Stephen Shaw
1001David Q BriddickItaly2026-06-21Feltz Printing Service RENEWAL97Amy Elsner
1002Ivar B PerinAustralia2026-06-22Buckley Miller Wright PROPOSAL39Amy Elsner
1003Tony T MaletAustralia2026-06-20Commercial Press NEW33Asiya Javayant
1004Kaitlin C AlbaresFrance2026-06-19Rangoni Of Florence UNQUALIFIED15Amy Elsner
1005Cody C NestleIndia2026-06-26Printing Dimensions PROPOSAL9Asiya Javayant
1006Smith Q BowleyBrazil2026-06-20Chemel, James L Cpa NEW82Ioni Bowcher
1007Salvatore G WhobreyGermany2026-07-06Morlong Associates UNQUALIFIED3Elwin Sharvill
1008Tony B StockhamCanada2026-07-04Dorl, James J Esq UNQUALIFIED83Bernardo Dominic
1009Munro U GarufiJapan2026-07-03Commercial Press QUALIFIED93Anna Fali
1010Jennifer J FigeroaIndia2026-07-05Commercial Press UNQUALIFIED90Onyama Limba
1011Darci T MaletArgentina2026-07-15Rousseaux, Michael Esq QUALIFIED52Stephen Shaw
1012Greenwood Z RutaBrazil2026-06-28Rousseaux, Michael Esq RENEWAL62Stephen Shaw
1013Greenwood K WieserFrance2026-07-06Benton, John B Jr UNQUALIFIED33Xuxue Feng
1014Rodrigues A CaldareraSpain2026-06-17Benton, John B Jr UNQUALIFIED82Stephen Shaw
1015Clifford M KuskoRussia2026-06-29Buckley Miller Wright NEW45Elwin Sharvill
1016Chavez H GillianSpain2026-07-04Feiner Bros NEW4Onyama Limba
1017Kadeem U TollnerFrance2026-06-24King, Christopher A Esq UNQUALIFIED64Asiya Javayant
1018Costa V PoquetteBrazil2026-06-23Feiner Bros QUALIFIED64Ioni Bowcher
1019David Z FigeroaCanada2026-07-13King, Christopher A Esq UNQUALIFIED1Stephen Shaw
1020Arvin N OldroydAustralia2026-06-16Truhlar And Truhlar Attys NEGOTIATION78Ioni Bowcher
1021Munro O KuskoBrazil2026-06-26Feltz Printing Service RENEWAL55Ivan Magalhaes
1022Costa L DarakjyGermany2026-07-06Dorl, James J Esq QUALIFIED0Anna Fali
1023Maria I PerinRussia2026-06-19King, Christopher A Esq UNQUALIFIED69Xuxue Feng
1024Ashley T FollerFrance2026-07-14Chemel, James L Cpa RENEWAL74Asiya Javayant
1025Faith A MorascaAustralia2026-06-26Chapman, Ross E Esq UNQUALIFIED50Bernardo Dominic
1026Jefferson N StensethBrazil2026-07-12King, Christopher A Esq NEW57Elwin Sharvill
1027Ashley F KuskoRussia2026-06-28Dorl, James J Esq PROPOSAL62Stephen Shaw
1028Ricardo Q VocelkaBrazil2026-07-10Commercial Press NEGOTIATION98Xuxue Feng
1029Mayumi R SchemmerRussia2026-07-15Printing Dimensions NEGOTIATION10Onyama Limba
1030Sinclair W WaycottGermany2026-07-12Buckley Miller Wright RENEWAL89Ivan Magalhaes
1031Rodrigues V RutaBrazil2026-07-13Chemel, James L Cpa QUALIFIED41Xuxue Feng
1032Wickens W BologniaItaly2026-06-20Feiner Bros NEW95Ivan Magalhaes
1033Misaki W PoquetteCanada2026-07-06King, Christopher A Esq NEW70Bernardo Dominic
1034Chavez P GlickAustralia2026-06-30Chanay, Jeffrey A Esq PROPOSAL98Ivan Magalhaes
1035Ashley G FlosiRussia2026-06-25Buckley Miller Wright PROPOSAL47Xuxue Feng
1036Nicolas K StockhamIndia2026-07-09Benton, John B Jr NEW86Ivan Magalhaes
1037Faith N MarrierGermany2026-06-28Feltz Printing Service RENEWAL23Amy Elsner
1038Emily E GillianRussia2026-06-22Chapman, Ross E Esq UNQUALIFIED56Amy Elsner
1039Wickens L OstroskyArgentina2026-06-29Feiner Bros NEGOTIATION79Asiya Javayant
1040Costa S WhobreyGermany2026-06-19Truhlar And Truhlar Attys NEW53Onyama Limba
1041David I CampainSpain2026-06-23Chemel, James L Cpa QUALIFIED55Ivan Magalhaes
1042Juan H WaycottUnited Kingdom2026-07-03Benton, John B Jr RENEWAL69Amy Elsner
1043Deepesh G MarrierBrazil2026-07-10King, Christopher A Esq NEGOTIATION42Anna Fali
1044Jennifer Q RulapaughRussia2026-07-12King, Christopher A Esq RENEWAL99Elwin Sharvill
1045Jennifer K GillianBrazil2026-06-20Chapman, Ross E Esq NEGOTIATION23Elwin Sharvill
1046Aruna B FigeroaGermany2026-06-23Chemel, James L Cpa RENEWAL33Asiya Javayant
1047Darci E RimAustralia2026-06-23Benton, John B Jr UNQUALIFIED21Anna Fali
1048Juan S MacleadGermany2026-07-15Chapman, Ross E Esq NEW93Bernardo Dominic
1049Wickens B DilliardAustralia2026-06-16Morlong Associates QUALIFIED83Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Emily P RulapaughBrazilAnna Fali QUALIFIED
Julie U ShinkoSpainAsiya Javayant QUALIFIED
Octavia C TollnerItalyIoni Bowcher UNQUALIFIED
Deepesh C AmigonGermanyElwin Sharvill UNQUALIFIED
Clifford C MaletBrazilAmy Elsner NEGOTIATION
Isabel R OstroskySpainIvan Magalhaes UNQUALIFIED
Munro P FollerUnited KingdomIvan Magalhaes NEGOTIATION
Nicolas Q NestleArgentinaStephen Shaw RENEWAL
Morrow S SlusarskiUnited KingdomAmy Elsner UNQUALIFIED
Antonio X StockhamFranceStephen Shaw NEGOTIATION
Jefferson A OldroydGermanyAsiya Javayant RENEWAL
Ricardo P WieserArgentinaElwin Sharvill PROPOSAL
Izzy C MorascaUnited KingdomAmy Elsner UNQUALIFIED
Julie P ButtCanadaAmy Elsner NEGOTIATION
Murillo L VenereItalyOnyama Limba QUALIFIED
Kaitlin P SchemmerItalyStephen Shaw UNQUALIFIED
Jennifer Q SlusarskiBrazilOnyama Limba PROPOSAL
Maria Y PoquetteUnited KingdomIvan Magalhaes RENEWAL
Wickens R DilliardBrazilIvan Magalhaes NEW
Morrow Z VocelkaGermanyAmy Elsner NEW
Arvin J StensethBrazilXuxue Feng RENEWAL
Chavez N WaycottUnited KingdomBernardo Dominic NEW
Tony F RoysterFranceElwin Sharvill UNQUALIFIED
Morrow C OstroskySpainStephen Shaw NEGOTIATION
Emily T BowleySpainAsiya Javayant RENEWAL
Deepesh Z WhobreyIndiaAnna Fali UNQUALIFIED
Murillo Y AlbaresGermanyOnyama Limba PROPOSAL
Ashley L WhobreyUnited KingdomBernardo Dominic QUALIFIED
Aditya W BowleyGermanyBernardo Dominic UNQUALIFIED
Maisha M WieserAustraliaXuxue Feng NEW
Sinclair H GauchoRussiaAsiya Javayant NEW
Darci O DoeJapanElwin Sharvill QUALIFIED
Ashley R RutaItalyAsiya Javayant PROPOSAL
Rodrigues V CampainUnited KingdomAmy Elsner NEW
Chavez K FerenczGermanyElwin Sharvill QUALIFIED
Stacey B BriddickRussiaXuxue Feng QUALIFIED
Maisha X AlbaresIndiaXuxue Feng UNQUALIFIED
Silvio C InouyeFranceStephen Shaw PROPOSAL
Kadeem O FollerUnited KingdomIvan Magalhaes UNQUALIFIED
Jones J GlickUnited KingdomIoni Bowcher UNQUALIFIED
Clifford R CampainIndiaBernardo Dominic RENEWAL
Antonio R NickaArgentinaXuxue Feng RENEWAL
Costa S DilliardBrazilOnyama Limba RENEWAL
Isabel Q NestleJapanIvan Magalhaes RENEWAL
Tony S OstroskySpainAnna Fali NEW
Aditya H RimRussiaIvan Magalhaes QUALIFIED
Deepesh X DarakjySpainElwin Sharvill RENEWAL
Salvatore S DoeAustraliaIvan Magalhaes NEW
Jones A WhobreySpainXuxue Feng NEW
Faith R WieserBrazilXuxue Feng NEW
Frozen Columns
Name
Izzy H Whobrey
Costa N Iturbide
Greenwood Q Inouye
Smith S Perin
Julie H Oldroyd
Tony F Albares
Clifford Q Stenseth
Ashley F Maclead
Jefferson R Rulapaugh
Deepesh I Sergi
Darci N Chui
David I Dilliard
David L Darakjy
Aika I Campain
Claire H Rulapaugh
Cody O Tollner
Kaitlin X Nestle
Sinclair Y Iturbide
Cody L Inouye
Aika I Royster
David T Stockham
Claire C Iturbide
Maria J Caudy
Alejandro L Dilliard
Francesco H Ostrosky
Morrow U Caudy
Mujtaba Q Rim
Leon Q Venere
Murillo P Venere
Nicolas S Malet
Leon O Glick
Julie Y Doe
Wickens O Paprocki
Kaitlin Q Slusarski
Wickens G Stockham
Silvio Y Butt
Juan S Vocelka
Kadeem Q Gillian
Adams F Venere
Smith J Glick
James R Nicka
Ashley H Tollner
Wickens Q Briddick
James J Bowley
Darci T Chui
Izzy S Figeroa
Murillo S Foller
Kadeem C Ruta
Mujtaba Z Poquette
Smith E Marrier
IdCountryDate
1000Brazil2026-06-25
1001Australia2026-07-01
1002Japan2026-07-01
1003France2026-06-22
1004India2026-06-16
1005France2026-06-19
1006Germany2026-07-12
1007United Kingdom2026-07-08
1008Italy2026-06-27
1009United Kingdom2026-06-23
1010Japan2026-06-16
1011United Kingdom2026-06-17
1012Spain2026-07-14
1013Canada2026-07-05
1014France2026-06-26
1015Argentina2026-06-19
1016United Kingdom2026-07-09
1017Canada2026-06-16
1018Canada2026-06-25
1019Argentina2026-06-28
1020Russia2026-07-10
1021Brazil2026-07-03
1022Japan2026-07-12
1023India2026-07-03
1024Russia2026-07-06
1025Argentina2026-07-14
1026Japan2026-06-19
1027United Kingdom2026-07-01
1028Argentina2026-06-18
1029India2026-06-16
1030Japan2026-06-26
1031Australia2026-07-15
1032United Kingdom2026-06-30
1033Russia2026-07-13
1034Australia2026-06-23
1035Argentina2026-07-11
1036Canada2026-06-29
1037Russia2026-07-14
1038United Kingdom2026-07-01
1039India2026-07-05
1040Australia2026-07-13
1041Italy2026-06-23
1042Brazil2026-07-03
1043Argentina2026-06-29
1044Japan2026-06-30
1045Russia2026-06-26
1046Japan2026-07-09
1047Argentina2026-07-01
1048Brazil2026-06-20
1049India2026-06-17

On-Demand Data

NameIdCountryDate
Johnson J Royster1000Argentina2026-06-24
Adams E Garufi1001Argentina2026-07-02
Alejandro D Paprocki1002Argentina2026-06-21
Darci B Glick1003Spain2026-06-26
Cody S Malet1004Italy2026-07-05
Kadeem U Foller1005India2026-06-20
Johnson J Nestle1006Canada2026-07-04
Ricardo U Vocelka1007France2026-06-21
Smith W Caudy1008Germany2026-06-28
Darci X Butt1009Russia2026-06-25
Alejandro G Wieser1010Spain2026-07-11
Misaki P Marrier1011Japan2026-06-29
Deepesh R Malet1012Russia2026-06-22
David C Rulapaugh1013Australia2026-06-25
David W Butt1014Brazil2026-06-23
Aditya D Wieser1015Spain2026-06-16
Kaitlin G Caudy1016United Kingdom2026-06-28
Jones N Paprocki1017Russia2026-06-25
Jeanfrancois X Amigon1018Italy2026-06-28
Julie Q Figeroa1019Canada2026-06-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez N AmigonSpainStephen Shaw UNQUALIFIED
Cody I RimUnited KingdomOnyama Limba NEGOTIATION
Tony K GlickGermanyXuxue Feng PROPOSAL
Alejandro T ChuiUnited KingdomIoni Bowcher PROPOSAL
Maria U FerenczIndiaAnna Fali NEW
Salvatore L NestleRussiaXuxue Feng PROPOSAL
Murillo S MaletGermanyAmy Elsner RENEWAL
Faith I NestleJapanIoni Bowcher NEGOTIATION
Aditya B TollnerJapanElwin Sharvill RENEWAL
Greenwood P BologniaIndiaAmy Elsner NEGOTIATION
Jeanfrancois V KolmetzItalyIvan Magalhaes QUALIFIED
Arvin G StensethJapanAsiya Javayant NEW
Jeanfrancois G KuskoRussiaBernardo Dominic UNQUALIFIED
Costa K KuskoCanadaElwin Sharvill QUALIFIED
Ivar C SchemmerAustraliaIvan Magalhaes PROPOSAL
David E CampainIndiaAsiya Javayant UNQUALIFIED
James D TollnerRussiaOnyama Limba PROPOSAL
Kadeem N StensethArgentinaXuxue Feng PROPOSAL
Jeanfrancois U BowleyFranceOnyama Limba NEW
Ivar M ShinkoRussiaOnyama Limba NEGOTIATION
Faith J WhobreyAustraliaXuxue Feng UNQUALIFIED
Alejandro I RimBrazilIvan Magalhaes NEW
Nicolas J MarrierFranceAnna Fali NEW
Jefferson O PaprockiJapanIoni Bowcher NEGOTIATION
Izzy D KolmetzGermanyAsiya Javayant NEW
Izzy N MarrierJapanStephen Shaw NEW
Claire V OstroskyUnited KingdomIvan Magalhaes UNQUALIFIED
David M OstroskyBrazilIvan Magalhaes NEW
Morrow R CaudyAustraliaElwin Sharvill QUALIFIED
Emily W BriddickArgentinaAnna Fali NEW
Jennifer X StensethRussiaElwin Sharvill QUALIFIED
David Z DilliardUnited KingdomAsiya Javayant PROPOSAL
Arvin K OstroskyJapanStephen Shaw RENEWAL
Aruna I SaylorsBrazilAmy Elsner NEGOTIATION
Salvatore X CaudyGermanyIvan Magalhaes NEW
Arvin V ButtJapanAnna Fali RENEWAL
Jones D WhobreyUnited KingdomAnna Fali UNQUALIFIED
Mayumi D CaldareraBrazilAmy Elsner NEW
Maria V VenereFranceIvan Magalhaes NEW
Izzy A GlickRussiaIoni Bowcher 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>