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
Mayumi G VenereBrazilOnyama Limba PROPOSAL
Kaitlin B KuskoArgentinaStephen Shaw QUALIFIED
Emily B SaylorsSpainAmy Elsner UNQUALIFIED
Aika W DoeJapanAsiya Javayant NEGOTIATION
Maisha M StensethSpainElwin Sharvill UNQUALIFIED
Silvio Z SergiUnited KingdomAsiya Javayant NEW
Claire Z OldroydJapanOnyama Limba PROPOSAL
Greenwood L FollerSpainAmy Elsner PROPOSAL
Maria M CampainCanadaIvan Magalhaes NEW
Nicolas G ButtArgentinaBernardo Dominic PROPOSAL
Costa S NestleCanadaIoni Bowcher QUALIFIED
Smith U FerenczItalyStephen Shaw RENEWAL
Arvin X WhobreyRussiaAmy Elsner RENEWAL
Alejandro Z PoquetteAustraliaIoni Bowcher NEGOTIATION
Maisha V FlosiItalyStephen Shaw NEW
Costa D DilliardAustraliaIoni Bowcher NEW
Leon U FerenczIndiaElwin Sharvill PROPOSAL
Arvin Y NickaArgentinaElwin Sharvill NEGOTIATION
Stacey S MarrierFranceXuxue Feng NEGOTIATION
Kadeem W MorascaBrazilAmy Elsner RENEWAL
Alejandro U VenereUnited KingdomAmy Elsner QUALIFIED
Salvatore W PaprockiFranceAmy Elsner NEW
Leon C KolmetzIndiaAmy Elsner RENEWAL
Mujtaba H NestleAustraliaBernardo Dominic PROPOSAL
Izzy N GillianSpainIoni Bowcher NEW
Jones L RutaItalyAmy Elsner QUALIFIED
Francesco F FigeroaAustraliaAsiya Javayant PROPOSAL
Chavez H TollnerSpainAsiya Javayant PROPOSAL
Kaitlin S ShinkoIndiaBernardo Dominic QUALIFIED
Francesco I WhobreyFranceAmy Elsner RENEWAL
Wickens I WhobreySpainElwin Sharvill NEGOTIATION
Arvin H DoeIndiaIoni Bowcher RENEWAL
Emily Z TollnerFranceAnna Fali QUALIFIED
Tony A VenereJapanElwin Sharvill RENEWAL
David R FerenczCanadaBernardo Dominic QUALIFIED
Arvin U AlbaresGermanyOnyama Limba RENEWAL
Kadeem S BowleyJapanAmy Elsner NEGOTIATION
Johnson R RutaIndiaElwin Sharvill RENEWAL
Octavia G FigeroaItalyBernardo Dominic QUALIFIED
Cody E DoeCanadaAnna Fali QUALIFIED
Jeanfrancois F InouyeArgentinaBernardo Dominic RENEWAL
Adams A AlbaresCanadaAnna Fali RENEWAL
Alejandro Z DoeBrazilBernardo Dominic QUALIFIED
Francesco G VocelkaGermanyAsiya Javayant NEGOTIATION
Silvio L MarrierBrazilAsiya Javayant NEW
Greenwood A SlusarskiItalyAnna Fali UNQUALIFIED
Ashley F NickaUnited KingdomAmy Elsner PROPOSAL
Murillo D OldroydRussiaStephen Shaw PROPOSAL
Morrow N ButtAustraliaOnyama Limba QUALIFIED
Adams T PaprockiAustraliaAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Aruna E DilliardUnited KingdomStephen Shaw QUALIFIED
Maisha F DarakjyAustraliaBernardo Dominic PROPOSAL
Murillo R VenereUnited KingdomStephen Shaw NEW
Nicolas D CaudyItalyOnyama Limba RENEWAL
Maria I ChuiBrazilOnyama Limba UNQUALIFIED
Arvin D FerenczItalyAnna Fali UNQUALIFIED
Antonio B BologniaBrazilOnyama Limba NEW
Silvio U KolmetzCanadaOnyama Limba NEGOTIATION
Silvio A FerenczArgentinaAnna Fali PROPOSAL
Francesco J MacleadIndiaElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki T CaldareraBrazil2026-06-29Truhlar And Truhlar Attys UNQUALIFIED12Ioni Bowcher
1001Alejandro D MorascaBrazil2026-06-12Feiner Bros NEW95Asiya Javayant
1002Alejandro M FigeroaSpain2026-07-02Chapman, Ross E Esq NEW86Amy Elsner
1003Ivar D AmigonSpain2026-06-20Truhlar And Truhlar Attys RENEWAL1Xuxue Feng
1004Juan M NickaSpain2026-06-20Dorl, James J Esq NEGOTIATION54Elwin Sharvill
1005Ricardo A PerinArgentina2026-06-12Feltz Printing Service RENEWAL17Bernardo Dominic
1006Deepesh W FerenczFrance2026-06-29Rangoni Of Florence NEW35Amy Elsner
1007Costa H WhobreyItaly2026-06-17Rousseaux, Michael Esq QUALIFIED89Amy Elsner
1008Wickens E SaylorsArgentina2026-06-12Chapman, Ross E Esq PROPOSAL98Bernardo Dominic
1009Rodrigues O BowleyItaly2026-06-13Rangoni Of Florence PROPOSAL35Onyama Limba
1010Ashley F GlickSpain2026-06-19Morlong Associates NEW83Elwin Sharvill
1011Smith Q OldroydAustralia2026-07-03Feiner Bros UNQUALIFIED11Elwin Sharvill
1012Chavez O AlbaresIndia2026-07-01Rangoni Of Florence RENEWAL98Xuxue Feng
1013Antonio Z RulapaughGermany2026-06-18Buckley Miller Wright QUALIFIED69Stephen Shaw
1014Aruna B KolmetzRussia2026-06-18Rangoni Of Florence UNQUALIFIED50Stephen Shaw
1015Munro T CaudyGermany2026-06-12Buckley Miller Wright NEGOTIATION93Anna Fali
1016James M SchemmerFrance2026-06-25Commercial Press PROPOSAL6Ivan Magalhaes
1017Jones S BriddickSpain2026-06-20Printing Dimensions PROPOSAL46Asiya Javayant
1018Clifford V BologniaItaly2026-06-22Rangoni Of Florence NEW39Amy Elsner
1019Claire K RoysterIndia2026-06-07Morlong Associates QUALIFIED85Ivan Magalhaes
1020Nicolas M OldroydFrance2026-06-06Commercial Press NEGOTIATION10Anna Fali
1021Deepesh E RulapaughCanada2026-06-16Buckley Miller Wright RENEWAL32Elwin Sharvill
1022Antonio L OstroskyBrazil2026-06-21Chapman, Ross E Esq RENEWAL97Ivan Magalhaes
1023Claire T VocelkaItaly2026-06-20Benton, John B Jr RENEWAL37Stephen Shaw
1024Jeanfrancois Y TollnerCanada2026-06-18Chanay, Jeffrey A Esq QUALIFIED89Amy Elsner
1025Nicolas W BowleyRussia2026-06-28Buckley Miller Wright RENEWAL7Elwin Sharvill
1026Misaki Y PerinIndia2026-06-06Feiner Bros QUALIFIED87Stephen Shaw
1027Juan M TollnerAustralia2026-06-20Rangoni Of Florence UNQUALIFIED3Amy Elsner
1028Greenwood S KuskoSpain2026-06-18Truhlar And Truhlar Attys PROPOSAL63Onyama Limba
1029Aditya B PaprockiGermany2026-06-21Morlong Associates NEGOTIATION38Xuxue Feng
1030Jeanfrancois O VocelkaItaly2026-06-19Dorl, James J Esq RENEWAL40Stephen Shaw
1031Maisha A RimCanada2026-06-10Feiner Bros NEGOTIATION15Ioni Bowcher
1032Morrow G MacleadJapan2026-07-04Chemel, James L Cpa RENEWAL74Elwin Sharvill
1033Silvio E PoquetteIndia2026-06-21Dorl, James J Esq UNQUALIFIED36Stephen Shaw
1034Costa U VocelkaAustralia2026-07-05Chemel, James L Cpa QUALIFIED42Onyama Limba
1035Maria J DarakjyItaly2026-07-03Chapman, Ross E Esq RENEWAL59Asiya Javayant
1036Faith B AlbaresJapan2026-06-19Chapman, Ross E Esq NEGOTIATION26Xuxue Feng
1037Antonio U MorascaItaly2026-06-13Rangoni Of Florence NEW90Bernardo Dominic
1038Mayumi H PaprockiBrazil2026-06-17Commercial Press QUALIFIED4Anna Fali
1039Ivar T DilliardUnited Kingdom2026-07-01Benton, John B Jr RENEWAL85Bernardo Dominic
1040Emily J FlosiGermany2026-06-10Buckley Miller Wright UNQUALIFIED96Ioni Bowcher
1041Francesco D CaudyCanada2026-06-18Rousseaux, Michael Esq RENEWAL50Anna Fali
1042Sinclair V FlosiItaly2026-06-21Rousseaux, Michael Esq UNQUALIFIED94Xuxue Feng
1043Smith F MacleadBrazil2026-06-15Buckley Miller Wright UNQUALIFIED43Elwin Sharvill
1044Izzy E MaletCanada2026-06-10Morlong Associates QUALIFIED3Asiya Javayant
1045Salvatore J DarakjyItaly2026-07-03Printing Dimensions PROPOSAL13Anna Fali
1046Aruna F NestleSpain2026-07-04Commercial Press UNQUALIFIED27Ivan Magalhaes
1047Arvin Z CaudyItaly2026-06-26Feiner Bros QUALIFIED35Anna Fali
1048James P FollerFrance2026-06-11Commercial Press RENEWAL19Asiya Javayant
1049Adams H PoquetteArgentina2026-06-17Rangoni Of Florence RENEWAL21Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aruna Y FollerBrazilAnna Fali PROPOSAL
Cody Z DarakjyItalyAsiya Javayant RENEWAL
Jennifer I SlusarskiSpainBernardo Dominic NEW
Aruna X WaycottJapanAsiya Javayant QUALIFIED
Sinclair K FigeroaArgentinaAnna Fali UNQUALIFIED
Kadeem S FollerRussiaBernardo Dominic NEGOTIATION
Julie Y RutaCanadaAnna Fali PROPOSAL
Claire H GlickJapanIoni Bowcher PROPOSAL
Emily X ShinkoJapanOnyama Limba NEGOTIATION
Silvio I NestleSpainAsiya Javayant NEGOTIATION
Stacey O GarufiSpainOnyama Limba QUALIFIED
Jones O TollnerCanadaOnyama Limba NEW
Morrow B GauchoArgentinaBernardo Dominic PROPOSAL
Izzy N ChuiSpainElwin Sharvill RENEWAL
Jefferson O StensethFranceIvan Magalhaes NEGOTIATION
Ashley P CampainFranceAnna Fali NEW
Isabel V GillianCanadaStephen Shaw PROPOSAL
David C OldroydCanadaAsiya Javayant UNQUALIFIED
Ivar I ChuiItalyIvan Magalhaes NEW
Alejandro N SlusarskiArgentinaXuxue Feng PROPOSAL
Antonio C FollerItalyOnyama Limba NEGOTIATION
Juan N AlbaresJapanXuxue Feng UNQUALIFIED
Jeanfrancois P CampainCanadaBernardo Dominic NEGOTIATION
Francesco X SlusarskiArgentinaAmy Elsner RENEWAL
Adams F NickaUnited KingdomAsiya Javayant NEGOTIATION
Arvin A CaudyItalyXuxue Feng PROPOSAL
Kaitlin I GillianAustraliaAmy Elsner QUALIFIED
Darci K CaudyFranceIoni Bowcher PROPOSAL
Ricardo J AmigonItalyIvan Magalhaes NEGOTIATION
Cody G KolmetzArgentinaAnna Fali NEW
Darci G KuskoJapanAmy Elsner QUALIFIED
Alejandro N VenereUnited KingdomAmy Elsner PROPOSAL
Smith M SchemmerItalyElwin Sharvill NEGOTIATION
Arvin S IturbideUnited KingdomOnyama Limba RENEWAL
Leja G VenereFranceAnna Fali QUALIFIED
Johnson D MorascaUnited KingdomStephen Shaw QUALIFIED
Adams U RutaItalyElwin Sharvill NEW
Morrow B BriddickBrazilStephen Shaw PROPOSAL
Rodrigues O VocelkaSpainAsiya Javayant RENEWAL
Adams N SaylorsIndiaBernardo Dominic NEW
Adams I AmigonSpainAmy Elsner UNQUALIFIED
Francesco G FerenczFranceAsiya Javayant RENEWAL
Sinclair E PaprockiBrazilOnyama Limba UNQUALIFIED
Misaki N FerenczRussiaElwin Sharvill PROPOSAL
Smith L RulapaughRussiaAnna Fali UNQUALIFIED
Arvin A FlosiBrazilIoni Bowcher NEGOTIATION
Aika W PaprockiSpainAnna Fali RENEWAL
Octavia B CampainJapanAsiya Javayant PROPOSAL
Smith V WaycottBrazilXuxue Feng NEGOTIATION
Aruna A SergiFranceAmy Elsner QUALIFIED
Frozen Columns
Name
Rodrigues Q Albares
Morrow N Sergi
Stacey E Poquette
Jefferson R Iturbide
Adams Q Nicka
Kadeem Z Nicka
Jefferson M Stockham
Sinclair L Venere
Alejandro E Stockham
Leon F Perin
David H Nestle
Izzy I Stenseth
Stacey V Chui
Faith B Caldarera
Rodrigues J Figeroa
Aruna B Glick
Cody N Slusarski
Smith W Gaucho
Izzy U Garufi
Ashley B Nestle
Francesco N Foller
Octavia U Tollner
Faith O Iturbide
Costa F Maclead
Nicolas E Shinko
Deepesh K Iturbide
James N Paprocki
Salvatore D Stenseth
Aditya J Oldroyd
Greenwood H Campain
Kadeem Q Garufi
Adams N Campain
Tony Z Marrier
Emily H Venere
Tony T Gillian
Antonio J Morasca
Nicolas Z Foller
Leja C Whobrey
Clifford E Malet
Clifford D Caudy
Izzy L Caudy
Julie K Albares
Mayumi G Waycott
Julie M Garufi
Leon M Albares
Leja P Ferencz
Juan Z Bolognia
Munro R Slusarski
Adams S Ruta
Mujtaba J Gillian
IdCountryDate
1000Russia2026-06-23
1001Germany2026-07-02
1002Italy2026-07-03
1003France2026-06-21
1004United Kingdom2026-07-04
1005Argentina2026-07-04
1006Japan2026-06-12
1007United Kingdom2026-07-01
1008Japan2026-06-18
1009Germany2026-06-22
1010Australia2026-06-28
1011Italy2026-07-01
1012Italy2026-07-04
1013Japan2026-06-06
1014Germany2026-07-03
1015Russia2026-07-01
1016Argentina2026-07-03
1017Brazil2026-06-25
1018Japan2026-06-24
1019Russia2026-06-08
1020Japan2026-06-11
1021Italy2026-07-04
1022Russia2026-06-10
1023Germany2026-06-19
1024Spain2026-06-06
1025Italy2026-06-12
1026Japan2026-06-19
1027Brazil2026-06-22
1028Australia2026-06-10
1029Germany2026-06-23
1030India2026-06-29
1031Australia2026-06-30
1032Spain2026-06-21
1033Australia2026-06-23
1034Brazil2026-06-09
1035Australia2026-06-09
1036Australia2026-06-13
1037France2026-06-11
1038Canada2026-06-29
1039India2026-06-11
1040Japan2026-07-03
1041France2026-06-13
1042Argentina2026-06-14
1043Australia2026-06-20
1044Japan2026-06-30
1045Italy2026-07-05
1046Australia2026-06-14
1047United Kingdom2026-06-06
1048Italy2026-06-28
1049Italy2026-06-25

On-Demand Data

NameIdCountryDate
Leon T Caudy1000Brazil2026-06-29
Tony H Iturbide1001France2026-06-06
Isabel E Bolognia1002Spain2026-06-16
Salvatore D Waycott1003Argentina2026-06-11
Cody C Venere1004Italy2026-06-10
Kadeem Q Foller1005United Kingdom2026-07-05
Faith M Paprocki1006France2026-06-22
Arvin I Briddick1007Russia2026-06-26
Rodrigues Z Tollner1008Argentina2026-06-15
Leja W Figeroa1009Germany2026-06-15
Darci R Waycott1010France2026-06-10
Aditya Z Doe1011Spain2026-06-10
Emily V Poquette1012Brazil2026-06-06
Maria H Briddick1013United Kingdom2026-06-13
Kadeem I Maclead1014United Kingdom2026-06-20
Darci A Amigon1015United Kingdom2026-06-15
Maisha A Ruta1016Germany2026-06-12
David U Caudy1017Australia2026-06-11
Aditya L Waycott1018Argentina2026-06-23
Kadeem W Darakjy1019Russia2026-07-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh J RoysterAustraliaAnna Fali PROPOSAL
Greenwood Q VenereAustraliaIoni Bowcher RENEWAL
Murillo Q SlusarskiAustraliaBernardo Dominic NEGOTIATION
Jennifer F KolmetzCanadaAmy Elsner PROPOSAL
Aruna J IturbideFranceStephen Shaw NEGOTIATION
Tony G ButtJapanXuxue Feng NEW
Juan U PoquetteGermanyAnna Fali UNQUALIFIED
Jefferson Z VenereItalyStephen Shaw RENEWAL
Arvin L NestleJapanElwin Sharvill RENEWAL
Aika C FigeroaBrazilBernardo Dominic RENEWAL
Aditya F CampainGermanyOnyama Limba NEW
Munro E NickaIndiaStephen Shaw NEW
Greenwood L CaudyRussiaAsiya Javayant RENEWAL
Rodrigues R IturbideCanadaElwin Sharvill NEW
Alejandro S RimCanadaIoni Bowcher QUALIFIED
Isabel O FlosiUnited KingdomOnyama Limba NEW
James T WaycottFranceElwin Sharvill RENEWAL
Adams S GillianItalyAnna Fali RENEWAL
Salvatore E GauchoGermanyBernardo Dominic UNQUALIFIED
Jennifer F VenereRussiaElwin Sharvill UNQUALIFIED
Maisha W ShinkoFranceStephen Shaw QUALIFIED
James B GillianItalyOnyama Limba PROPOSAL
Emily I BowleyRussiaAsiya Javayant NEW
Kadeem P SergiAustraliaStephen Shaw UNQUALIFIED
Faith V SaylorsIndiaIoni Bowcher RENEWAL
Chavez U VocelkaItalyAsiya Javayant NEW
Arvin J WaycottItalyAnna Fali NEW
Ivar W PoquetteAustraliaBernardo Dominic RENEWAL
Ricardo M WieserUnited KingdomStephen Shaw NEGOTIATION
Murillo F MarrierArgentinaElwin Sharvill RENEWAL
Kadeem F FerenczGermanyXuxue Feng UNQUALIFIED
Jeanfrancois P GillianRussiaAnna Fali RENEWAL
Misaki G StockhamGermanyIoni Bowcher NEGOTIATION
Izzy G WhobreySpainAmy Elsner NEW
Ashley O CaldareraSpainOnyama Limba QUALIFIED
Emily X VenereUnited KingdomBernardo Dominic NEGOTIATION
Antonio E DarakjyFranceBernardo Dominic NEGOTIATION
Aika A MorascaItalyStephen Shaw RENEWAL
Arvin B CaudyRussiaStephen Shaw NEW
Adams I FigeroaUnited KingdomAsiya Javayant UNQUALIFIED

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