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
Sinclair V RulapaughItalyIoni Bowcher PROPOSAL
Tony F FigeroaCanadaAnna Fali QUALIFIED
Nicolas R MaletAustraliaBernardo Dominic NEGOTIATION
Leja J SaylorsItalyAsiya Javayant QUALIFIED
Aika R StensethArgentinaAsiya Javayant PROPOSAL
Salvatore Y GarufiGermanyOnyama Limba PROPOSAL
Sinclair H WieserJapanOnyama Limba UNQUALIFIED
Wickens Y MaletRussiaXuxue Feng NEGOTIATION
Ashley M WaycottArgentinaAmy Elsner NEW
Aditya R SlusarskiSpainIoni Bowcher NEW
Cody P DilliardFranceElwin Sharvill RENEWAL
Aruna S MaletAustraliaIoni Bowcher UNQUALIFIED
Ivar N MaletBrazilXuxue Feng NEW
Isabel B GauchoAustraliaAsiya Javayant UNQUALIFIED
Ashley I RulapaughRussiaAnna Fali UNQUALIFIED
Leon N KolmetzItalyIvan Magalhaes QUALIFIED
Ashley Q GlickRussiaOnyama Limba PROPOSAL
Chavez C SaylorsBrazilOnyama Limba NEGOTIATION
Adams I RoysterAustraliaBernardo Dominic UNQUALIFIED
Aditya H ShinkoFranceStephen Shaw QUALIFIED
Leja C VenereSpainBernardo Dominic PROPOSAL
Alejandro Z WieserIndiaAsiya Javayant NEW
Chavez R DilliardAustraliaAsiya Javayant RENEWAL
Jeanfrancois C DarakjyArgentinaAnna Fali PROPOSAL
Rodrigues J RutaBrazilIoni Bowcher NEW
Faith Y VenereBrazilIvan Magalhaes PROPOSAL
Juan K BriddickSpainStephen Shaw UNQUALIFIED
Julie J MacleadFranceIoni Bowcher RENEWAL
Faith V WaycottCanadaXuxue Feng NEW
Emily C AmigonFranceOnyama Limba NEW
Clifford W PaprockiCanadaIvan Magalhaes NEGOTIATION
Clifford K WieserArgentinaBernardo Dominic NEW
Silvio Z WaycottItalyOnyama Limba QUALIFIED
Arvin E BowleyCanadaStephen Shaw NEGOTIATION
Costa M FollerItalyElwin Sharvill NEGOTIATION
Maisha G RulapaughSpainIoni Bowcher QUALIFIED
Nicolas Q PerinRussiaAnna Fali QUALIFIED
Kaitlin T FigeroaSpainStephen Shaw QUALIFIED
Juan B BriddickFranceIvan Magalhaes NEGOTIATION
Mujtaba H ChuiJapanXuxue Feng QUALIFIED
Ashley Y PerinRussiaStephen Shaw QUALIFIED
Ashley N MaletFranceOnyama Limba UNQUALIFIED
Wickens L NestleUnited KingdomIoni Bowcher NEGOTIATION
Antonio V WhobreyItalyIoni Bowcher RENEWAL
Antonio C BologniaUnited KingdomBernardo Dominic QUALIFIED
Octavia U KolmetzFranceElwin Sharvill NEW
Deepesh O SaylorsJapanAmy Elsner NEGOTIATION
Clifford L KuskoAustraliaElwin Sharvill NEGOTIATION
David B BologniaRussiaElwin Sharvill NEW
Jones Z VocelkaArgentinaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Juan Z StensethGermanyXuxue Feng NEW
Jeanfrancois Q WieserCanadaStephen Shaw RENEWAL
Maria M DoeJapanAsiya Javayant UNQUALIFIED
Chavez T RutaSpainIvan Magalhaes PROPOSAL
Alejandro Q MaletUnited KingdomStephen Shaw UNQUALIFIED
Deepesh F RimAustraliaAsiya Javayant QUALIFIED
Jennifer N RoysterRussiaBernardo Dominic NEW
James O ShinkoUnited KingdomAsiya Javayant NEW
Johnson X SchemmerGermanyIoni Bowcher PROPOSAL
Murillo T PaprockiArgentinaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens P WhobreyItaly2026-06-29Dorl, James J Esq NEW83Asiya Javayant
1001Smith U WaycottCanada2026-06-24Feltz Printing Service PROPOSAL18Asiya Javayant
1002Jennifer U FigeroaSpain2026-07-18Feltz Printing Service UNQUALIFIED89Bernardo Dominic
1003Izzy T SaylorsAustralia2026-07-07Chapman, Ross E Esq NEW57Anna Fali
1004James S SchemmerItaly2026-07-12Printing Dimensions NEGOTIATION73Xuxue Feng
1005Tony F MorascaJapan2026-07-10Buckley Miller Wright PROPOSAL11Onyama Limba
1006Chavez S GillianBrazil2026-06-30Printing Dimensions NEW22Stephen Shaw
1007Mujtaba I VocelkaCanada2026-07-16Feltz Printing Service PROPOSAL12Elwin Sharvill
1008Munro E PerinItaly2026-06-26Feiner Bros NEW30Elwin Sharvill
1009Maria R RimRussia2026-07-16Printing Dimensions NEW26Anna Fali
1010Emily W DilliardItaly2026-07-20Rangoni Of Florence NEGOTIATION54Asiya Javayant
1011Juan F SlusarskiUnited Kingdom2026-07-18Benton, John B Jr PROPOSAL19Ivan Magalhaes
1012Ashley O KolmetzFrance2026-07-16Rangoni Of Florence RENEWAL2Elwin Sharvill
1013Aika E SaylorsJapan2026-07-06Chapman, Ross E Esq RENEWAL14Bernardo Dominic
1014Aika Z CaldareraRussia2026-07-07Feltz Printing Service QUALIFIED40Bernardo Dominic
1015Alejandro A PoquetteBrazil2026-07-20King, Christopher A Esq UNQUALIFIED84Bernardo Dominic
1016Rodrigues S BriddickJapan2026-06-24Benton, John B Jr NEW85Amy Elsner
1017Ivar D NickaIndia2026-06-26Chapman, Ross E Esq PROPOSAL1Elwin Sharvill
1018Leon Q GillianIndia2026-07-21Chapman, Ross E Esq PROPOSAL19Stephen Shaw
1019Misaki X DilliardAustralia2026-06-28Chanay, Jeffrey A Esq RENEWAL86Anna Fali
1020Faith U RutaGermany2026-07-07Feltz Printing Service RENEWAL76Asiya Javayant
1021Maria J ShinkoArgentina2026-07-20Rousseaux, Michael Esq UNQUALIFIED43Elwin Sharvill
1022Antonio S StensethRussia2026-06-24Printing Dimensions UNQUALIFIED49Xuxue Feng
1023Julie H BowleyCanada2026-07-19Rangoni Of Florence RENEWAL42Bernardo Dominic
1024Antonio A ShinkoBrazil2026-07-21Truhlar And Truhlar Attys PROPOSAL75Asiya Javayant
1025Juan H KolmetzFrance2026-07-01Feiner Bros RENEWAL99Xuxue Feng
1026Stacey X GlickSpain2026-07-03Rangoni Of Florence RENEWAL60Bernardo Dominic
1027Julie B BriddickRussia2026-07-22Printing Dimensions QUALIFIED58Xuxue Feng
1028Maisha Q TollnerCanada2026-07-08Dorl, James J Esq QUALIFIED97Ioni Bowcher
1029Isabel H BriddickFrance2026-07-05Truhlar And Truhlar Attys PROPOSAL18Anna Fali
1030Sinclair O DarakjyGermany2026-06-27Feiner Bros UNQUALIFIED69Asiya Javayant
1031Morrow P CaldareraBrazil2026-07-16Feiner Bros NEGOTIATION36Ivan Magalhaes
1032Arvin Q AlbaresFrance2026-06-30Feltz Printing Service NEW86Amy Elsner
1033Leja B FollerFrance2026-07-07Chapman, Ross E Esq NEW1Bernardo Dominic
1034Johnson A DarakjyItaly2026-06-25Chanay, Jeffrey A Esq RENEWAL26Ivan Magalhaes
1035Kadeem P KolmetzIndia2026-06-25Printing Dimensions NEGOTIATION34Asiya Javayant
1036Aika G GlickAustralia2026-07-05Chapman, Ross E Esq PROPOSAL91Amy Elsner
1037Chavez I NestleItaly2026-07-02Dorl, James J Esq QUALIFIED70Xuxue Feng
1038Sinclair X KolmetzSpain2026-07-12Commercial Press QUALIFIED31Bernardo Dominic
1039Wickens V FerenczAustralia2026-07-22Rangoni Of Florence NEGOTIATION86Bernardo Dominic
1040Izzy W MorascaArgentina2026-06-30Chapman, Ross E Esq QUALIFIED36Amy Elsner
1041Johnson R MarrierGermany2026-06-26Truhlar And Truhlar Attys NEW33Xuxue Feng
1042Ashley M FollerSpain2026-07-06Rousseaux, Michael Esq NEGOTIATION5Asiya Javayant
1043Faith U BowleyFrance2026-07-04Truhlar And Truhlar Attys NEW36Amy Elsner
1044Maisha Z GauchoGermany2026-07-13Truhlar And Truhlar Attys PROPOSAL21Stephen Shaw
1045Mayumi J GauchoRussia2026-07-09King, Christopher A Esq QUALIFIED90Anna Fali
1046Morrow J CampainSpain2026-07-07King, Christopher A Esq QUALIFIED13Elwin Sharvill
1047Izzy V BriddickUnited Kingdom2026-07-11Chanay, Jeffrey A Esq PROPOSAL71Amy Elsner
1048Clifford P SaylorsFrance2026-06-25Feiner Bros PROPOSAL12Asiya Javayant
1049Greenwood V WieserRussia2026-06-27Truhlar And Truhlar Attys NEGOTIATION96Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Murillo S FlosiAustraliaAsiya Javayant RENEWAL
Isabel O ChuiBrazilOnyama Limba RENEWAL
Wickens H SergiAustraliaXuxue Feng PROPOSAL
Ivar G SaylorsRussiaAmy Elsner NEW
Jennifer T KuskoCanadaAnna Fali UNQUALIFIED
Salvatore I FlosiSpainAsiya Javayant UNQUALIFIED
Chavez I WaycottCanadaAnna Fali RENEWAL
Aika E DoeUnited KingdomIvan Magalhaes QUALIFIED
Claire K RoysterItalyAsiya Javayant PROPOSAL
Aditya D FerenczGermanyIoni Bowcher NEW
Leja I RoysterJapanIvan Magalhaes UNQUALIFIED
Clifford D IturbideAustraliaOnyama Limba QUALIFIED
Wickens K ChuiBrazilElwin Sharvill RENEWAL
Tony Y SchemmerSpainXuxue Feng UNQUALIFIED
Mujtaba L CaldareraRussiaXuxue Feng QUALIFIED
Ivar R AlbaresAustraliaAsiya Javayant UNQUALIFIED
Octavia E AlbaresIndiaOnyama Limba PROPOSAL
Nicolas M MarrierUnited KingdomAsiya Javayant NEW
Rodrigues J ButtIndiaXuxue Feng QUALIFIED
Salvatore V GlickRussiaOnyama Limba PROPOSAL
Kadeem A MarrierItalyXuxue Feng PROPOSAL
Costa Y RulapaughItalyBernardo Dominic NEGOTIATION
Jennifer V MaletFranceIvan Magalhaes NEW
Octavia J FollerAustraliaOnyama Limba RENEWAL
Aditya G ButtIndiaStephen Shaw NEW
Clifford V TollnerRussiaIvan Magalhaes NEW
Tony F BowleyFranceStephen Shaw PROPOSAL
Smith W BowleyFranceOnyama Limba UNQUALIFIED
Juan W MaletCanadaXuxue Feng PROPOSAL
Claire W WaycottFranceAsiya Javayant NEGOTIATION
Ricardo S StockhamAustraliaElwin Sharvill UNQUALIFIED
Kaitlin N DarakjyGermanyAsiya Javayant NEW
Mujtaba X RulapaughRussiaAmy Elsner PROPOSAL
Jeanfrancois A BowleyItalyBernardo Dominic UNQUALIFIED
Stacey M MaletRussiaIoni Bowcher PROPOSAL
Leja W CaudyItalyOnyama Limba NEGOTIATION
Ricardo B InouyeBrazilAmy Elsner RENEWAL
Deepesh B IturbideItalyBernardo Dominic RENEWAL
Leja G GillianFranceIvan Magalhaes RENEWAL
Antonio F VenereSpainAnna Fali QUALIFIED
Greenwood M AlbaresSpainElwin Sharvill UNQUALIFIED
Leja G AmigonBrazilAmy Elsner UNQUALIFIED
Darci B NickaRussiaBernardo Dominic UNQUALIFIED
Sinclair Y FlosiCanadaIoni Bowcher QUALIFIED
Jennifer C GlickBrazilAnna Fali UNQUALIFIED
Leja X ShinkoIndiaBernardo Dominic UNQUALIFIED
Arvin U InouyeAustraliaIoni Bowcher QUALIFIED
Deepesh R IturbideRussiaXuxue Feng RENEWAL
Greenwood Z PerinBrazilAnna Fali QUALIFIED
Emily Q DarakjyUnited KingdomXuxue Feng NEW
Frozen Columns
Name
Faith O Rim
Ivar R Shinko
David W Saylors
Alejandro I Wieser
Smith O Bowley
Mujtaba U Foller
Antonio G Marrier
Misaki S Royster
Maisha S Morasca
Kadeem L Inouye
Greenwood R Ferencz
Jefferson D Foller
Mayumi V Royster
Wickens W Darakjy
Juan C Butt
Deepesh E Kusko
Nicolas W Campain
Munro R Maclead
Silvio P Perin
Alejandro E Chui
Arvin K Stockham
Kadeem H Whobrey
Isabel Y Schemmer
Chavez J Paprocki
Octavia I Waycott
Costa Y Flosi
Maria W Nestle
Silvio E Doe
Misaki Q Butt
Stacey T Shinko
Leja W Royster
Costa S Stenseth
Maria N Chui
Kaitlin C Kusko
Jones V Maclead
Stacey W Ferencz
Morrow G Darakjy
Greenwood T Vocelka
Jennifer A Whobrey
James L Rulapaugh
Kaitlin X Whobrey
Costa T Kolmetz
Misaki S Figeroa
Octavia T Ruta
Aruna J Albares
Morrow S Tollner
Costa K Whobrey
Chavez B Gaucho
Juan L Oldroyd
Leon H Foller
IdCountryDate
1000Russia2026-06-29
1001Japan2026-07-03
1002Japan2026-07-05
1003Spain2026-07-20
1004Italy2026-07-18
1005France2026-07-18
1006Argentina2026-07-11
1007Germany2026-07-20
1008India2026-07-10
1009Spain2026-07-15
1010Germany2026-06-26
1011Germany2026-07-01
1012Spain2026-07-11
1013Spain2026-07-03
1014Australia2026-06-24
1015Germany2026-07-11
1016Japan2026-07-20
1017Australia2026-07-06
1018Russia2026-07-07
1019Argentina2026-07-21
1020United Kingdom2026-07-15
1021Italy2026-07-09
1022Brazil2026-07-09
1023Germany2026-07-13
1024Argentina2026-06-29
1025Germany2026-07-21
1026India2026-07-23
1027United Kingdom2026-07-11
1028United Kingdom2026-06-26
1029Brazil2026-06-24
1030France2026-07-21
1031Germany2026-07-16
1032Spain2026-07-23
1033Australia2026-07-20
1034Italy2026-07-08
1035Spain2026-07-08
1036Canada2026-07-03
1037Italy2026-07-11
1038Germany2026-07-23
1039Russia2026-07-03
1040Brazil2026-07-12
1041Germany2026-06-27
1042India2026-07-21
1043Argentina2026-06-27
1044Russia2026-07-04
1045Brazil2026-06-26
1046India2026-07-11
1047United Kingdom2026-07-03
1048Argentina2026-07-02
1049France2026-07-21

On-Demand Data

NameIdCountryDate
Chavez T Darakjy1000Brazil2026-07-15
Julie Q Bowley1001France2026-07-21
Nicolas B Stockham1002Canada2026-07-16
Jones P Dilliard1003Brazil2026-07-23
Mujtaba A Campain1004Germany2026-07-04
Tony F Garufi1005Japan2026-07-22
Tony T Gaucho1006Spain2026-07-21
Darci N Glick1007Germany2026-06-26
Mujtaba W Royster1008Spain2026-07-03
Antonio Y Kolmetz1009Germany2026-06-25
Emily S Royster1010Spain2026-06-30
Ivar T Bowley1011Canada2026-06-26
Leja P Waycott1012Japan2026-07-01
Mayumi U Bowley1013France2026-07-18
Smith S Sergi1014Argentina2026-06-30
Ricardo D Venere1015India2026-07-12
Aditya Y Marrier1016Germany2026-06-24
Leon O Paprocki1017India2026-06-27
Faith Q Stockham1018United Kingdom2026-07-02
Aruna T Albares1019Brazil2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna Z VenereIndiaIvan Magalhaes QUALIFIED
Maisha D StockhamBrazilOnyama Limba UNQUALIFIED
Tony T WieserCanadaBernardo Dominic QUALIFIED
Nicolas Z GauchoBrazilAmy Elsner PROPOSAL
Maria B SlusarskiUnited KingdomBernardo Dominic PROPOSAL
Darci Z FerenczItalyStephen Shaw UNQUALIFIED
Antonio W OstroskyAustraliaElwin Sharvill QUALIFIED
Faith K DarakjyIndiaOnyama Limba NEW
Octavia M KuskoItalyElwin Sharvill QUALIFIED
Mujtaba I AmigonGermanyIoni Bowcher QUALIFIED
Greenwood R ChuiCanadaBernardo Dominic PROPOSAL
Sinclair Q GlickAustraliaIoni Bowcher NEW
Claire L MaletCanadaIoni Bowcher PROPOSAL
Maisha F VenereAustraliaElwin Sharvill NEGOTIATION
Rodrigues G MaletAustraliaAnna Fali RENEWAL
Clifford Q BologniaSpainAsiya Javayant UNQUALIFIED
Wickens L DilliardIndiaElwin Sharvill RENEWAL
Ivar S DarakjyIndiaXuxue Feng PROPOSAL
Jeanfrancois Z GauchoSpainElwin Sharvill UNQUALIFIED
Leja B KolmetzFranceXuxue Feng NEW
Adams C KuskoUnited KingdomAsiya Javayant PROPOSAL
Aruna C MaletFranceIvan Magalhaes RENEWAL
Mujtaba N StockhamCanadaAnna Fali RENEWAL
Francesco U DilliardBrazilAmy Elsner NEGOTIATION
Rodrigues Q SlusarskiSpainBernardo Dominic NEW
Izzy I CampainUnited KingdomXuxue Feng UNQUALIFIED
Alejandro W SergiUnited KingdomXuxue Feng NEGOTIATION
Greenwood N FerenczUnited KingdomAsiya Javayant PROPOSAL
Leon J RoysterFranceStephen Shaw PROPOSAL
Silvio A PerinAustraliaBernardo Dominic QUALIFIED
Aruna B SlusarskiArgentinaIvan Magalhaes QUALIFIED
Isabel U SchemmerUnited KingdomIvan Magalhaes NEW
Clifford F RutaBrazilIoni Bowcher UNQUALIFIED
Stacey Y PoquetteSpainAnna Fali RENEWAL
Misaki L CampainFranceOnyama Limba NEGOTIATION
Cody A AmigonGermanyBernardo Dominic NEGOTIATION
James Y MacleadJapanXuxue Feng UNQUALIFIED
Leja E FerenczSpainIvan Magalhaes NEGOTIATION
Mujtaba N OldroydItalyElwin Sharvill UNQUALIFIED
Silvio E KuskoAustraliaAmy Elsner 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>