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
Antonio Y DilliardFranceAmy Elsner UNQUALIFIED
Leja O FigeroaArgentinaOnyama Limba PROPOSAL
Aika J FlosiUnited KingdomStephen Shaw UNQUALIFIED
Ivar O BowleyRussiaIvan Magalhaes UNQUALIFIED
Jennifer U BologniaBrazilIvan Magalhaes NEGOTIATION
Faith T FerenczFranceAnna Fali UNQUALIFIED
Misaki G CaudyUnited KingdomXuxue Feng RENEWAL
Claire P VenereUnited KingdomIoni Bowcher NEGOTIATION
Alejandro M ShinkoSpainAsiya Javayant PROPOSAL
Costa J FollerAustraliaIoni Bowcher QUALIFIED
Stacey L VocelkaUnited KingdomXuxue Feng PROPOSAL
Maria J PoquetteJapanStephen Shaw QUALIFIED
Maria T AlbaresItalyAsiya Javayant RENEWAL
Alejandro T FerenczJapanBernardo Dominic UNQUALIFIED
Leon I RimUnited KingdomBernardo Dominic RENEWAL
Alejandro K RoysterFranceIoni Bowcher NEGOTIATION
Sinclair V DarakjyGermanyAmy Elsner NEGOTIATION
James U AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Rodrigues J RoysterSpainOnyama Limba NEW
Isabel Y FerenczJapanIoni Bowcher UNQUALIFIED
Julie D WieserBrazilIvan Magalhaes RENEWAL
Nicolas O RimCanadaAmy Elsner NEW
Izzy S GarufiIndiaOnyama Limba RENEWAL
Jeanfrancois A StensethArgentinaIoni Bowcher RENEWAL
Faith T CaldareraAustraliaXuxue Feng RENEWAL
Salvatore R ButtCanadaXuxue Feng PROPOSAL
Wickens Y StockhamUnited KingdomStephen Shaw NEW
Wickens Q FlosiGermanyOnyama Limba QUALIFIED
Ashley J NickaFranceIvan Magalhaes PROPOSAL
Isabel X MacleadSpainIvan Magalhaes NEW
Johnson V FollerItalyOnyama Limba PROPOSAL
Adams O VocelkaCanadaElwin Sharvill PROPOSAL
Silvio M BologniaItalyBernardo Dominic PROPOSAL
Maisha H CaudyFranceAsiya Javayant NEW
Claire K WaycottCanadaAnna Fali UNQUALIFIED
Aditya B FerenczAustraliaOnyama Limba QUALIFIED
Greenwood Q DarakjySpainElwin Sharvill NEGOTIATION
Costa K RimCanadaAnna Fali NEW
Munro G DilliardJapanXuxue Feng UNQUALIFIED
Murillo U MacleadItalyOnyama Limba UNQUALIFIED
Clifford I KuskoAustraliaIvan Magalhaes NEW
Octavia H WaycottRussiaElwin Sharvill QUALIFIED
Kaitlin K ShinkoIndiaStephen Shaw NEGOTIATION
Maria X IturbideSpainBernardo Dominic PROPOSAL
Smith L FlosiJapanOnyama Limba PROPOSAL
Izzy M MaletGermanyIvan Magalhaes NEGOTIATION
Leon H GlickUnited KingdomOnyama Limba NEW
Isabel B FigeroaBrazilXuxue Feng PROPOSAL
Darci A PaprockiSpainStephen Shaw QUALIFIED
Silvio F DarakjyUnited KingdomIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kaitlin Z OstroskyGermanyAmy Elsner PROPOSAL
Murillo Y CampainArgentinaBernardo Dominic QUALIFIED
Costa D OldroydUnited KingdomStephen Shaw NEW
Rodrigues C BologniaJapanIvan Magalhaes NEW
Morrow Y NickaCanadaElwin Sharvill PROPOSAL
Julie I StensethCanadaIoni Bowcher PROPOSAL
Aditya N GlickItalyIoni Bowcher RENEWAL
Arvin H CaldareraIndiaBernardo Dominic UNQUALIFIED
Mujtaba E IturbideRussiaAsiya Javayant RENEWAL
Antonio L RimFranceAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson J GauchoRussia2026-06-24Feiner Bros UNQUALIFIED57Amy Elsner
1001Juan M DilliardGermany2026-07-13Printing Dimensions NEW68Onyama Limba
1002Kaitlin B BologniaFrance2026-06-28Commercial Press RENEWAL33Elwin Sharvill
1003Antonio X WhobreySpain2026-07-12Feiner Bros QUALIFIED19Onyama Limba
1004Julie Y BologniaUnited Kingdom2026-07-02Dorl, James J Esq QUALIFIED3Onyama Limba
1005Adams N SlusarskiFrance2026-07-04Chapman, Ross E Esq QUALIFIED86Amy Elsner
1006Salvatore E IturbideIndia2026-06-28Rangoni Of Florence NEGOTIATION89Elwin Sharvill
1007Izzy H MarrierAustralia2026-07-04Chanay, Jeffrey A Esq PROPOSAL88Asiya Javayant
1008Nicolas U CampainBrazil2026-07-14Feltz Printing Service NEW47Bernardo Dominic
1009Chavez P GillianCanada2026-06-30Feltz Printing Service QUALIFIED5Ivan Magalhaes
1010Nicolas Z SergiUnited Kingdom2026-07-10Chemel, James L Cpa QUALIFIED32Stephen Shaw
1011Faith P FigeroaAustralia2026-06-26Feiner Bros NEW81Anna Fali
1012Arvin S WieserRussia2026-07-14King, Christopher A Esq NEGOTIATION89Onyama Limba
1013Faith Q CampainGermany2026-06-29Rousseaux, Michael Esq UNQUALIFIED96Amy Elsner
1014Julie K MaletItaly2026-06-24Feltz Printing Service QUALIFIED74Onyama Limba
1015Adams E StockhamAustralia2026-06-29Buckley Miller Wright PROPOSAL35Amy Elsner
1016Nicolas U NickaRussia2026-07-05Commercial Press RENEWAL70Anna Fali
1017James O ShinkoIndia2026-07-15Morlong Associates PROPOSAL92Asiya Javayant
1018Alejandro N NickaBrazil2026-07-07Commercial Press NEW13Amy Elsner
1019Misaki I GarufiJapan2026-07-03Buckley Miller Wright NEGOTIATION62Asiya Javayant
1020Clifford D WaycottIndia2026-07-01Feiner Bros NEW55Elwin Sharvill
1021Isabel O BologniaRussia2026-06-24Benton, John B Jr NEGOTIATION46Onyama Limba
1022Julie H ButtArgentina2026-07-04Dorl, James J Esq NEW54Ioni Bowcher
1023Ivar B PoquetteFrance2026-06-29Buckley Miller Wright NEGOTIATION75Amy Elsner
1024Aruna F StockhamFrance2026-07-14King, Christopher A Esq PROPOSAL44Bernardo Dominic
1025Isabel T OldroydItaly2026-07-06King, Christopher A Esq RENEWAL33Elwin Sharvill
1026Wickens K VocelkaFrance2026-07-10Truhlar And Truhlar Attys QUALIFIED80Elwin Sharvill
1027Jefferson H TollnerGermany2026-07-17Truhlar And Truhlar Attys RENEWAL67Stephen Shaw
1028Ivar Y StensethGermany2026-06-23Rangoni Of Florence QUALIFIED0Ioni Bowcher
1029Munro V MorascaItaly2026-07-13Rangoni Of Florence UNQUALIFIED14Amy Elsner
1030Jones Y DoeSpain2026-06-29Printing Dimensions PROPOSAL5Ioni Bowcher
1031Arvin E StensethBrazil2026-07-15Chanay, Jeffrey A Esq RENEWAL89Amy Elsner
1032Tony S KolmetzArgentina2026-07-04Dorl, James J Esq UNQUALIFIED43Asiya Javayant
1033James J MorascaBrazil2026-07-04Chanay, Jeffrey A Esq NEGOTIATION64Bernardo Dominic
1034Chavez Z MaletBrazil2026-07-03King, Christopher A Esq RENEWAL27Bernardo Dominic
1035Izzy G NickaCanada2026-06-30Commercial Press PROPOSAL15Bernardo Dominic
1036Nicolas H WhobreyIndia2026-07-03Rangoni Of Florence RENEWAL5Xuxue Feng
1037Greenwood U VocelkaItaly2026-07-01Chemel, James L Cpa NEW88Amy Elsner
1038Nicolas O BriddickArgentina2026-07-15Chanay, Jeffrey A Esq UNQUALIFIED57Stephen Shaw
1039Claire L BowleyFrance2026-06-25Rousseaux, Michael Esq PROPOSAL86Elwin Sharvill
1040Aika D KuskoSpain2026-06-20Printing Dimensions PROPOSAL66Amy Elsner
1041Aruna Q IturbideItaly2026-07-04Chemel, James L Cpa NEGOTIATION7Xuxue Feng
1042Nicolas L DilliardArgentina2026-07-07Chemel, James L Cpa UNQUALIFIED5Bernardo Dominic
1043Jones D GauchoIndia2026-07-04Truhlar And Truhlar Attys RENEWAL90Ivan Magalhaes
1044Faith V FerenczJapan2026-07-14Commercial Press QUALIFIED3Ioni Bowcher
1045Ricardo U StensethItaly2026-07-03Buckley Miller Wright NEW24Xuxue Feng
1046Deepesh N MorascaArgentina2026-07-13Commercial Press RENEWAL82Amy Elsner
1047Clifford U SaylorsJapan2026-06-22Dorl, James J Esq PROPOSAL92Asiya Javayant
1048Octavia Q RoysterFrance2026-07-10Rangoni Of Florence RENEWAL68Asiya Javayant
1049Chavez H WieserBrazil2026-06-26Feltz Printing Service NEGOTIATION36Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Nicolas K KuskoGermanyAnna Fali QUALIFIED
Munro F WaycottIndiaOnyama Limba QUALIFIED
Silvio L ButtArgentinaOnyama Limba QUALIFIED
Kaitlin F FerenczItalyXuxue Feng NEGOTIATION
Darci H CaudyRussiaAmy Elsner QUALIFIED
Juan K RutaArgentinaAnna Fali NEGOTIATION
Maisha B MarrierSpainXuxue Feng QUALIFIED
Sinclair A MorascaRussiaBernardo Dominic NEGOTIATION
Izzy R SchemmerFranceIoni Bowcher QUALIFIED
Aditya X PoquetteJapanElwin Sharvill UNQUALIFIED
Isabel C KuskoAustraliaXuxue Feng NEGOTIATION
Mujtaba G GarufiFranceOnyama Limba NEGOTIATION
Kadeem X ChuiIndiaBernardo Dominic UNQUALIFIED
Darci E StensethCanadaAmy Elsner UNQUALIFIED
Mujtaba W AlbaresAustraliaIvan Magalhaes RENEWAL
Kaitlin R FollerRussiaXuxue Feng QUALIFIED
Murillo R RoysterItalyIvan Magalhaes UNQUALIFIED
Sinclair T KuskoFranceBernardo Dominic QUALIFIED
Jefferson P TollnerIndiaStephen Shaw NEGOTIATION
Emily E MaletCanadaAsiya Javayant NEGOTIATION
Clifford K GlickRussiaElwin Sharvill QUALIFIED
Emily K FerenczRussiaOnyama Limba QUALIFIED
Murillo H BriddickBrazilIvan Magalhaes QUALIFIED
Maria P FlosiItalyAmy Elsner UNQUALIFIED
Jeanfrancois Y FlosiSpainAsiya Javayant UNQUALIFIED
Greenwood K WieserSpainOnyama Limba NEW
Adams M BriddickBrazilAnna Fali NEGOTIATION
David G RutaJapanStephen Shaw QUALIFIED
Mayumi E GillianGermanyBernardo Dominic PROPOSAL
Nicolas O DarakjyFranceOnyama Limba UNQUALIFIED
Nicolas V SlusarskiItalyBernardo Dominic UNQUALIFIED
Stacey L RutaIndiaAsiya Javayant NEGOTIATION
Sinclair R GillianRussiaAmy Elsner QUALIFIED
Johnson D SaylorsRussiaOnyama Limba PROPOSAL
Kadeem U BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Tony Y FerenczGermanyAsiya Javayant QUALIFIED
Darci I KolmetzIndiaAsiya Javayant RENEWAL
Costa Q BowleyFranceStephen Shaw PROPOSAL
Ivar Q GarufiUnited KingdomBernardo Dominic QUALIFIED
Munro Y MacleadFranceIvan Magalhaes NEW
Jones D MaletJapanElwin Sharvill UNQUALIFIED
Cody I ShinkoArgentinaOnyama Limba PROPOSAL
Stacey Z SaylorsArgentinaIoni Bowcher NEW
Octavia G RimIndiaStephen Shaw QUALIFIED
Juan H DarakjyJapanIoni Bowcher NEW
Adams Z ChuiAustraliaIvan Magalhaes PROPOSAL
Misaki B GlickAustraliaIoni Bowcher NEGOTIATION
Izzy Y NickaIndiaIoni Bowcher QUALIFIED
Julie D FigeroaGermanyStephen Shaw QUALIFIED
Juan A NestleAustraliaOnyama Limba NEW
Frozen Columns
Name
Deepesh A Poquette
Izzy O Butt
Darci I Albares
Munro E Butt
Kadeem O Garufi
Octavia P Ostrosky
Mujtaba Q Ruta
David Q Rim
Darci X Morasca
Jones S Maclead
Leja V Nestle
Izzy P Figeroa
Munro R Poquette
Morrow Q Nestle
Salvatore A Butt
Johnson I Shinko
Mayumi Y Nestle
Octavia T Bowley
Octavia P Whobrey
Mayumi Z Marrier
Sinclair X Dilliard
Emily E Venere
Kaitlin K Rulapaugh
Adams S Figeroa
Mayumi T Darakjy
Darci D Stockham
Arvin P Oldroyd
Wickens J Briddick
James P Flosi
Jefferson C Figeroa
Faith A Caudy
Aruna V Gillian
Claire G Perin
Antonio G Kolmetz
Isabel R Ferencz
Jones U Sergi
Munro U Ruta
Jennifer Q Campain
Wickens X Sergi
Mayumi M Iturbide
Mujtaba I Iturbide
James T Briddick
Kaitlin A Bowley
Greenwood Z Shinko
Aditya A Wieser
Francesco R Shinko
Jennifer J Sergi
Clifford A Nestle
Alejandro L Sergi
Wickens K Albares
IdCountryDate
1000Argentina2026-06-18
1001United Kingdom2026-06-19
1002Germany2026-07-02
1003Canada2026-07-11
1004Germany2026-07-13
1005France2026-06-19
1006Brazil2026-07-13
1007Japan2026-06-29
1008United Kingdom2026-06-19
1009Australia2026-06-19
1010United Kingdom2026-07-03
1011Argentina2026-06-23
1012Spain2026-07-01
1013Russia2026-06-25
1014Australia2026-07-12
1015France2026-07-10
1016Germany2026-06-23
1017Germany2026-06-21
1018Spain2026-06-24
1019Canada2026-07-04
1020Australia2026-07-09
1021France2026-07-07
1022India2026-07-08
1023Germany2026-06-20
1024United Kingdom2026-06-20
1025Canada2026-06-30
1026Italy2026-07-12
1027Spain2026-06-26
1028Russia2026-07-05
1029France2026-06-23
1030India2026-07-12
1031France2026-06-20
1032France2026-06-24
1033Japan2026-06-21
1034Australia2026-07-13
1035India2026-06-20
1036France2026-07-10
1037Italy2026-07-15
1038Germany2026-06-29
1039India2026-07-16
1040Canada2026-07-02
1041France2026-07-06
1042Russia2026-06-29
1043United Kingdom2026-06-20
1044France2026-07-16
1045Russia2026-07-07
1046Italy2026-07-12
1047Russia2026-07-06
1048Japan2026-06-27
1049Australia2026-06-29

On-Demand Data

NameIdCountryDate
Darci Q Albares1000Russia2026-07-04
Wickens W Nestle1001Argentina2026-07-09
Wickens Z Wieser1002United Kingdom2026-07-13
Costa A Campain1003India2026-07-08
Emily O Stockham1004France2026-07-06
Antonio S Venere1005India2026-06-23
Johnson B Marrier1006United Kingdom2026-06-19
Jennifer V Iturbide1007Argentina2026-07-15
Aditya P Bowley1008Spain2026-06-25
Tony Q Oldroyd1009India2026-07-08
Kaitlin L Flosi1010Spain2026-07-15
Jefferson M Whobrey1011Japan2026-07-15
Jefferson L Vocelka1012France2026-06-22
Juan A Bolognia1013Germany2026-06-19
Aditya D Nestle1014United Kingdom2026-06-22
Aditya U Tollner1015Spain2026-07-06
Murillo Y Maclead1016Canada2026-07-09
Leja G Bowley1017Brazil2026-07-03
Morrow N Chui1018United Kingdom2026-06-18
Rodrigues H Inouye1019Argentina2026-06-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie O DoeJapanAmy Elsner UNQUALIFIED
Faith L RutaAustraliaIoni Bowcher PROPOSAL
Arvin G BriddickJapanElwin Sharvill PROPOSAL
Munro D KolmetzArgentinaStephen Shaw NEW
Munro X DoeFranceAmy Elsner RENEWAL
Leja S StensethAustraliaIoni Bowcher UNQUALIFIED
Aika F VocelkaRussiaAmy Elsner PROPOSAL
Clifford P VocelkaIndiaAsiya Javayant PROPOSAL
Juan K GauchoItalyIoni Bowcher PROPOSAL
Deepesh B OstroskyJapanOnyama Limba NEW
Octavia L BowleyItalyAmy Elsner QUALIFIED
Jeanfrancois N WhobreyArgentinaElwin Sharvill NEW
Alejandro P OldroydGermanyStephen Shaw NEGOTIATION
Faith P BologniaGermanyIoni Bowcher QUALIFIED
Morrow H GarufiGermanyBernardo Dominic NEGOTIATION
Mayumi B CaldareraUnited KingdomAsiya Javayant NEW
Nicolas E KolmetzSpainXuxue Feng NEW
Adams R StockhamAustraliaAnna Fali NEGOTIATION
Octavia N GlickIndiaAsiya Javayant QUALIFIED
Leja L RimCanadaAmy Elsner UNQUALIFIED
Tony C CampainItalyXuxue Feng NEGOTIATION
Jones Q SchemmerArgentinaIvan Magalhaes PROPOSAL
Juan S VenereUnited KingdomAnna Fali NEW
Leja O AmigonAustraliaXuxue Feng RENEWAL
Leja K AmigonIndiaIoni Bowcher PROPOSAL
Costa M OstroskyBrazilIvan Magalhaes QUALIFIED
Jefferson B FollerGermanyIvan Magalhaes RENEWAL
Faith Z TollnerSpainStephen Shaw PROPOSAL
Cody C ChuiArgentinaIoni Bowcher UNQUALIFIED
Jeanfrancois U RoysterRussiaAsiya Javayant RENEWAL
Salvatore Y InouyeFranceXuxue Feng NEW
Maria K MarrierBrazilIvan Magalhaes QUALIFIED
Emily P BriddickFranceStephen Shaw NEGOTIATION
Julie L BowleyCanadaAnna Fali NEW
Jones B GlickFranceIvan Magalhaes RENEWAL
Smith K AlbaresCanadaAsiya Javayant NEW
Arvin L StockhamRussiaIoni Bowcher NEGOTIATION
Jeanfrancois H PerinItalyOnyama Limba UNQUALIFIED
Greenwood T CampainItalyStephen Shaw RENEWAL
Aditya P VocelkaFranceBernardo Dominic RENEWAL

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