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
Smith W TollnerBrazilAmy Elsner PROPOSAL
Jeanfrancois Z GauchoSpainXuxue Feng UNQUALIFIED
Antonio B FigeroaUnited KingdomOnyama Limba UNQUALIFIED
Silvio C RimJapanElwin Sharvill RENEWAL
Maria N SaylorsUnited KingdomElwin Sharvill UNQUALIFIED
Maria T StockhamSpainOnyama Limba NEGOTIATION
Jeanfrancois O OstroskyArgentinaAmy Elsner PROPOSAL
Murillo M RimGermanyAmy Elsner NEW
Wickens L SlusarskiFranceAsiya Javayant QUALIFIED
Isabel M MarrierSpainElwin Sharvill UNQUALIFIED
Jeanfrancois T SlusarskiRussiaBernardo Dominic NEW
Mayumi W NestleIndiaStephen Shaw NEW
Faith Z RutaBrazilBernardo Dominic RENEWAL
Deepesh S MorascaJapanAsiya Javayant NEW
Aruna F MarrierItalyIvan Magalhaes NEGOTIATION
Ivar V RutaUnited KingdomAnna Fali QUALIFIED
Johnson E SlusarskiCanadaAsiya Javayant NEW
Cody F MacleadUnited KingdomOnyama Limba RENEWAL
Costa M MaletAustraliaIoni Bowcher UNQUALIFIED
Juan N RutaItalyElwin Sharvill UNQUALIFIED
Aruna M GillianGermanyXuxue Feng NEW
Kadeem L RulapaughJapanIoni Bowcher QUALIFIED
Murillo E SlusarskiCanadaXuxue Feng PROPOSAL
Emily H PoquetteSpainIvan Magalhaes UNQUALIFIED
Isabel B WieserItalyOnyama Limba NEW
Antonio I VocelkaIndiaAmy Elsner QUALIFIED
Adams Z WieserGermanyAmy Elsner UNQUALIFIED
Francesco B GarufiIndiaAsiya Javayant NEW
Emily R DoeRussiaElwin Sharvill RENEWAL
Chavez W RutaArgentinaAsiya Javayant NEW
Johnson I RutaItalyElwin Sharvill NEW
Munro H FigeroaGermanyIoni Bowcher NEW
Jennifer L AlbaresAustraliaXuxue Feng UNQUALIFIED
Claire O IturbideAustraliaAnna Fali PROPOSAL
Misaki C GarufiFranceIvan Magalhaes UNQUALIFIED
Kaitlin E GarufiFranceAmy Elsner UNQUALIFIED
Francesco T DoeItalyAmy Elsner UNQUALIFIED
Ivar V StensethIndiaAnna Fali NEW
Izzy O PoquetteRussiaElwin Sharvill QUALIFIED
Isabel W GlickAustraliaElwin Sharvill NEW
Alejandro C FerenczArgentinaAsiya Javayant NEW
Ivar C MorascaAustraliaAmy Elsner QUALIFIED
Chavez S GauchoSpainBernardo Dominic RENEWAL
Chavez L AmigonAustraliaAmy Elsner NEGOTIATION
Greenwood U ButtBrazilElwin Sharvill QUALIFIED
Alejandro W NickaUnited KingdomElwin Sharvill RENEWAL
Cody C PoquetteRussiaAsiya Javayant QUALIFIED
Jeanfrancois V DarakjyIndiaStephen Shaw PROPOSAL
Misaki I PerinCanadaAnna Fali NEGOTIATION
Smith A VocelkaRussiaStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Jones C RutaItalyOnyama Limba PROPOSAL
Arvin L SergiCanadaAmy Elsner RENEWAL
Jones N AlbaresFranceAnna Fali QUALIFIED
Jones R RutaUnited KingdomAsiya Javayant QUALIFIED
Claire B NestleFranceXuxue Feng QUALIFIED
Murillo I MaletJapanAmy Elsner PROPOSAL
Nicolas I SchemmerAustraliaIvan Magalhaes UNQUALIFIED
Ashley X CaudyRussiaAnna Fali QUALIFIED
Faith V SaylorsJapanIvan Magalhaes NEGOTIATION
Mayumi I RimGermanyAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna N RoysterGermany2026-07-27Feltz Printing Service QUALIFIED49Onyama Limba
1001Aika S SergiRussia2026-08-07Chemel, James L Cpa PROPOSAL73Anna Fali
1002Jefferson D RoysterCanada2026-07-25King, Christopher A Esq RENEWAL98Asiya Javayant
1003Tony M GlickUnited Kingdom2026-08-06Chapman, Ross E Esq QUALIFIED1Onyama Limba
1004Maisha I TollnerAustralia2026-08-14Truhlar And Truhlar Attys UNQUALIFIED63Elwin Sharvill
1005Ricardo S GarufiIndia2026-07-21Truhlar And Truhlar Attys PROPOSAL39Onyama Limba
1006Cody O BowleyCanada2026-07-26Chapman, Ross E Esq QUALIFIED34Onyama Limba
1007Morrow T OldroydAustralia2026-07-16Benton, John B Jr RENEWAL41Elwin Sharvill
1008Deepesh Q GillianUnited Kingdom2026-08-01King, Christopher A Esq NEW17Anna Fali
1009Salvatore Y PoquetteUnited Kingdom2026-08-07Chemel, James L Cpa PROPOSAL10Onyama Limba
1010Arvin J PoquetteFrance2026-07-20Benton, John B Jr UNQUALIFIED32Onyama Limba
1011Chavez L BowleyItaly2026-07-29King, Christopher A Esq PROPOSAL21Xuxue Feng
1012Adams D MaletSpain2026-08-07Chemel, James L Cpa UNQUALIFIED49Xuxue Feng
1013Mujtaba A NickaUnited Kingdom2026-08-11Chapman, Ross E Esq RENEWAL98Ioni Bowcher
1014Emily S MaletGermany2026-08-01Feiner Bros PROPOSAL77Asiya Javayant
1015Cody Y SchemmerUnited Kingdom2026-07-22Chanay, Jeffrey A Esq PROPOSAL15Stephen Shaw
1016Ashley S StockhamArgentina2026-07-21Feltz Printing Service NEW62Xuxue Feng
1017Emily I TollnerJapan2026-08-02Chemel, James L Cpa PROPOSAL6Bernardo Dominic
1018Arvin S ButtCanada2026-08-13Commercial Press QUALIFIED2Elwin Sharvill
1019Octavia L FerenczUnited Kingdom2026-08-13Buckley Miller Wright UNQUALIFIED84Stephen Shaw
1020James V ButtIndia2026-07-23Buckley Miller Wright PROPOSAL29Elwin Sharvill
1021Kaitlin H AlbaresGermany2026-07-22Feltz Printing Service NEW86Amy Elsner
1022Morrow C GarufiJapan2026-07-29King, Christopher A Esq NEGOTIATION90Anna Fali
1023Murillo S InouyeArgentina2026-07-27Commercial Press NEGOTIATION86Onyama Limba
1024Aditya M CaldareraItaly2026-08-07Benton, John B Jr NEW56Elwin Sharvill
1025Jefferson H CaldareraUnited Kingdom2026-07-22Feiner Bros RENEWAL55Elwin Sharvill
1026James W StensethFrance2026-08-06Truhlar And Truhlar Attys PROPOSAL52Xuxue Feng
1027Leon P MarrierFrance2026-07-18Buckley Miller Wright UNQUALIFIED79Stephen Shaw
1028Antonio J ButtItaly2026-08-08Chapman, Ross E Esq QUALIFIED83Elwin Sharvill
1029Tony S SergiCanada2026-07-26Feltz Printing Service RENEWAL19Stephen Shaw
1030Jefferson D MacleadArgentina2026-07-25Morlong Associates QUALIFIED61Ioni Bowcher
1031Clifford N PaprockiCanada2026-07-28Morlong Associates UNQUALIFIED68Anna Fali
1032Costa G OldroydJapan2026-07-18Chanay, Jeffrey A Esq QUALIFIED60Anna Fali
1033Mujtaba P WaycottFrance2026-07-21Morlong Associates PROPOSAL41Bernardo Dominic
1034Kaitlin G ChuiArgentina2026-08-08Morlong Associates QUALIFIED27Bernardo Dominic
1035Arvin Z StockhamIndia2026-08-14Chemel, James L Cpa NEW47Ioni Bowcher
1036Tony H KolmetzJapan2026-07-24Printing Dimensions NEGOTIATION57Asiya Javayant
1037Wickens W VenereSpain2026-08-05Truhlar And Truhlar Attys NEW72Xuxue Feng
1038Smith I PerinUnited Kingdom2026-08-05King, Christopher A Esq NEW51Elwin Sharvill
1039Smith B KuskoAustralia2026-08-05Rangoni Of Florence PROPOSAL0Bernardo Dominic
1040Faith F GlickBrazil2026-08-13Buckley Miller Wright NEGOTIATION58Ivan Magalhaes
1041Mayumi F DoeFrance2026-07-17Commercial Press RENEWAL44Asiya Javayant
1042Alejandro R VocelkaAustralia2026-07-19Chanay, Jeffrey A Esq RENEWAL93Xuxue Feng
1043Izzy P SlusarskiAustralia2026-07-16Printing Dimensions NEW12Xuxue Feng
1044Jefferson Z NickaFrance2026-07-30Truhlar And Truhlar Attys NEW62Asiya Javayant
1045Johnson Y IturbideRussia2026-07-31Printing Dimensions NEGOTIATION55Stephen Shaw
1046Misaki A ButtJapan2026-08-11Chapman, Ross E Esq NEGOTIATION71Amy Elsner
1047Juan I KolmetzAustralia2026-07-19Commercial Press UNQUALIFIED59Elwin Sharvill
1048Julie M FerenczItaly2026-08-06Benton, John B Jr PROPOSAL10Bernardo Dominic
1049Aditya K PoquetteAustralia2026-08-10Feiner Bros QUALIFIED77Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Wickens D SlusarskiFranceBernardo Dominic RENEWAL
Costa B InouyeJapanXuxue Feng UNQUALIFIED
Leja Y MarrierArgentinaAmy Elsner RENEWAL
Murillo F WaycottRussiaIoni Bowcher QUALIFIED
Aditya O StockhamBrazilXuxue Feng NEW
Arvin Y BriddickIndiaOnyama Limba UNQUALIFIED
Octavia A CaldareraFranceXuxue Feng QUALIFIED
Arvin F CampainFranceAsiya Javayant UNQUALIFIED
Johnson B FollerGermanyAsiya Javayant NEW
Chavez R MarrierItalyBernardo Dominic UNQUALIFIED
Jones X DoeIndiaElwin Sharvill PROPOSAL
Arvin W FigeroaIndiaBernardo Dominic UNQUALIFIED
Greenwood Y FollerIndiaElwin Sharvill RENEWAL
Tony T KolmetzUnited KingdomAsiya Javayant RENEWAL
Salvatore V CaudyArgentinaAmy Elsner NEW
Jones L AmigonCanadaIvan Magalhaes NEGOTIATION
Jefferson L MorascaFranceAmy Elsner PROPOSAL
James V OldroydAustraliaAsiya Javayant UNQUALIFIED
Morrow G AmigonBrazilAnna Fali PROPOSAL
Aika X CampainCanadaStephen Shaw QUALIFIED
Morrow I WaycottAustraliaIoni Bowcher NEW
Salvatore Y MorascaJapanAmy Elsner UNQUALIFIED
Kadeem Y CaudyItalyAsiya Javayant RENEWAL
Aika D VocelkaJapanAsiya Javayant PROPOSAL
Smith N CampainAustraliaStephen Shaw QUALIFIED
Izzy A MaletSpainIvan Magalhaes PROPOSAL
Wickens G SchemmerFranceBernardo Dominic QUALIFIED
Juan G CampainSpainAmy Elsner PROPOSAL
Maria F WhobreyIndiaXuxue Feng PROPOSAL
Julie M BowleyJapanXuxue Feng UNQUALIFIED
Murillo R GlickIndiaAmy Elsner NEW
Isabel L GlickIndiaOnyama Limba QUALIFIED
Murillo B AmigonItalyIvan Magalhaes NEW
Maria S ButtGermanyOnyama Limba QUALIFIED
Leja T DoeCanadaStephen Shaw UNQUALIFIED
Clifford X FollerUnited KingdomStephen Shaw QUALIFIED
Izzy L AlbaresRussiaAsiya Javayant NEW
Munro Y WieserJapanOnyama Limba NEW
Juan V IturbideIndiaElwin Sharvill QUALIFIED
Faith Z DarakjyArgentinaXuxue Feng NEGOTIATION
Silvio R DoeUnited KingdomAmy Elsner PROPOSAL
Emily W SlusarskiUnited KingdomXuxue Feng UNQUALIFIED
Leja R FlosiBrazilXuxue Feng QUALIFIED
Tony T BowleyJapanStephen Shaw PROPOSAL
Emily I VenereGermanyIoni Bowcher PROPOSAL
Aika M FigeroaUnited KingdomStephen Shaw RENEWAL
Johnson E WhobreyFranceBernardo Dominic PROPOSAL
Kaitlin R GillianAustraliaIvan Magalhaes UNQUALIFIED
Jones E RutaIndiaAsiya Javayant RENEWAL
Antonio Z OldroydGermanyOnyama Limba QUALIFIED
Frozen Columns
Name
Jones K Garufi
Julie G Waycott
Costa D Campain
Misaki S Malet
Emily Z Nestle
Jeanfrancois C Albares
Antonio W Gaucho
Jeanfrancois Q Shinko
Murillo S Slusarski
Jefferson E Morasca
Arvin R Stockham
Emily I Rulapaugh
Octavia Z Garufi
Leon K Schemmer
Aika C Butt
Claire M Kusko
Antonio X Figeroa
Murillo Y Perin
Smith D Garufi
Cody H Morasca
Izzy V Shinko
Julie J Waycott
Ivar R Glick
Alejandro S Amigon
Nicolas N Perin
Leja M Oldroyd
Octavia Z Kusko
Deepesh G Briddick
Cody L Maclead
Murillo S Rulapaugh
Francesco Y Malet
Ricardo O Inouye
Maisha I Rulapaugh
Nicolas L Malet
Wickens C Albares
Nicolas P Malet
James X Kolmetz
Deepesh Z Ferencz
Morrow O Campain
Johnson Y Slusarski
Morrow B Flosi
Silvio D Bowley
Adams L Butt
Smith D Glick
Arvin L Nicka
Cody S Amigon
Greenwood K Butt
David J Perin
Stacey Y Malet
Julie M Garufi
IdCountryDate
1000France2026-08-06
1001India2026-08-12
1002Japan2026-07-30
1003Canada2026-08-05
1004Canada2026-07-24
1005Canada2026-07-18
1006India2026-08-14
1007Argentina2026-07-28
1008Brazil2026-08-10
1009Russia2026-07-17
1010Germany2026-07-19
1011France2026-08-07
1012Australia2026-08-13
1013Australia2026-07-23
1014United Kingdom2026-08-11
1015France2026-07-23
1016Canada2026-08-02
1017Brazil2026-07-20
1018Russia2026-07-26
1019Australia2026-07-18
1020United Kingdom2026-07-21
1021Australia2026-08-08
1022India2026-08-03
1023India2026-08-10
1024United Kingdom2026-07-19
1025Canada2026-08-06
1026India2026-08-11
1027Argentina2026-07-25
1028India2026-08-07
1029Russia2026-07-26
1030Russia2026-08-04
1031Brazil2026-08-03
1032Australia2026-07-21
1033Germany2026-07-29
1034Italy2026-07-16
1035Canada2026-07-17
1036France2026-07-22
1037Australia2026-07-21
1038United Kingdom2026-08-06
1039Russia2026-08-11
1040India2026-07-17
1041Spain2026-07-26
1042India2026-07-25
1043Australia2026-07-24
1044India2026-07-25
1045Russia2026-08-03
1046Spain2026-08-14
1047Italy2026-07-20
1048Russia2026-08-06
1049Brazil2026-07-30

On-Demand Data

NameIdCountryDate
Ashley F Campain1000Japan2026-08-08
Silvio M Darakjy1001Japan2026-08-08
Misaki O Malet1002Australia2026-08-08
Murillo O Schemmer1003Canada2026-07-22
Ricardo Q Bolognia1004Australia2026-07-30
Morrow Y Amigon1005Italy2026-07-30
Francesco H Schemmer1006Australia2026-08-05
Misaki B Oldroyd1007India2026-08-10
Aditya J Kusko1008India2026-07-26
Darci C Butt1009Brazil2026-08-09
Misaki B Poquette1010Russia2026-07-25
Clifford K Caudy1011Germany2026-07-31
Faith T Nicka1012Spain2026-08-11
Nicolas J Royster1013Argentina2026-07-24
Mujtaba F Foller1014Germany2026-08-09
Tony S Butt1015Argentina2026-07-18
Smith O Kusko1016Canada2026-08-11
Mayumi W Nestle1017France2026-08-04
Darci I Wieser1018Canada2026-08-13
Deepesh D Nestle1019India2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David P SaylorsGermanyOnyama Limba QUALIFIED
Francesco G ButtSpainAnna Fali NEGOTIATION
Ashley G RulapaughRussiaIvan Magalhaes UNQUALIFIED
Juan A DoeIndiaBernardo Dominic UNQUALIFIED
Arvin R DoeGermanyStephen Shaw NEGOTIATION
Julie D PoquetteItalyElwin Sharvill QUALIFIED
Ashley G RulapaughFranceIoni Bowcher QUALIFIED
Kadeem T NickaSpainXuxue Feng RENEWAL
Kaitlin D IturbideJapanAsiya Javayant NEW
Rodrigues U MaletSpainAnna Fali QUALIFIED
Wickens P DarakjyUnited KingdomStephen Shaw PROPOSAL
Kadeem S SlusarskiSpainXuxue Feng NEGOTIATION
Leon V OstroskyItalyOnyama Limba NEW
Emily G KuskoArgentinaAsiya Javayant RENEWAL
Jefferson X OstroskyBrazilIoni Bowcher PROPOSAL
Leja U DoeSpainIoni Bowcher NEW
Claire S SaylorsFranceAmy Elsner UNQUALIFIED
Adams X FollerCanadaIoni Bowcher NEGOTIATION
Maisha D BologniaFranceXuxue Feng NEGOTIATION
Julie C FlosiJapanAnna Fali RENEWAL
Aditya U FollerCanadaAsiya Javayant NEGOTIATION
Kaitlin O WieserUnited KingdomElwin Sharvill UNQUALIFIED
Sinclair V NestleIndiaAnna Fali NEW
Wickens Y IturbideArgentinaIvan Magalhaes NEGOTIATION
Salvatore M InouyeSpainXuxue Feng PROPOSAL
Jefferson B RoysterSpainStephen Shaw UNQUALIFIED
Antonio G KuskoIndiaIoni Bowcher NEW
Kaitlin Y StockhamJapanAsiya Javayant PROPOSAL
Isabel Y WaycottCanadaXuxue Feng PROPOSAL
Leon Y StockhamCanadaOnyama Limba PROPOSAL
Alejandro Y PerinFranceBernardo Dominic UNQUALIFIED
Jones C VenereIndiaStephen Shaw RENEWAL
Leja L DoeGermanyAsiya Javayant QUALIFIED
Isabel A PerinFranceAmy Elsner RENEWAL
Murillo O WaycottItalyIoni Bowcher NEW
Aruna Q TollnerUnited KingdomBernardo Dominic NEW
David R ChuiArgentinaBernardo Dominic NEGOTIATION
Salvatore I DilliardAustraliaBernardo Dominic QUALIFIED
Faith Y NickaIndiaElwin Sharvill RENEWAL
Jones Y RutaAustraliaIvan Magalhaes NEGOTIATION

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