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 J DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Ivar X GauchoUnited KingdomStephen Shaw RENEWAL
Wickens Z CaudyIndiaAnna Fali RENEWAL
Jones J AmigonSpainAsiya Javayant UNQUALIFIED
Costa P GarufiUnited KingdomAnna Fali RENEWAL
Cody F StockhamRussiaIvan Magalhaes QUALIFIED
Ricardo M KuskoBrazilAnna Fali QUALIFIED
Aika C BowleyJapanAnna Fali RENEWAL
Deepesh X OstroskyAustraliaBernardo Dominic QUALIFIED
Salvatore D CaudyFranceAmy Elsner UNQUALIFIED
Ivar Z FollerBrazilElwin Sharvill UNQUALIFIED
Aruna B KuskoBrazilXuxue Feng UNQUALIFIED
David V SergiUnited KingdomElwin Sharvill PROPOSAL
Nicolas S RulapaughItalyOnyama Limba NEGOTIATION
Smith M VocelkaItalyBernardo Dominic UNQUALIFIED
James T OldroydArgentinaAmy Elsner RENEWAL
Jefferson W OstroskyRussiaElwin Sharvill RENEWAL
Arvin E FigeroaJapanBernardo Dominic NEGOTIATION
Costa A CaudyIndiaIvan Magalhaes RENEWAL
Arvin L FlosiItalyIvan Magalhaes NEGOTIATION
Silvio K MaletIndiaAnna Fali NEW
Izzy G VenereSpainStephen Shaw QUALIFIED
Julie B DarakjyIndiaAsiya Javayant PROPOSAL
Smith U NestleItalyAmy Elsner QUALIFIED
Adams A MaletGermanyIoni Bowcher NEGOTIATION
Maisha U AlbaresSpainIvan Magalhaes UNQUALIFIED
Ashley K RulapaughUnited KingdomIoni Bowcher QUALIFIED
Juan Y BologniaArgentinaIoni Bowcher NEGOTIATION
Tony K GillianSpainAmy Elsner QUALIFIED
Stacey E RutaAustraliaIoni Bowcher NEGOTIATION
Ashley U RutaCanadaAmy Elsner RENEWAL
Wickens F SchemmerJapanOnyama Limba QUALIFIED
David Z ButtItalyAnna Fali PROPOSAL
Jennifer P StensethBrazilOnyama Limba RENEWAL
Mayumi R KuskoUnited KingdomAmy Elsner QUALIFIED
Munro Q InouyeSpainXuxue Feng NEGOTIATION
Jeanfrancois H ShinkoIndiaElwin Sharvill NEGOTIATION
Salvatore O BologniaGermanyStephen Shaw NEGOTIATION
James J OstroskyRussiaAmy Elsner PROPOSAL
Mujtaba Z FigeroaRussiaAmy Elsner QUALIFIED
Leon C DilliardSpainElwin Sharvill NEGOTIATION
Aika N SlusarskiItalyElwin Sharvill RENEWAL
Emily W RutaCanadaIoni Bowcher PROPOSAL
Aruna E PoquetteItalyAsiya Javayant NEW
Costa Y MacleadItalyStephen Shaw PROPOSAL
Cody P WaycottItalyAsiya Javayant NEGOTIATION
Aditya M BriddickFranceAnna Fali QUALIFIED
Wickens U RutaIndiaAmy Elsner RENEWAL
Chavez U ChuiAustraliaBernardo Dominic RENEWAL
Aditya F NickaAustraliaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois X DoeAustraliaAnna Fali UNQUALIFIED
Clifford Q CaldareraIndiaIvan Magalhaes PROPOSAL
Isabel S AlbaresBrazilAmy Elsner NEW
Faith C DilliardUnited KingdomOnyama Limba NEGOTIATION
Jefferson D BowleyRussiaAnna Fali NEW
Aditya D OstroskySpainIvan Magalhaes PROPOSAL
Claire N OstroskyCanadaXuxue Feng QUALIFIED
Costa A StockhamFranceIvan Magalhaes NEW
Jeanfrancois G StockhamUnited KingdomOnyama Limba NEW
Ashley F MaletJapanAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith H WaycottUnited Kingdom2026-07-18Commercial Press RENEWAL33Ivan Magalhaes
1001Leon U MarrierCanada2026-06-25Rousseaux, Michael Esq QUALIFIED37Elwin Sharvill
1002Chavez L FigeroaItaly2026-07-10Feiner Bros RENEWAL71Onyama Limba
1003Francesco Q IturbideBrazil2026-07-18Morlong Associates UNQUALIFIED44Bernardo Dominic
1004Stacey J SchemmerSpain2026-06-30Buckley Miller Wright NEW78Onyama Limba
1005Aika Y StockhamCanada2026-06-29Truhlar And Truhlar Attys RENEWAL2Stephen Shaw
1006Munro P MarrierFrance2026-07-07Printing Dimensions UNQUALIFIED78Onyama Limba
1007Aruna X BriddickBrazil2026-06-26Morlong Associates PROPOSAL96Onyama Limba
1008Silvio K CampainItaly2026-07-05Rangoni Of Florence QUALIFIED5Asiya Javayant
1009Morrow C ChuiGermany2026-07-13Chapman, Ross E Esq NEW94Ioni Bowcher
1010Jones L CaldareraIndia2026-06-27Rousseaux, Michael Esq QUALIFIED78Xuxue Feng
1011Mayumi L PaprockiCanada2026-07-08Feltz Printing Service PROPOSAL69Bernardo Dominic
1012Jones I WieserUnited Kingdom2026-06-21Morlong Associates RENEWAL59Asiya Javayant
1013Aika U InouyeItaly2026-07-19Feltz Printing Service NEGOTIATION4Ivan Magalhaes
1014Ricardo W KolmetzGermany2026-07-09Morlong Associates PROPOSAL53Elwin Sharvill
1015Wickens I DilliardGermany2026-06-25Feltz Printing Service RENEWAL71Ioni Bowcher
1016Morrow S FlosiUnited Kingdom2026-06-24Rangoni Of Florence NEGOTIATION85Amy Elsner
1017Maria M TollnerSpain2026-07-02Feiner Bros NEW71Bernardo Dominic
1018Ivar U FerenczAustralia2026-07-06Rousseaux, Michael Esq UNQUALIFIED51Amy Elsner
1019Silvio V MaletCanada2026-06-26Feltz Printing Service PROPOSAL3Xuxue Feng
1020Misaki I InouyeUnited Kingdom2026-07-11Printing Dimensions RENEWAL30Ivan Magalhaes
1021Darci Z WhobreyFrance2026-07-08Rousseaux, Michael Esq PROPOSAL20Bernardo Dominic
1022Deepesh K KuskoRussia2026-07-04Chapman, Ross E Esq QUALIFIED54Ivan Magalhaes
1023Adams K GarufiGermany2026-07-13Rousseaux, Michael Esq PROPOSAL57Anna Fali
1024Kadeem U StensethCanada2026-07-18Printing Dimensions RENEWAL25Asiya Javayant
1025Jefferson U OstroskySpain2026-06-27Rangoni Of Florence UNQUALIFIED49Bernardo Dominic
1026Salvatore L DarakjyFrance2026-06-22Benton, John B Jr UNQUALIFIED82Ivan Magalhaes
1027Maisha Z StockhamJapan2026-06-28Truhlar And Truhlar Attys NEW22Ivan Magalhaes
1028Julie Z FollerSpain2026-07-20King, Christopher A Esq UNQUALIFIED95Xuxue Feng
1029Morrow Y BriddickRussia2026-07-17Rousseaux, Michael Esq NEW70Bernardo Dominic
1030Morrow M CampainAustralia2026-06-23King, Christopher A Esq NEW79Xuxue Feng
1031Darci A WieserFrance2026-07-09King, Christopher A Esq PROPOSAL16Stephen Shaw
1032Deepesh T RulapaughRussia2026-07-12Buckley Miller Wright NEGOTIATION14Elwin Sharvill
1033Salvatore Q WaycottItaly2026-07-13Chapman, Ross E Esq RENEWAL85Ivan Magalhaes
1034Alejandro U SchemmerRussia2026-07-01Chapman, Ross E Esq RENEWAL61Asiya Javayant
1035Clifford L WaycottFrance2026-07-19Printing Dimensions NEW57Xuxue Feng
1036Faith Y GillianJapan2026-07-16Rousseaux, Michael Esq RENEWAL37Bernardo Dominic
1037Emily K MarrierJapan2026-07-10Morlong Associates QUALIFIED9Ioni Bowcher
1038Wickens D SchemmerUnited Kingdom2026-07-05Chapman, Ross E Esq QUALIFIED75Xuxue Feng
1039Maisha D ChuiIndia2026-07-08Rangoni Of Florence NEW50Ioni Bowcher
1040Faith N FollerFrance2026-07-19Rousseaux, Michael Esq QUALIFIED51Onyama Limba
1041Arvin V StensethUnited Kingdom2026-06-21Dorl, James J Esq NEW76Stephen Shaw
1042Julie M GillianItaly2026-07-08Morlong Associates PROPOSAL81Xuxue Feng
1043David H StockhamAustralia2026-07-17Feltz Printing Service NEGOTIATION72Elwin Sharvill
1044Alejandro N VenereRussia2026-07-06Chapman, Ross E Esq NEGOTIATION59Ivan Magalhaes
1045Ricardo V RutaCanada2026-07-04Rousseaux, Michael Esq PROPOSAL60Onyama Limba
1046Aruna U GlickItaly2026-07-02Buckley Miller Wright NEGOTIATION54Ivan Magalhaes
1047Aditya K CampainFrance2026-07-12Benton, John B Jr NEGOTIATION65Onyama Limba
1048Aruna U SchemmerIndia2026-07-16King, Christopher A Esq RENEWAL56Ivan Magalhaes
1049Mayumi V BowleyCanada2026-06-26Buckley Miller Wright RENEWAL6Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Faith O ChuiAustraliaAnna Fali PROPOSAL
Deepesh B PaprockiIndiaAnna Fali UNQUALIFIED
Stacey V SergiAustraliaIvan Magalhaes PROPOSAL
Tony Q BologniaRussiaAmy Elsner PROPOSAL
Deepesh W BologniaArgentinaAsiya Javayant PROPOSAL
Jennifer T BologniaFranceAmy Elsner NEGOTIATION
Jones N OldroydFranceBernardo Dominic QUALIFIED
Kaitlin H PoquetteIndiaOnyama Limba NEW
James L KolmetzJapanAnna Fali PROPOSAL
Murillo U NickaUnited KingdomOnyama Limba NEW
Adams Y RutaBrazilAsiya Javayant UNQUALIFIED
Emily Z DilliardArgentinaXuxue Feng QUALIFIED
Kadeem D DarakjyRussiaAsiya Javayant PROPOSAL
Maria S RutaFranceBernardo Dominic NEGOTIATION
Julie P PoquetteAustraliaElwin Sharvill PROPOSAL
Rodrigues U IturbideJapanStephen Shaw NEW
Misaki U MacleadRussiaStephen Shaw NEGOTIATION
Jones A OldroydBrazilElwin Sharvill NEW
Cody H FigeroaUnited KingdomAnna Fali QUALIFIED
Mujtaba M BriddickFranceIoni Bowcher RENEWAL
Misaki P DilliardBrazilXuxue Feng NEGOTIATION
Mujtaba I GarufiJapanIvan Magalhaes NEGOTIATION
Cody J StensethAustraliaAsiya Javayant PROPOSAL
Tony C MarrierArgentinaAnna Fali NEW
Murillo A RoysterItalyOnyama Limba PROPOSAL
Aditya V KuskoJapanIvan Magalhaes NEW
Claire N VenereGermanyStephen Shaw QUALIFIED
Maria K ChuiIndiaIoni Bowcher NEGOTIATION
Kadeem W CampainRussiaElwin Sharvill RENEWAL
Tony N GlickUnited KingdomIvan Magalhaes NEW
Octavia B MarrierArgentinaBernardo Dominic NEGOTIATION
Greenwood B MaletCanadaAmy Elsner QUALIFIED
Adams M MarrierArgentinaAsiya Javayant QUALIFIED
James U TollnerAustraliaElwin Sharvill UNQUALIFIED
Costa I ShinkoRussiaOnyama Limba UNQUALIFIED
Mayumi O RoysterJapanOnyama Limba UNQUALIFIED
Nicolas P NickaUnited KingdomIoni Bowcher RENEWAL
Jefferson W ShinkoBrazilIvan Magalhaes NEGOTIATION
Leon H NickaUnited KingdomIoni Bowcher NEW
Adams M NestleRussiaAmy Elsner RENEWAL
Costa R GauchoJapanAnna Fali RENEWAL
Johnson F KolmetzJapanBernardo Dominic PROPOSAL
Silvio O VenereArgentinaStephen Shaw UNQUALIFIED
Chavez K ShinkoUnited KingdomXuxue Feng QUALIFIED
Costa J PaprockiIndiaElwin Sharvill NEW
Greenwood M MarrierIndiaAsiya Javayant RENEWAL
Costa H VenereAustraliaIoni Bowcher QUALIFIED
Leja C OldroydAustraliaElwin Sharvill QUALIFIED
David H DoeIndiaXuxue Feng NEGOTIATION
Maisha I DoeGermanyOnyama Limba NEGOTIATION
Frozen Columns
Name
Sinclair J Bolognia
David S Vocelka
Salvatore K Butt
Chavez B Butt
Rodrigues Y Saylors
Rodrigues X Flosi
Julie E Wieser
Munro F Flosi
Jennifer V Amigon
Rodrigues G Foller
Jennifer Z Whobrey
Cody N Butt
James W Maclead
Wickens Z Schemmer
Maria J Paprocki
Maria L Garufi
Antonio B Inouye
Julie Y Chui
Cody I Campain
Chavez D Glick
Nicolas C Royster
James Q Garufi
Alejandro A Schemmer
Julie J Poquette
Aika Y Waycott
Jennifer N Butt
Francesco M Figeroa
Murillo P Whobrey
Jennifer Z Nestle
Nicolas K Kolmetz
Adams U Kusko
Smith A Tollner
Jennifer L Caudy
Alejandro W Briddick
Isabel K Butt
Antonio R Marrier
Mayumi K Schemmer
David C Caudy
Jones G Stenseth
Morrow H Paprocki
Wickens I Ruta
Salvatore J Briddick
Francesco L Campain
Chavez C Slusarski
Maisha B Wieser
Clifford E Iturbide
Mujtaba U Stenseth
Morrow J Tollner
Izzy S Perin
Aditya N Campain
IdCountryDate
1000Brazil2026-06-30
1001Brazil2026-07-02
1002Germany2026-07-03
1003Russia2026-07-16
1004Russia2026-07-15
1005Russia2026-07-13
1006Australia2026-07-05
1007Spain2026-07-04
1008Brazil2026-07-07
1009Russia2026-06-30
1010France2026-06-29
1011United Kingdom2026-07-03
1012Argentina2026-07-14
1013Spain2026-07-01
1014France2026-06-24
1015Germany2026-07-14
1016Russia2026-07-04
1017Japan2026-06-26
1018United Kingdom2026-06-24
1019Argentina2026-06-27
1020Canada2026-07-17
1021Brazil2026-07-15
1022Italy2026-07-17
1023Germany2026-06-28
1024Argentina2026-06-22
1025Argentina2026-07-17
1026Spain2026-07-18
1027Italy2026-07-07
1028United Kingdom2026-07-10
1029Germany2026-07-19
1030Italy2026-07-12
1031Russia2026-06-25
1032United Kingdom2026-06-26
1033United Kingdom2026-06-24
1034Japan2026-06-30
1035Japan2026-07-01
1036India2026-07-12
1037Japan2026-07-05
1038Italy2026-07-06
1039Japan2026-06-29
1040Spain2026-07-01
1041Russia2026-07-15
1042Germany2026-07-18
1043Germany2026-07-15
1044India2026-07-15
1045Italy2026-07-07
1046India2026-07-17
1047Brazil2026-07-02
1048Brazil2026-07-19
1049Canada2026-06-21

On-Demand Data

NameIdCountryDate
Izzy B Royster1000India2026-07-16
Maria Y Amigon1001Japan2026-07-03
Julie Q Albares1002United Kingdom2026-06-29
Nicolas H Rulapaugh1003Australia2026-07-06
Murillo N Wieser1004Brazil2026-07-01
Tony L Butt1005India2026-07-17
Aika D Glick1006Italy2026-07-14
Chavez F Caldarera1007France2026-06-30
Greenwood R Bolognia1008Brazil2026-06-23
Antonio H Campain1009Argentina2026-07-16
Ivar P Vocelka1010United Kingdom2026-07-04
Ivar G Stenseth1011India2026-06-22
Emily H Gillian1012Australia2026-07-15
Mujtaba V Gaucho1013Canada2026-07-13
Murillo B Slusarski1014India2026-06-27
Octavia U Vocelka1015Japan2026-07-05
Arvin W Figeroa1016Germany2026-07-11
Izzy Z Kusko1017Australia2026-07-11
Jones F Caldarera1018Australia2026-07-14
Faith I Chui1019Italy2026-07-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin P MaletItalyOnyama Limba UNQUALIFIED
Misaki L PaprockiJapanIvan Magalhaes PROPOSAL
David T DilliardCanadaBernardo Dominic RENEWAL
David I SchemmerAustraliaBernardo Dominic NEGOTIATION
Rodrigues B ChuiFranceOnyama Limba RENEWAL
Misaki P BriddickRussiaIvan Magalhaes NEGOTIATION
Faith V CaudyArgentinaXuxue Feng QUALIFIED
Ashley O BologniaUnited KingdomAmy Elsner PROPOSAL
Costa F GauchoBrazilIoni Bowcher PROPOSAL
Silvio M KuskoCanadaXuxue Feng RENEWAL
Aika D VocelkaCanadaAsiya Javayant PROPOSAL
David K ChuiItalyAmy Elsner NEW
Maisha N WhobreyBrazilXuxue Feng PROPOSAL
James J NestleGermanyIoni Bowcher NEW
Faith C KolmetzAustraliaAmy Elsner NEW
Francesco B VocelkaItalyOnyama Limba RENEWAL
Deepesh M TollnerRussiaIvan Magalhaes NEW
Maria R WaycottIndiaOnyama Limba QUALIFIED
Sinclair O GarufiIndiaXuxue Feng QUALIFIED
Izzy N SlusarskiUnited KingdomStephen Shaw RENEWAL
Rodrigues M WhobreyIndiaXuxue Feng RENEWAL
Darci B PaprockiFranceIoni Bowcher NEGOTIATION
Claire X RimSpainElwin Sharvill UNQUALIFIED
Chavez H RoysterUnited KingdomXuxue Feng QUALIFIED
Greenwood K CampainCanadaAnna Fali UNQUALIFIED
Costa X WieserFranceOnyama Limba QUALIFIED
Juan M RulapaughCanadaBernardo Dominic RENEWAL
Murillo K ShinkoJapanOnyama Limba QUALIFIED
Smith V FerenczUnited KingdomIoni Bowcher RENEWAL
Darci X ChuiIndiaAnna Fali NEW
Isabel J RimBrazilElwin Sharvill UNQUALIFIED
Juan M PoquetteAustraliaStephen Shaw NEGOTIATION
Mayumi Q FigeroaBrazilAsiya Javayant RENEWAL
Maria Z StensethRussiaIoni Bowcher UNQUALIFIED
Adams M DarakjyRussiaStephen Shaw QUALIFIED
Mujtaba U MacleadUnited KingdomStephen Shaw NEGOTIATION
David T WaycottItalyXuxue Feng UNQUALIFIED
Johnson C ButtCanadaXuxue Feng NEW
Jones O GlickUnited KingdomAsiya Javayant RENEWAL
David E RulapaughRussiaIvan Magalhaes QUALIFIED

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