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
David J KolmetzJapanOnyama Limba NEGOTIATION
Salvatore G MarrierSpainAsiya Javayant PROPOSAL
Maria R SergiIndiaIvan Magalhaes PROPOSAL
Maisha N NestleJapanAmy Elsner RENEWAL
Juan W WieserIndiaIoni Bowcher PROPOSAL
Juan H SlusarskiGermanyXuxue Feng NEW
Emily M IturbideRussiaIoni Bowcher RENEWAL
James L OldroydCanadaOnyama Limba QUALIFIED
Juan U KuskoItalyStephen Shaw RENEWAL
Octavia I InouyeAustraliaBernardo Dominic RENEWAL
Aruna V PerinGermanyAmy Elsner QUALIFIED
James Q StensethSpainIoni Bowcher RENEWAL
Rodrigues F WieserAustraliaXuxue Feng UNQUALIFIED
Izzy U MacleadAustraliaXuxue Feng RENEWAL
James X GillianBrazilOnyama Limba UNQUALIFIED
Mayumi H KolmetzGermanyAmy Elsner QUALIFIED
Alejandro W AlbaresRussiaStephen Shaw NEGOTIATION
Jeanfrancois D PerinBrazilBernardo Dominic RENEWAL
Stacey R AlbaresGermanyElwin Sharvill QUALIFIED
Jeanfrancois A MarrierGermanyXuxue Feng PROPOSAL
Faith B MorascaAustraliaOnyama Limba UNQUALIFIED
Salvatore T DoeCanadaAsiya Javayant PROPOSAL
Kaitlin Y KolmetzBrazilAmy Elsner RENEWAL
Nicolas Z NickaGermanyAsiya Javayant PROPOSAL
Jeanfrancois D DilliardCanadaAmy Elsner NEGOTIATION
Adams Y GlickItalyOnyama Limba PROPOSAL
Ricardo F ShinkoFranceAsiya Javayant UNQUALIFIED
Mayumi F InouyeGermanyAmy Elsner NEW
Kaitlin O RoysterJapanAmy Elsner PROPOSAL
James L KolmetzSpainXuxue Feng RENEWAL
Antonio D CaldareraCanadaStephen Shaw RENEWAL
Munro A WhobreyIndiaStephen Shaw NEGOTIATION
Emily S CaldareraItalyIvan Magalhaes RENEWAL
Smith X ButtArgentinaOnyama Limba UNQUALIFIED
Faith I CaldareraIndiaIoni Bowcher RENEWAL
David U ChuiFranceAmy Elsner NEW
Nicolas C MacleadItalyOnyama Limba PROPOSAL
Jefferson N RimIndiaOnyama Limba RENEWAL
Antonio N BowleyCanadaIoni Bowcher NEGOTIATION
Julie V AmigonBrazilStephen Shaw UNQUALIFIED
Kadeem Q KolmetzAustraliaAmy Elsner PROPOSAL
Leon X OstroskyUnited KingdomAnna Fali NEW
Juan D ButtUnited KingdomOnyama Limba RENEWAL
Claire H DarakjyJapanIoni Bowcher NEW
Wickens Y CaldareraJapanStephen Shaw UNQUALIFIED
Aruna R DarakjyIndiaOnyama Limba UNQUALIFIED
Jefferson W MorascaSpainStephen Shaw UNQUALIFIED
Darci V PaprockiItalyIvan Magalhaes PROPOSAL
Adams E FigeroaSpainStephen Shaw PROPOSAL
Emily Z AmigonGermanyElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Cody S ButtFranceStephen Shaw NEW
Murillo H IturbideItalyAsiya Javayant UNQUALIFIED
Aditya N SergiBrazilBernardo Dominic UNQUALIFIED
James F BriddickFranceAsiya Javayant RENEWAL
Jeanfrancois N SergiBrazilStephen Shaw RENEWAL
Alejandro H ChuiAustraliaIoni Bowcher QUALIFIED
Darci K RutaGermanyOnyama Limba NEGOTIATION
Kaitlin Z MorascaItalyStephen Shaw RENEWAL
Johnson X BologniaJapanElwin Sharvill NEW
Greenwood K PerinJapanAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa C SlusarskiUnited Kingdom2025-05-31King, Christopher A Esq PROPOSAL14Stephen Shaw
1001Greenwood T RulapaughFrance2025-06-15Morlong Associates RENEWAL6Stephen Shaw
1002Claire R BologniaBrazil2025-06-02Rangoni Of Florence QUALIFIED85Ioni Bowcher
1003Chavez M DilliardFrance2025-05-28Buckley Miller Wright NEGOTIATION85Ivan Magalhaes
1004Aruna N ChuiUnited Kingdom2025-05-28Chapman, Ross E Esq PROPOSAL30Amy Elsner
1005David M GillianCanada2025-05-19Rousseaux, Michael Esq NEW16Onyama Limba
1006Ricardo Q WhobreyCanada2025-06-12Morlong Associates RENEWAL55Elwin Sharvill
1007David P FollerGermany2025-05-27Chapman, Ross E Esq UNQUALIFIED12Ivan Magalhaes
1008Aruna M GillianIndia2025-06-15Morlong Associates PROPOSAL95Amy Elsner
1009Arvin Z VocelkaGermany2025-06-06King, Christopher A Esq QUALIFIED34Bernardo Dominic
1010Alejandro B PoquetteFrance2025-05-26Chemel, James L Cpa NEW37Bernardo Dominic
1011Jefferson M CaudyRussia2025-06-12Rangoni Of Florence RENEWAL84Onyama Limba
1012Kaitlin V StockhamBrazil2025-06-03King, Christopher A Esq QUALIFIED57Amy Elsner
1013Francesco G VocelkaAustralia2025-05-23Commercial Press PROPOSAL27Onyama Limba
1014Ivar O KolmetzGermany2025-06-07Feltz Printing Service PROPOSAL57Elwin Sharvill
1015Ashley X DilliardArgentina2025-06-03Chanay, Jeffrey A Esq RENEWAL29Asiya Javayant
1016Wickens Y MaletBrazil2025-05-23Rangoni Of Florence QUALIFIED86Ivan Magalhaes
1017Tony J MaletCanada2025-06-08Dorl, James J Esq NEW36Anna Fali
1018Deepesh N GlickSpain2025-06-01Rangoni Of Florence NEGOTIATION96Stephen Shaw
1019Adams L WaycottSpain2025-06-16Printing Dimensions RENEWAL76Anna Fali
1020Kadeem V NickaCanada2025-06-11Buckley Miller Wright RENEWAL34Xuxue Feng
1021Smith C BriddickBrazil2025-06-04Feiner Bros PROPOSAL31Stephen Shaw
1022Tony P FigeroaJapan2025-06-13Rousseaux, Michael Esq RENEWAL67Xuxue Feng
1023Mujtaba W BologniaBrazil2025-05-24Rangoni Of Florence RENEWAL93Elwin Sharvill
1024Morrow O AmigonArgentina2025-05-21Printing Dimensions QUALIFIED43Anna Fali
1025Ricardo M AlbaresCanada2025-05-26Buckley Miller Wright QUALIFIED17Elwin Sharvill
1026Deepesh Z OldroydGermany2025-06-10Chemel, James L Cpa QUALIFIED62Onyama Limba
1027Kaitlin J MorascaAustralia2025-06-07Rangoni Of Florence RENEWAL76Xuxue Feng
1028Jeanfrancois Q CaudyGermany2025-05-24Morlong Associates PROPOSAL70Anna Fali
1029Aruna Z OstroskyRussia2025-05-30King, Christopher A Esq NEW38Amy Elsner
1030Juan C BriddickSpain2025-06-06Truhlar And Truhlar Attys PROPOSAL89Asiya Javayant
1031Smith P FigeroaSpain2025-05-25Rangoni Of Florence NEGOTIATION5Xuxue Feng
1032Cody C NickaItaly2025-06-14Rangoni Of Florence RENEWAL60Asiya Javayant
1033Jeanfrancois W NickaCanada2025-06-09Benton, John B Jr PROPOSAL38Stephen Shaw
1034Jennifer M MacleadItaly2025-06-01Morlong Associates NEW29Elwin Sharvill
1035Stacey K FlosiAustralia2025-05-20Commercial Press PROPOSAL91Amy Elsner
1036Wickens W SergiAustralia2025-06-13Chemel, James L Cpa UNQUALIFIED43Amy Elsner
1037Smith L GlickUnited Kingdom2025-06-08Dorl, James J Esq RENEWAL79Bernardo Dominic
1038David E GillianUnited Kingdom2025-06-04Feltz Printing Service PROPOSAL17Stephen Shaw
1039Darci C FigeroaAustralia2025-06-11Feltz Printing Service RENEWAL48Anna Fali
1040Adams B KolmetzGermany2025-05-22Morlong Associates QUALIFIED56Ivan Magalhaes
1041Izzy J AlbaresSpain2025-06-13Benton, John B Jr UNQUALIFIED8Onyama Limba
1042Misaki Y CampainFrance2025-06-02Morlong Associates NEW24Bernardo Dominic
1043Antonio Y SaylorsRussia2025-05-23Chanay, Jeffrey A Esq QUALIFIED50Asiya Javayant
1044Maria R AlbaresCanada2025-06-04Printing Dimensions NEGOTIATION52Asiya Javayant
1045Kadeem E RoysterFrance2025-06-08Feiner Bros QUALIFIED36Anna Fali
1046Octavia W PerinBrazil2025-06-06Feiner Bros QUALIFIED78Asiya Javayant
1047Darci V NestleBrazil2025-06-08Rousseaux, Michael Esq PROPOSAL52Anna Fali
1048Isabel R VenereGermany2025-06-06Rangoni Of Florence RENEWAL14Bernardo Dominic
1049Greenwood Y RimBrazil2025-05-25Chapman, Ross E Esq QUALIFIED39Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Greenwood T NickaJapanIoni Bowcher NEGOTIATION
Jones P GlickBrazilBernardo Dominic PROPOSAL
Francesco Y TollnerUnited KingdomAnna Fali NEW
Jefferson Y GillianGermanyElwin Sharvill NEGOTIATION
Francesco S ChuiItalyIoni Bowcher PROPOSAL
Chavez M ShinkoUnited KingdomAmy Elsner NEW
Deepesh O SergiFranceElwin Sharvill PROPOSAL
Maisha G BowleyJapanAnna Fali NEW
Rodrigues X CaldareraGermanyAsiya Javayant NEW
Isabel D VenereItalyBernardo Dominic RENEWAL
Rodrigues C AlbaresFranceXuxue Feng UNQUALIFIED
Salvatore C RimRussiaAnna Fali RENEWAL
Costa B WhobreyJapanAsiya Javayant PROPOSAL
Francesco L VenereRussiaIvan Magalhaes NEW
Antonio F PoquetteAustraliaBernardo Dominic QUALIFIED
Aika L ChuiCanadaAmy Elsner PROPOSAL
Jones W ChuiGermanyXuxue Feng NEGOTIATION
Clifford U AmigonFranceBernardo Dominic NEGOTIATION
Aika I GauchoGermanyAnna Fali UNQUALIFIED
Jefferson K VenereSpainOnyama Limba RENEWAL
Smith F VenereRussiaXuxue Feng UNQUALIFIED
Greenwood P CampainBrazilAmy Elsner UNQUALIFIED
Francesco J RimUnited KingdomAmy Elsner NEW
Julie L KolmetzBrazilIvan Magalhaes NEW
Julie R BowleyCanadaIoni Bowcher RENEWAL
Isabel P WieserCanadaIoni Bowcher RENEWAL
Ricardo Z FigeroaCanadaIoni Bowcher PROPOSAL
Leja N StensethBrazilAnna Fali RENEWAL
Jones B InouyeRussiaAsiya Javayant PROPOSAL
Aruna O RimFranceIvan Magalhaes QUALIFIED
Jeanfrancois B VenereUnited KingdomIoni Bowcher RENEWAL
Aditya X BriddickCanadaIvan Magalhaes QUALIFIED
Kadeem N InouyeGermanyAnna Fali QUALIFIED
Aruna O MaletGermanyStephen Shaw NEW
Smith R MaletCanadaStephen Shaw UNQUALIFIED
Antonio S NestleIndiaAsiya Javayant NEGOTIATION
Alejandro W MacleadFranceBernardo Dominic UNQUALIFIED
Francesco S MaletAustraliaXuxue Feng QUALIFIED
Leon H VocelkaUnited KingdomOnyama Limba PROPOSAL
Misaki T NestleJapanIoni Bowcher UNQUALIFIED
Aditya A ChuiGermanyIvan Magalhaes NEGOTIATION
Izzy K WaycottSpainOnyama Limba PROPOSAL
Julie U IturbideArgentinaOnyama Limba RENEWAL
Francesco I GarufiAustraliaStephen Shaw NEGOTIATION
Deepesh U FollerCanadaIoni Bowcher NEW
Morrow K MorascaUnited KingdomBernardo Dominic QUALIFIED
Juan M RutaAustraliaAnna Fali PROPOSAL
Jennifer L DilliardGermanyOnyama Limba PROPOSAL
Chavez J IturbideBrazilAmy Elsner QUALIFIED
Salvatore E CampainJapanAmy Elsner NEW
Frozen Columns
Name
Clifford H Waycott
Francesco B Nicka
Darci D Oldroyd
Ashley L Rulapaugh
Smith O Sergi
David U Rim
Cody O Perin
Emily D Rim
Claire P Doe
Kaitlin J Caudy
Octavia G Perin
Misaki M Nestle
Tony C Foller
Aika I Flosi
Jefferson G Bolognia
Wickens Z Slusarski
Cody Q Butt
David O Chui
Alejandro E Stenseth
Salvatore W Caldarera
Faith O Foller
Leja Q Marrier
Salvatore B Garufi
Silvio W Butt
David C Ostrosky
Octavia E Campain
Antonio F Nicka
Aika B Butt
Costa W Iturbide
Sinclair J Kusko
Johnson A Malet
Costa E Wieser
Alejandro W Inouye
Johnson S Slusarski
Darci X Chui
Ivar E Gillian
Mayumi C Garufi
Aika S Venere
James W Marrier
Maisha B Maclead
Chavez H Marrier
Johnson V Sergi
Johnson Z Vocelka
Deepesh U Rim
Deepesh U Nicka
Leja P Nestle
Greenwood D Flosi
Costa Q Inouye
Isabel Z Darakjy
Costa D Morasca
IdCountryDate
1000France2025-05-28
1001India2025-06-12
1002Australia2025-05-18
1003Japan2025-06-08
1004Italy2025-05-31
1005Argentina2025-06-07
1006Canada2025-06-04
1007France2025-06-13
1008United Kingdom2025-06-05
1009Italy2025-05-23
1010Australia2025-05-19
1011Russia2025-06-13
1012Spain2025-06-05
1013Italy2025-06-09
1014India2025-05-19
1015India2025-06-09
1016Argentina2025-06-12
1017Brazil2025-06-14
1018Argentina2025-06-12
1019France2025-05-20
1020Australia2025-06-14
1021Spain2025-06-07
1022Russia2025-05-19
1023Italy2025-06-12
1024Japan2025-06-06
1025Argentina2025-05-21
1026Italy2025-06-08
1027United Kingdom2025-06-05
1028Japan2025-06-07
1029Spain2025-06-10
1030Spain2025-06-13
1031Brazil2025-05-21
1032Canada2025-05-29
1033Spain2025-06-06
1034India2025-06-09
1035Spain2025-06-13
1036Russia2025-06-12
1037Japan2025-05-27
1038Brazil2025-06-12
1039Germany2025-05-19
1040Canada2025-06-09
1041Spain2025-05-20
1042Japan2025-05-22
1043Italy2025-06-05
1044Australia2025-06-10
1045Brazil2025-06-16
1046Argentina2025-06-04
1047Italy2025-06-07
1048Brazil2025-06-07
1049Argentina2025-06-05

On-Demand Data

NameIdCountryDate
Greenwood T Bolognia1000Russia2025-06-15
Alejandro S Dilliard1001Russia2025-05-31
Costa Q Morasca1002Canada2025-05-24
Maisha D Poquette1003India2025-05-18
Stacey O Iturbide1004Italy2025-06-10
Kaitlin E Darakjy1005Canada2025-05-24
Jeanfrancois N Vocelka1006France2025-05-24
Claire U Glick1007Canada2025-06-05
Octavia T Poquette1008France2025-06-15
Jones F Ferencz1009Germany2025-06-06
Leja G Nicka1010Brazil2025-06-12
Isabel U Flosi1011Brazil2025-06-12
Tony K Stockham1012Italy2025-06-04
Jefferson G Chui1013United Kingdom2025-06-10
Maisha I Chui1014Italy2025-06-07
Chavez F Maclead1015Brazil2025-06-16
Francesco Q Malet1016Japan2025-05-30
Claire G Dilliard1017Germany2025-05-27
Maria H Caudy1018United Kingdom2025-06-10
Jefferson R Rim1019Spain2025-06-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez N BologniaBrazilIvan Magalhaes RENEWAL
Mujtaba T ShinkoFranceIoni Bowcher NEGOTIATION
Chavez O AmigonItalyIvan Magalhaes NEW
Jennifer S DoeAustraliaStephen Shaw NEGOTIATION
Faith C OldroydAustraliaIvan Magalhaes QUALIFIED
Johnson Y MarrierJapanAnna Fali RENEWAL
Salvatore P FollerUnited KingdomIvan Magalhaes RENEWAL
Smith J MacleadIndiaXuxue Feng NEGOTIATION
Emily P CaudyAustraliaStephen Shaw RENEWAL
Tony E FigeroaRussiaXuxue Feng NEW
Sinclair K CaudyAustraliaIvan Magalhaes UNQUALIFIED
Murillo X MaletIndiaAnna Fali NEW
Mujtaba F IturbideAustraliaOnyama Limba RENEWAL
Cody A CaldareraIndiaXuxue Feng UNQUALIFIED
Juan L RutaArgentinaElwin Sharvill NEGOTIATION
Maisha I VenereBrazilOnyama Limba RENEWAL
Clifford T OldroydRussiaXuxue Feng QUALIFIED
Cody Z FlosiItalyAsiya Javayant PROPOSAL
Mujtaba E ChuiSpainXuxue Feng NEGOTIATION
Juan T DarakjyIndiaElwin Sharvill RENEWAL
Stacey O MarrierArgentinaAsiya Javayant RENEWAL
Salvatore V RulapaughArgentinaBernardo Dominic RENEWAL
Ivar E ButtAustraliaAmy Elsner PROPOSAL
Izzy R DoeFranceAnna Fali UNQUALIFIED
James F GlickBrazilBernardo Dominic NEGOTIATION
Deepesh W NickaCanadaXuxue Feng UNQUALIFIED
Sinclair D BologniaCanadaAmy Elsner UNQUALIFIED
Ashley Q MacleadJapanBernardo Dominic NEW
Stacey C KuskoSpainOnyama Limba PROPOSAL
Deepesh O MorascaIndiaAmy Elsner RENEWAL
Morrow F ButtSpainAnna Fali UNQUALIFIED
Claire K PerinUnited KingdomAnna Fali QUALIFIED
Jennifer M PerinJapanAmy Elsner QUALIFIED
James C WaycottGermanyBernardo Dominic NEW
Jones S RulapaughFranceIvan Magalhaes RENEWAL
Wickens S WhobreyGermanyIoni Bowcher NEGOTIATION
Aditya U WaycottRussiaAsiya Javayant NEW
Juan M BologniaArgentinaIvan Magalhaes QUALIFIED
Tony B SergiItalyAnna Fali RENEWAL
Ashley L WhobreyItalyOnyama Limba 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>