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
Clifford T WaycottSpainIvan Magalhaes PROPOSAL
Arvin N RutaGermanyOnyama Limba QUALIFIED
Leja J BowleyAustraliaBernardo Dominic PROPOSAL
Kadeem J RimGermanyAmy Elsner QUALIFIED
Izzy Y NickaBrazilBernardo Dominic RENEWAL
Aditya H GauchoUnited KingdomIvan Magalhaes NEW
Clifford J SaylorsArgentinaElwin Sharvill NEW
Morrow A StockhamBrazilBernardo Dominic QUALIFIED
Leja Q GarufiBrazilAsiya Javayant PROPOSAL
Ivar V IturbideGermanyAmy Elsner NEW
Leon W ButtArgentinaAsiya Javayant QUALIFIED
Ricardo H PaprockiJapanStephen Shaw UNQUALIFIED
Munro G KuskoRussiaIvan Magalhaes NEW
Chavez I BowleyFranceAnna Fali QUALIFIED
Julie R AlbaresCanadaXuxue Feng NEGOTIATION
Izzy Q GarufiJapanStephen Shaw UNQUALIFIED
Tony L NickaGermanyAnna Fali NEW
Mujtaba G WhobreyFranceStephen Shaw NEGOTIATION
Costa C GlickUnited KingdomXuxue Feng QUALIFIED
Faith N StensethFranceOnyama Limba RENEWAL
Mujtaba Y SlusarskiArgentinaBernardo Dominic NEW
Mayumi B GauchoGermanyXuxue Feng NEGOTIATION
Morrow W BriddickFranceXuxue Feng RENEWAL
Nicolas L ShinkoArgentinaXuxue Feng NEW
Silvio V SchemmerAustraliaOnyama Limba NEW
Julie E RoysterItalyOnyama Limba UNQUALIFIED
Aika O SlusarskiUnited KingdomXuxue Feng NEW
Faith O WaycottRussiaXuxue Feng QUALIFIED
Salvatore Z GillianJapanOnyama Limba UNQUALIFIED
Jefferson A FollerRussiaXuxue Feng UNQUALIFIED
Morrow H PerinUnited KingdomStephen Shaw UNQUALIFIED
Adams V GlickSpainIoni Bowcher QUALIFIED
Emily Y FigeroaRussiaAmy Elsner NEW
Salvatore X FlosiFranceStephen Shaw PROPOSAL
Emily U PaprockiRussiaOnyama Limba NEW
James S WaycottBrazilAmy Elsner QUALIFIED
Aditya E FollerUnited KingdomIvan Magalhaes QUALIFIED
Alejandro V IturbideSpainIvan Magalhaes NEGOTIATION
Juan I MaletCanadaAnna Fali NEGOTIATION
Arvin E BowleyCanadaIoni Bowcher PROPOSAL
Ricardo Z IturbideBrazilElwin Sharvill RENEWAL
Deepesh G BologniaSpainStephen Shaw UNQUALIFIED
Aika K OstroskyJapanAsiya Javayant PROPOSAL
Mujtaba Y NestleAustraliaAmy Elsner UNQUALIFIED
Ricardo Z DarakjyArgentinaAnna Fali NEGOTIATION
Antonio I PoquetteCanadaBernardo Dominic QUALIFIED
Antonio B BowleyJapanIvan Magalhaes RENEWAL
Leon N PerinAustraliaElwin Sharvill RENEWAL
Darci Z ShinkoGermanyOnyama Limba RENEWAL
Deepesh I ChuiAustraliaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Deepesh B KuskoCanadaXuxue Feng NEGOTIATION
Kaitlin T StockhamIndiaAnna Fali UNQUALIFIED
Julie N MarrierCanadaXuxue Feng NEGOTIATION
Izzy E ButtJapanIvan Magalhaes PROPOSAL
Rodrigues L NickaArgentinaAmy Elsner RENEWAL
Juan T SergiCanadaAsiya Javayant UNQUALIFIED
Julie M PaprockiFranceXuxue Feng PROPOSAL
Claire K VocelkaRussiaAnna Fali NEW
Clifford D FlosiFranceAmy Elsner RENEWAL
Munro Y PerinItalyAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo D CampainBrazil2026-06-26Chemel, James L Cpa RENEWAL63Bernardo Dominic
1001Murillo E GarufiCanada2026-06-25King, Christopher A Esq NEW34Bernardo Dominic
1002Aruna E CaudyRussia2026-07-03Morlong Associates QUALIFIED67Bernardo Dominic
1003Juan R FigeroaRussia2026-07-01Dorl, James J Esq QUALIFIED31Ivan Magalhaes
1004Maisha Z WieserArgentina2026-07-14Benton, John B Jr NEGOTIATION81Anna Fali
1005Misaki I DoeIndia2026-06-28Dorl, James J Esq NEGOTIATION83Elwin Sharvill
1006Aditya K MarrierUnited Kingdom2026-06-22Chemel, James L Cpa NEGOTIATION43Xuxue Feng
1007Izzy Y BriddickArgentina2026-07-16Benton, John B Jr QUALIFIED49Bernardo Dominic
1008Kadeem D NickaJapan2026-06-29Morlong Associates PROPOSAL62Onyama Limba
1009Leon X PerinAustralia2026-07-03Printing Dimensions UNQUALIFIED76Onyama Limba
1010Leja T DarakjyRussia2026-07-06Rangoni Of Florence UNQUALIFIED19Asiya Javayant
1011Stacey W AmigonArgentina2026-06-29Commercial Press PROPOSAL7Bernardo Dominic
1012Kadeem O VenereUnited Kingdom2026-07-18Rousseaux, Michael Esq NEW56Ivan Magalhaes
1013Cody P OldroydRussia2026-07-15Rousseaux, Michael Esq UNQUALIFIED1Bernardo Dominic
1014Rodrigues Q VocelkaUnited Kingdom2026-07-20Printing Dimensions UNQUALIFIED54Bernardo Dominic
1015Tony M CampainUnited Kingdom2026-07-06Printing Dimensions UNQUALIFIED91Anna Fali
1016Salvatore O FlosiGermany2026-06-23Printing Dimensions QUALIFIED50Xuxue Feng
1017Silvio L SaylorsJapan2026-07-15Rousseaux, Michael Esq UNQUALIFIED95Bernardo Dominic
1018Johnson Z BologniaRussia2026-07-11Printing Dimensions RENEWAL63Anna Fali
1019Mayumi B PaprockiFrance2026-06-28Chemel, James L Cpa NEGOTIATION40Onyama Limba
1020Faith I WieserCanada2026-06-25Commercial Press PROPOSAL12Elwin Sharvill
1021Greenwood N GarufiGermany2026-07-20Dorl, James J Esq QUALIFIED58Onyama Limba
1022Salvatore K FigeroaFrance2026-06-23Chemel, James L Cpa RENEWAL32Xuxue Feng
1023Silvio C StensethIndia2026-07-15King, Christopher A Esq NEW13Asiya Javayant
1024Julie L InouyeCanada2026-06-25Printing Dimensions RENEWAL63Asiya Javayant
1025Faith L OstroskyBrazil2026-07-07Buckley Miller Wright NEW3Ivan Magalhaes
1026Maisha R WieserAustralia2026-07-10Chemel, James L Cpa QUALIFIED71Anna Fali
1027Mujtaba G NestleItaly2026-07-12Rousseaux, Michael Esq RENEWAL98Ivan Magalhaes
1028Jefferson Q WhobreyUnited Kingdom2026-07-02Commercial Press NEW31Asiya Javayant
1029Johnson E ChuiUnited Kingdom2026-06-27Truhlar And Truhlar Attys RENEWAL44Onyama Limba
1030Isabel T KolmetzArgentina2026-06-26Printing Dimensions NEW87Ivan Magalhaes
1031Rodrigues K FerenczCanada2026-07-10Feiner Bros PROPOSAL35Onyama Limba
1032Clifford T GarufiFrance2026-06-28Benton, John B Jr NEGOTIATION24Amy Elsner
1033Deepesh Q IturbideIndia2026-07-19King, Christopher A Esq QUALIFIED44Amy Elsner
1034Maria E RulapaughItaly2026-07-09Feltz Printing Service NEW67Xuxue Feng
1035Ricardo A DilliardCanada2026-07-14Rangoni Of Florence UNQUALIFIED45Elwin Sharvill
1036Stacey C StensethCanada2026-07-16Printing Dimensions QUALIFIED92Stephen Shaw
1037Ricardo V DoeCanada2026-07-18Morlong Associates QUALIFIED38Ioni Bowcher
1038Sinclair U GauchoIndia2026-07-11King, Christopher A Esq NEW38Stephen Shaw
1039Julie N AmigonArgentina2026-07-10Printing Dimensions UNQUALIFIED39Amy Elsner
1040Cody M FlosiJapan2026-06-26Rangoni Of Florence RENEWAL88Amy Elsner
1041Ashley Y RulapaughCanada2026-07-19Dorl, James J Esq QUALIFIED96Anna Fali
1042Leja P DilliardUnited Kingdom2026-07-17Printing Dimensions NEGOTIATION67Amy Elsner
1043Octavia C AlbaresGermany2026-07-12Buckley Miller Wright PROPOSAL34Bernardo Dominic
1044Jeanfrancois G VenereCanada2026-06-25Benton, John B Jr RENEWAL85Xuxue Feng
1045Adams E NickaSpain2026-06-29Buckley Miller Wright NEGOTIATION0Elwin Sharvill
1046Arvin D DoeAustralia2026-07-01Rousseaux, Michael Esq QUALIFIED20Asiya Javayant
1047Faith W CampainRussia2026-07-08Printing Dimensions RENEWAL26Elwin Sharvill
1048Nicolas T InouyeSpain2026-07-02King, Christopher A Esq UNQUALIFIED78Bernardo Dominic
1049Antonio F CaudyUnited Kingdom2026-06-30Truhlar And Truhlar Attys NEGOTIATION63Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jennifer F VocelkaUnited KingdomIoni Bowcher NEW
Ricardo H FlosiItalyAnna Fali PROPOSAL
Clifford W CaldareraUnited KingdomAsiya Javayant QUALIFIED
Isabel A NickaAustraliaElwin Sharvill QUALIFIED
Mujtaba R CaudyItalyStephen Shaw QUALIFIED
Silvio M SchemmerBrazilAmy Elsner PROPOSAL
Aditya P TollnerAustraliaAmy Elsner NEW
Juan L CaudyFranceAnna Fali NEGOTIATION
Aika M ShinkoBrazilBernardo Dominic RENEWAL
Tony O CaldareraAustraliaAnna Fali PROPOSAL
Aditya H ButtRussiaIoni Bowcher NEGOTIATION
Nicolas C BowleyFranceIoni Bowcher NEW
Alejandro P VocelkaJapanOnyama Limba UNQUALIFIED
Morrow A MaletRussiaBernardo Dominic PROPOSAL
James X RoysterFranceAmy Elsner NEGOTIATION
Deepesh C WhobreyItalyOnyama Limba UNQUALIFIED
Ricardo U FerenczUnited KingdomElwin Sharvill NEW
Aika B StensethItalyAnna Fali RENEWAL
Octavia A FigeroaAustraliaIoni Bowcher PROPOSAL
Deepesh W CaldareraItalyXuxue Feng NEW
Chavez G KolmetzJapanAsiya Javayant QUALIFIED
Adams C WaycottIndiaElwin Sharvill QUALIFIED
Aruna C WieserJapanIoni Bowcher NEW
Wickens B GlickIndiaAsiya Javayant UNQUALIFIED
James N PoquetteJapanStephen Shaw PROPOSAL
Maria Z NestleIndiaIoni Bowcher QUALIFIED
Octavia O OstroskyItalyElwin Sharvill NEGOTIATION
Aruna F CaudyArgentinaAnna Fali NEW
Jeanfrancois O PerinIndiaBernardo Dominic PROPOSAL
Julie O PoquetteRussiaIoni Bowcher UNQUALIFIED
Ivar J CaudySpainIvan Magalhaes RENEWAL
James T AlbaresAustraliaXuxue Feng NEGOTIATION
Kaitlin D RutaBrazilAsiya Javayant RENEWAL
Jennifer I RutaRussiaXuxue Feng UNQUALIFIED
Clifford J NickaAustraliaIvan Magalhaes NEW
Kaitlin P RulapaughIndiaAmy Elsner PROPOSAL
Misaki C RutaRussiaAsiya Javayant NEGOTIATION
Cody F CaudyCanadaIvan Magalhaes RENEWAL
Jones X RutaSpainAsiya Javayant UNQUALIFIED
Jefferson J RutaArgentinaXuxue Feng PROPOSAL
Jones U InouyeGermanyIoni Bowcher RENEWAL
Faith X MacleadArgentinaStephen Shaw UNQUALIFIED
Wickens L SergiCanadaOnyama Limba NEW
Salvatore Y VenereItalyBernardo Dominic NEW
Mujtaba Z FlosiAustraliaIvan Magalhaes NEW
Tony Y AlbaresAustraliaElwin Sharvill PROPOSAL
Aruna Y BologniaJapanStephen Shaw NEW
Munro V GillianUnited KingdomBernardo Dominic QUALIFIED
Maria M MacleadJapanAsiya Javayant RENEWAL
Alejandro M MaletGermanyAsiya Javayant PROPOSAL
Frozen Columns
Name
Kaitlin G Shinko
Juan G Doe
Silvio W Poquette
Adams R Kolmetz
Mujtaba W Inouye
Jones U Gaucho
Kaitlin W Butt
Greenwood W Foller
Darci U Figeroa
Maria O Gillian
Silvio D Garufi
Misaki R Poquette
Maria W Nestle
Smith F Inouye
James I Campain
Greenwood F Flosi
Kaitlin N Butt
Alejandro H Doe
David Y Perin
Kaitlin I Wieser
Octavia D Maclead
Kadeem N Venere
Wickens J Saylors
Julie H Gaucho
Jeanfrancois D Sergi
Jones X Gaucho
Mujtaba O Glick
Darci A Dilliard
Ivar D Amigon
Leon O Marrier
Ashley V Figeroa
Arvin O Bowley
Adams I Poquette
Ricardo V Morasca
Isabel W Caldarera
Stacey C Rulapaugh
Smith U Caudy
David T Campain
Aruna H Albares
Johnson L Morasca
Rodrigues P Tollner
Rodrigues B Gaucho
Jeanfrancois L Slusarski
Smith F Royster
Kadeem C Dilliard
Nicolas B Ferencz
Isabel M Saylors
James X Bolognia
Arvin O Garufi
Munro T Nicka
IdCountryDate
1000United Kingdom2026-06-30
1001Japan2026-07-02
1002Italy2026-07-18
1003Russia2026-07-14
1004Brazil2026-06-25
1005India2026-07-14
1006India2026-07-18
1007Canada2026-07-01
1008Spain2026-07-05
1009Argentina2026-07-10
1010Russia2026-07-12
1011Japan2026-07-02
1012Japan2026-07-19
1013Canada2026-07-18
1014Italy2026-07-15
1015Spain2026-07-09
1016Brazil2026-06-22
1017France2026-06-27
1018Japan2026-06-24
1019Germany2026-07-11
1020Spain2026-07-18
1021India2026-06-28
1022Spain2026-07-10
1023Argentina2026-06-25
1024France2026-07-07
1025Canada2026-07-19
1026Brazil2026-07-20
1027Australia2026-07-11
1028Japan2026-06-28
1029Australia2026-07-15
1030United Kingdom2026-07-09
1031Brazil2026-07-19
1032Australia2026-07-03
1033Brazil2026-07-10
1034Canada2026-07-03
1035Russia2026-07-03
1036France2026-07-15
1037Brazil2026-06-22
1038Canada2026-06-23
1039Australia2026-07-15
1040Germany2026-07-13
1041Germany2026-07-17
1042India2026-07-18
1043Japan2026-07-17
1044Spain2026-06-30
1045Japan2026-07-13
1046Argentina2026-07-02
1047Germany2026-06-24
1048France2026-07-06
1049Russia2026-06-22

On-Demand Data

NameIdCountryDate
Murillo Q Slusarski1000Russia2026-07-03
Aruna S Foller1001France2026-06-25
Aruna J Foller1002Russia2026-07-01
Deepesh X Ruta1003Spain2026-07-05
Jennifer Y Chui1004France2026-07-10
Sinclair E Figeroa1005Russia2026-07-03
Leja M Perin1006Italy2026-07-01
Sinclair W Ferencz1007Russia2026-06-30
Sinclair Z Albares1008Canada2026-06-29
Jones H Gillian1009Italy2026-07-20
Nicolas R Briddick1010Russia2026-07-07
Emily P Dilliard1011Brazil2026-07-15
Izzy F Darakjy1012Italy2026-06-22
Kaitlin A Rim1013Italy2026-07-13
Julie H Ruta1014France2026-06-26
Jones U Bowley1015United Kingdom2026-07-10
Silvio U Doe1016Russia2026-07-12
Mayumi E Sergi1017Germany2026-07-02
Jones V Caudy1018Argentina2026-07-16
Aruna D Ruta1019Italy2026-06-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens S RutaGermanyStephen Shaw PROPOSAL
Arvin G FerenczIndiaIvan Magalhaes NEGOTIATION
Mayumi Q NickaCanadaXuxue Feng UNQUALIFIED
Salvatore F MacleadSpainStephen Shaw QUALIFIED
Ricardo B ShinkoSpainIoni Bowcher QUALIFIED
Stacey T AmigonItalyStephen Shaw NEGOTIATION
Ashley Z SaylorsIndiaOnyama Limba NEGOTIATION
Aika C InouyeAustraliaXuxue Feng UNQUALIFIED
Nicolas B GlickArgentinaStephen Shaw RENEWAL
Emily L KuskoBrazilAmy Elsner RENEWAL
Mayumi D SaylorsIndiaAnna Fali NEGOTIATION
David R CaudyAustraliaAsiya Javayant NEGOTIATION
Greenwood T DilliardGermanyStephen Shaw PROPOSAL
Munro O StockhamBrazilBernardo Dominic UNQUALIFIED
Tony J BologniaUnited KingdomIvan Magalhaes RENEWAL
Clifford Z FigeroaBrazilIoni Bowcher NEW
Aditya Q RimCanadaAmy Elsner NEW
Aika G NestleCanadaAnna Fali UNQUALIFIED
Francesco S AmigonCanadaBernardo Dominic NEW
Silvio C AmigonIndiaAsiya Javayant QUALIFIED
Deepesh E SaylorsArgentinaAmy Elsner QUALIFIED
Chavez R FigeroaIndiaAmy Elsner QUALIFIED
Emily B TollnerRussiaIvan Magalhaes NEGOTIATION
Ashley V StensethJapanXuxue Feng RENEWAL
Kaitlin F GauchoIndiaElwin Sharvill RENEWAL
Clifford N BologniaRussiaIvan Magalhaes NEGOTIATION
Aika A VocelkaBrazilIoni Bowcher NEGOTIATION
Nicolas F CaldareraSpainElwin Sharvill QUALIFIED
Octavia F FerenczRussiaBernardo Dominic NEGOTIATION
Tony Q GlickFranceXuxue Feng QUALIFIED
Costa J GarufiUnited KingdomStephen Shaw UNQUALIFIED
Ricardo V GauchoBrazilElwin Sharvill UNQUALIFIED
Darci P OldroydBrazilAmy Elsner NEGOTIATION
Murillo Z GillianRussiaIoni Bowcher UNQUALIFIED
Johnson U ShinkoAustraliaStephen Shaw RENEWAL
Arvin A WaycottRussiaIvan Magalhaes RENEWAL
Maria C ShinkoJapanIvan Magalhaes NEW
Ashley Z StensethArgentinaAsiya Javayant PROPOSAL
Stacey Y GlickIndiaAmy Elsner RENEWAL
Adams G SaylorsFranceBernardo Dominic QUALIFIED

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