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
Aika F ButtItalyAnna Fali PROPOSAL
Jones M FigeroaItalyAnna Fali UNQUALIFIED
Costa F NickaFranceElwin Sharvill PROPOSAL
Rodrigues O InouyeIndiaStephen Shaw NEW
Munro F CampainGermanyXuxue Feng RENEWAL
Ivar C ChuiItalyIvan Magalhaes QUALIFIED
Maria Q StockhamSpainAmy Elsner NEW
Antonio O StensethFranceBernardo Dominic NEGOTIATION
Adams R BriddickUnited KingdomStephen Shaw NEW
David G DilliardSpainElwin Sharvill UNQUALIFIED
Isabel I CaudyRussiaAsiya Javayant RENEWAL
Izzy G ChuiGermanyAsiya Javayant NEW
Clifford E GarufiAustraliaXuxue Feng PROPOSAL
Jefferson A FlosiUnited KingdomStephen Shaw NEW
Jones C KolmetzIndiaOnyama Limba PROPOSAL
Antonio Z BowleyJapanBernardo Dominic NEW
Antonio W KuskoRussiaOnyama Limba NEW
Kadeem I GlickBrazilXuxue Feng RENEWAL
Clifford G AlbaresIndiaBernardo Dominic UNQUALIFIED
Francesco I StensethAustraliaElwin Sharvill PROPOSAL
Murillo Y RoysterFranceXuxue Feng PROPOSAL
Leja H WaycottItalyElwin Sharvill QUALIFIED
Silvio G BowleyCanadaAnna Fali RENEWAL
Jennifer T GarufiFranceAsiya Javayant RENEWAL
Jefferson U ShinkoBrazilAmy Elsner NEW
Tony D BowleyAustraliaStephen Shaw NEGOTIATION
Ricardo M FollerSpainXuxue Feng QUALIFIED
Tony G SergiItalyIvan Magalhaes PROPOSAL
Leon I SaylorsArgentinaStephen Shaw NEGOTIATION
Francesco Z CampainGermanyIoni Bowcher RENEWAL
Rodrigues L OstroskyRussiaIvan Magalhaes NEW
Claire R IturbideRussiaBernardo Dominic UNQUALIFIED
Jones K RutaAustraliaAnna Fali PROPOSAL
Aditya Y MacleadAustraliaAmy Elsner NEW
Ivar W GillianIndiaAnna Fali PROPOSAL
Chavez O MacleadIndiaAmy Elsner RENEWAL
Ricardo F RoysterJapanStephen Shaw NEGOTIATION
Costa M MacleadArgentinaAmy Elsner NEGOTIATION
Ashley N TollnerSpainIvan Magalhaes NEGOTIATION
Sinclair D MacleadAustraliaStephen Shaw PROPOSAL
Claire L GauchoGermanyXuxue Feng NEGOTIATION
Misaki C WhobreyItalyAmy Elsner NEW
Adams P MaletArgentinaIvan Magalhaes QUALIFIED
Tony G RutaCanadaIoni Bowcher UNQUALIFIED
Jennifer V VenereAustraliaIoni Bowcher NEGOTIATION
Juan I StensethArgentinaXuxue Feng QUALIFIED
Cody Y NestleArgentinaStephen Shaw NEW
James W FlosiFranceIoni Bowcher PROPOSAL
Cody M IturbideCanadaAnna Fali RENEWAL
Stacey P VenereArgentinaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Cody H DarakjyArgentinaAsiya Javayant NEGOTIATION
Maria E MacleadBrazilXuxue Feng UNQUALIFIED
Mayumi K WieserCanadaAnna Fali RENEWAL
Darci Y MorascaAustraliaIvan Magalhaes RENEWAL
Mujtaba O StockhamUnited KingdomIoni Bowcher UNQUALIFIED
Francesco X BriddickAustraliaStephen Shaw NEGOTIATION
James D AmigonJapanXuxue Feng QUALIFIED
Darci U ButtItalyAmy Elsner UNQUALIFIED
Rodrigues L ShinkoCanadaAmy Elsner RENEWAL
Jones A PerinCanadaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem O SergiIndia2026-08-03Morlong Associates PROPOSAL37Onyama Limba
1001Smith M GauchoJapan2026-07-25Feiner Bros QUALIFIED17Asiya Javayant
1002Aruna L SergiRussia2026-07-26Feiner Bros RENEWAL74Amy Elsner
1003Nicolas Y ButtArgentina2026-07-29Truhlar And Truhlar Attys UNQUALIFIED82Asiya Javayant
1004Juan P PoquetteRussia2026-08-02Feltz Printing Service PROPOSAL21Ivan Magalhaes
1005Leja F StockhamArgentina2026-08-19Morlong Associates RENEWAL86Ioni Bowcher
1006Morrow J BologniaItaly2026-08-03Truhlar And Truhlar Attys QUALIFIED64Asiya Javayant
1007Silvio U ChuiBrazil2026-08-11Benton, John B Jr QUALIFIED30Xuxue Feng
1008Nicolas W BologniaGermany2026-08-08Chapman, Ross E Esq QUALIFIED34Ioni Bowcher
1009Leja O GarufiGermany2026-08-15Rangoni Of Florence PROPOSAL90Ivan Magalhaes
1010Emily S FerenczFrance2026-08-13Feltz Printing Service UNQUALIFIED23Asiya Javayant
1011Clifford I OstroskyBrazil2026-08-13Buckley Miller Wright NEW5Elwin Sharvill
1012Aika X OldroydArgentina2026-08-15Rangoni Of Florence NEW29Onyama Limba
1013James E PaprockiFrance2026-08-14Rangoni Of Florence NEW30Onyama Limba
1014Jefferson C RutaCanada2026-07-23Rousseaux, Michael Esq RENEWAL79Bernardo Dominic
1015Antonio A MacleadIndia2026-08-04Feltz Printing Service PROPOSAL25Stephen Shaw
1016Costa Y IturbideItaly2026-08-16Rousseaux, Michael Esq RENEWAL69Elwin Sharvill
1017Ricardo O KolmetzIndia2026-07-26Chapman, Ross E Esq UNQUALIFIED15Bernardo Dominic
1018Tony E IturbideBrazil2026-07-27Rangoni Of Florence NEW84Asiya Javayant
1019Murillo U RulapaughArgentina2026-07-28Feiner Bros NEW69Onyama Limba
1020Juan V AmigonIndia2026-08-13Chemel, James L Cpa QUALIFIED69Bernardo Dominic
1021Ashley R FollerCanada2026-08-06Buckley Miller Wright NEW42Ioni Bowcher
1022Aditya K ShinkoIndia2026-08-05Commercial Press NEW21Xuxue Feng
1023Ashley X FigeroaCanada2026-08-17Truhlar And Truhlar Attys NEGOTIATION43Ivan Magalhaes
1024Alejandro U KuskoCanada2026-08-08Chemel, James L Cpa NEW51Amy Elsner
1025James P IturbideUnited Kingdom2026-08-08Dorl, James J Esq QUALIFIED78Ivan Magalhaes
1026Aika E RutaCanada2026-08-17Rangoni Of Florence UNQUALIFIED29Amy Elsner
1027Murillo F CaudyCanada2026-08-21Rousseaux, Michael Esq UNQUALIFIED85Bernardo Dominic
1028Smith O CaudyIndia2026-08-14Chapman, Ross E Esq UNQUALIFIED75Elwin Sharvill
1029Faith J ButtGermany2026-08-03Buckley Miller Wright QUALIFIED3Bernardo Dominic
1030Maria V GillianSpain2026-08-16Feltz Printing Service QUALIFIED44Stephen Shaw
1031Aika H DoeBrazil2026-08-03Chapman, Ross E Esq PROPOSAL28Onyama Limba
1032Jones N InouyeCanada2026-08-18Chapman, Ross E Esq RENEWAL55Onyama Limba
1033Emily N InouyeAustralia2026-08-10Morlong Associates PROPOSAL6Stephen Shaw
1034Wickens Q SchemmerArgentina2026-08-15Chanay, Jeffrey A Esq QUALIFIED9Xuxue Feng
1035Alejandro Z BriddickAustralia2026-08-06Chemel, James L Cpa RENEWAL92Ioni Bowcher
1036Emily T NestleIndia2026-08-09Feltz Printing Service PROPOSAL39Bernardo Dominic
1037Jeanfrancois D SchemmerFrance2026-08-11Rangoni Of Florence PROPOSAL6Amy Elsner
1038Murillo R BowleyRussia2026-07-27Truhlar And Truhlar Attys QUALIFIED81Asiya Javayant
1039Antonio M GauchoIndia2026-08-07Commercial Press NEGOTIATION61Stephen Shaw
1040Aika C RimRussia2026-07-26Commercial Press RENEWAL23Asiya Javayant
1041Isabel U ChuiBrazil2026-08-16Chapman, Ross E Esq PROPOSAL54Xuxue Feng
1042Maria Q GauchoJapan2026-08-21Chemel, James L Cpa UNQUALIFIED6Onyama Limba
1043Julie Y SlusarskiCanada2026-07-27Benton, John B Jr UNQUALIFIED35Anna Fali
1044Clifford H KolmetzJapan2026-08-20Commercial Press RENEWAL66Asiya Javayant
1045Jennifer V RimSpain2026-08-02Commercial Press NEW77Bernardo Dominic
1046Arvin R ShinkoFrance2026-08-16Rangoni Of Florence PROPOSAL81Ivan Magalhaes
1047Sinclair A BologniaAustralia2026-08-14Rangoni Of Florence NEW19Xuxue Feng
1048Greenwood N MarrierAustralia2026-07-27Feltz Printing Service UNQUALIFIED3Onyama Limba
1049Mayumi D GlickFrance2026-08-08Rousseaux, Michael Esq PROPOSAL93Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Sinclair I VenereRussiaIvan Magalhaes NEW
Cody J RoysterSpainIoni Bowcher QUALIFIED
Juan L FollerUnited KingdomStephen Shaw UNQUALIFIED
Kaitlin D KolmetzArgentinaBernardo Dominic UNQUALIFIED
Juan W StensethGermanyElwin Sharvill NEW
Adams Y CampainGermanyAsiya Javayant UNQUALIFIED
Silvio V RimArgentinaAsiya Javayant PROPOSAL
Ricardo G DilliardSpainBernardo Dominic UNQUALIFIED
Clifford H TollnerGermanyStephen Shaw PROPOSAL
Arvin I IturbideBrazilAmy Elsner PROPOSAL
Adams Y VocelkaIndiaAmy Elsner NEW
David E BriddickAustraliaStephen Shaw NEGOTIATION
Maisha I ButtIndiaIoni Bowcher UNQUALIFIED
James N SchemmerGermanyAsiya Javayant RENEWAL
Wickens E KolmetzCanadaElwin Sharvill PROPOSAL
Morrow M BologniaAustraliaXuxue Feng NEGOTIATION
Kadeem E WaycottCanadaStephen Shaw NEW
Salvatore L ChuiAustraliaBernardo Dominic QUALIFIED
Francesco C CaldareraSpainXuxue Feng UNQUALIFIED
Munro B WieserBrazilStephen Shaw NEGOTIATION
Munro M AmigonAustraliaAsiya Javayant QUALIFIED
Smith O SchemmerRussiaIvan Magalhaes NEGOTIATION
Costa E StockhamCanadaIvan Magalhaes NEGOTIATION
David F DoeGermanyStephen Shaw NEW
Morrow U MarrierUnited KingdomAmy Elsner RENEWAL
Antonio X SaylorsAustraliaAmy Elsner PROPOSAL
Jennifer F GauchoRussiaAsiya Javayant QUALIFIED
Wickens Z NestleArgentinaElwin Sharvill NEW
Juan S StensethUnited KingdomStephen Shaw QUALIFIED
Maria G RoysterRussiaBernardo Dominic NEGOTIATION
Emily I FerenczAustraliaAmy Elsner PROPOSAL
Smith V MaletFranceBernardo Dominic RENEWAL
Tony A SlusarskiFranceAnna Fali RENEWAL
Salvatore F InouyeArgentinaAnna Fali PROPOSAL
Jones I MacleadAustraliaOnyama Limba UNQUALIFIED
Octavia K WieserBrazilIvan Magalhaes NEW
Johnson H MorascaUnited KingdomAsiya Javayant NEW
Salvatore G MaletAustraliaAmy Elsner QUALIFIED
Deepesh B VenereIndiaIvan Magalhaes RENEWAL
Antonio F NestleRussiaAsiya Javayant PROPOSAL
Antonio R MorascaUnited KingdomAsiya Javayant NEW
Smith D PerinUnited KingdomIvan Magalhaes PROPOSAL
Stacey C FerenczGermanyOnyama Limba RENEWAL
Stacey O GillianBrazilIoni Bowcher RENEWAL
Aditya N VenereJapanIoni Bowcher PROPOSAL
Darci G OstroskyBrazilStephen Shaw UNQUALIFIED
Ashley W ChuiAustraliaXuxue Feng NEGOTIATION
Wickens U GauchoBrazilAsiya Javayant QUALIFIED
Emily H BowleyItalyAmy Elsner UNQUALIFIED
Greenwood B GarufiGermanyAnna Fali NEW
Frozen Columns
Name
Aruna F Caudy
Chavez R Stockham
Kadeem A Kusko
David H Ferencz
Leja Y Doe
Chavez L Albares
Francesco Z Kolmetz
Isabel K Kusko
Jennifer X Flosi
Misaki O Bolognia
Leon R Ruta
Adams W Kusko
Munro K Gaucho
Wickens E Tollner
Octavia V Ruta
Faith V Inouye
Octavia L Iturbide
Arvin D Poquette
Mujtaba A Stenseth
Octavia H Whobrey
Clifford Q Royster
Munro G Doe
Cody A Flosi
James H Foller
Morrow A Gillian
Kaitlin M Perin
Claire W Butt
Murillo R Slusarski
Sinclair X Saylors
James C Inouye
Claire A Caudy
Chavez O Flosi
Costa F Caldarera
Ashley Y Malet
Octavia C Marrier
Ashley U Darakjy
Murillo U Doe
Darci H Dilliard
Isabel L Albares
Tony Z Schemmer
Arvin A Butt
Wickens X Poquette
Sinclair G Nestle
Tony N Oldroyd
Jeanfrancois N Vocelka
Nicolas J Stockham
Munro Y Gaucho
Jennifer C Rim
Jefferson T Royster
Sinclair Y Flosi
IdCountryDate
1000Japan2026-08-19
1001France2026-07-26
1002Russia2026-07-23
1003Argentina2026-08-16
1004Canada2026-07-23
1005Spain2026-08-06
1006Russia2026-08-20
1007Japan2026-08-21
1008Germany2026-07-24
1009Russia2026-08-07
1010Australia2026-07-23
1011United Kingdom2026-08-19
1012Japan2026-08-03
1013Germany2026-07-25
1014Italy2026-08-14
1015Italy2026-08-10
1016Spain2026-08-12
1017India2026-07-26
1018Russia2026-08-07
1019United Kingdom2026-08-01
1020Canada2026-08-15
1021Australia2026-08-19
1022Brazil2026-08-03
1023United Kingdom2026-07-26
1024Argentina2026-08-14
1025Russia2026-08-15
1026France2026-08-18
1027Italy2026-08-03
1028Germany2026-08-14
1029Spain2026-08-06
1030Argentina2026-07-23
1031Canada2026-08-06
1032Italy2026-07-23
1033Japan2026-08-01
1034Brazil2026-07-31
1035Japan2026-08-15
1036Brazil2026-08-16
1037Australia2026-08-05
1038Brazil2026-07-26
1039Italy2026-08-14
1040Spain2026-08-15
1041Japan2026-08-02
1042Brazil2026-08-21
1043Australia2026-07-30
1044Spain2026-08-04
1045Argentina2026-08-09
1046Canada2026-08-13
1047Italy2026-07-25
1048Russia2026-08-03
1049Russia2026-08-07

On-Demand Data

NameIdCountryDate
Jones L Amigon1000Germany2026-07-30
Arvin I Morasca1001India2026-08-20
Maria P Nicka1002Italy2026-08-13
Stacey J Dilliard1003France2026-08-18
Silvio O Stockham1004India2026-07-29
Octavia X Marrier1005Brazil2026-07-29
Ivar N Rim1006Australia2026-08-02
Sinclair I Venere1007Japan2026-08-11
Silvio X Caudy1008France2026-08-05
Maria K Kolmetz1009Argentina2026-08-08
Francesco T Ruta1010Argentina2026-08-11
Kaitlin V Schemmer1011Spain2026-07-30
Stacey B Oldroyd1012Spain2026-08-21
Misaki J Rulapaugh1013Argentina2026-07-31
Nicolas A Caldarera1014India2026-08-09
Adams X Kusko1015Japan2026-08-01
Faith S Rim1016United Kingdom2026-08-20
Francesco T Butt1017Spain2026-08-06
Mayumi A Albares1018Spain2026-07-30
Wickens D Amigon1019United Kingdom2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha D MarrierAustraliaElwin Sharvill QUALIFIED
Juan X VenereAustraliaAnna Fali NEGOTIATION
Maria A FollerCanadaBernardo Dominic QUALIFIED
Maisha F CampainJapanAsiya Javayant NEGOTIATION
Faith Z OstroskyIndiaIoni Bowcher QUALIFIED
Tony A RimJapanIoni Bowcher RENEWAL
Wickens F DilliardJapanXuxue Feng NEW
Aditya L FerenczArgentinaAmy Elsner RENEWAL
Octavia K BriddickAustraliaAnna Fali PROPOSAL
Murillo V VocelkaAustraliaBernardo Dominic NEGOTIATION
James Y BowleyIndiaBernardo Dominic RENEWAL
Tony E ChuiItalyElwin Sharvill RENEWAL
Alejandro A CaudyArgentinaBernardo Dominic NEGOTIATION
Kaitlin Z StensethItalyStephen Shaw PROPOSAL
Costa S StockhamGermanyElwin Sharvill RENEWAL
Jefferson R BologniaFranceBernardo Dominic PROPOSAL
Julie G WieserGermanyXuxue Feng NEW
Ivar S DilliardRussiaXuxue Feng RENEWAL
Aditya R FerenczSpainBernardo Dominic RENEWAL
Izzy A PaprockiArgentinaXuxue Feng UNQUALIFIED
Tony W RimAustraliaBernardo Dominic PROPOSAL
Tony O PoquetteAustraliaIvan Magalhaes QUALIFIED
Aruna A CaldareraSpainElwin Sharvill QUALIFIED
Leja Y SlusarskiRussiaIvan Magalhaes RENEWAL
Rodrigues G CaudyArgentinaAnna Fali PROPOSAL
Ashley E FlosiGermanyElwin Sharvill RENEWAL
Francesco X GarufiGermanyBernardo Dominic UNQUALIFIED
Wickens B InouyeSpainAsiya Javayant PROPOSAL
Greenwood F CampainIndiaIvan Magalhaes QUALIFIED
Julie X MorascaSpainOnyama Limba NEGOTIATION
Izzy B GauchoFranceIvan Magalhaes NEGOTIATION
Cody V GillianUnited KingdomAmy Elsner NEGOTIATION
Aruna G ButtIndiaOnyama Limba RENEWAL
Tony H BologniaItalyBernardo Dominic QUALIFIED
Antonio P RoysterSpainIvan Magalhaes QUALIFIED
Deepesh P IturbideSpainOnyama Limba UNQUALIFIED
Aditya T OstroskyCanadaAnna Fali NEGOTIATION
Faith F PerinIndiaAmy Elsner NEW
Aika U StensethCanadaElwin Sharvill RENEWAL
Aditya E PaprockiSpainIvan Magalhaes 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>