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
Bangla
Bosnian
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
Uzbek
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Blue Saga Blue
Vela Blue Vela Blue
Arya Blue Arya Blue
Bootstrap
Bootstrap Blue Light Bootstrap Blue Light
Bootstrap Purple Light Bootstrap Purple Light
Bootstrap Blue Dark Bootstrap Blue Dark
Bootstrap Purple Dark Bootstrap Purple Dark
Material Design
Material Indigo Light Material Indigo Light
Material Deep Purple Light Material Deep Purple Light
Material Indigo Dark Material Indigo Dark
Material Deep Purple Dark Material Deep Purple Dark
Material Design Compact
Material Compact Indigo Light Material Compact Indigo Light
Material Compact Deep Purple Light Material Compact Deep Purple Light
Material Compact Indigo Dark Material Compact Indigo Dark
Material Compact Deep Purple Dark Material Compact Deep Purple Dark
Legacy
Nova Light Nova Light
Nova Dark Nova Dark
Nova Colored Nova Colored
Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink

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 F StensethAustraliaIoni Bowcher NEW
Emily I GillianGermanyStephen Shaw NEW
Ashley R PoquetteIndiaElwin Sharvill UNQUALIFIED
Aruna A WhobreyGermanyAmy Elsner NEGOTIATION
Claire E RoysterItalyAsiya Javayant NEW
Sinclair H WieserFranceAnna Fali RENEWAL
David L KolmetzRussiaXuxue Feng NEW
Silvio Y FollerUnited KingdomBernardo Dominic RENEWAL
Claire J OldroydGermanyAsiya Javayant QUALIFIED
Francesco D SchemmerRussiaAsiya Javayant UNQUALIFIED
Leon U DoeIndiaAsiya Javayant NEGOTIATION
Smith O RutaCanadaAsiya Javayant PROPOSAL
Adams N MaletJapanAnna Fali RENEWAL
Maria E RoysterItalyStephen Shaw PROPOSAL
Izzy C SaylorsUnited KingdomOnyama Limba NEGOTIATION
Mujtaba R RutaSpainElwin Sharvill QUALIFIED
Salvatore T AmigonAustraliaStephen Shaw PROPOSAL
Jeanfrancois R ButtArgentinaStephen Shaw NEW
Mayumi O GillianCanadaAmy Elsner RENEWAL
Mujtaba Q GauchoItalyIvan Magalhaes UNQUALIFIED
Murillo S ButtBrazilAmy Elsner NEGOTIATION
Mujtaba L MorascaIndiaStephen Shaw UNQUALIFIED
Emily S ChuiSpainBernardo Dominic RENEWAL
Leon K DoeItalyElwin Sharvill NEW
Nicolas V VenereItalyIoni Bowcher UNQUALIFIED
Maisha S BowleyGermanyStephen Shaw QUALIFIED
James L RimGermanyAmy Elsner NEW
Munro S RutaUnited KingdomXuxue Feng RENEWAL
Ricardo M DilliardUnited KingdomIoni Bowcher UNQUALIFIED
Silvio X NickaUnited KingdomStephen Shaw NEW
Julie T DilliardIndiaOnyama Limba NEW
Costa Z WhobreySpainAmy Elsner NEW
Sinclair X RoysterBrazilAnna Fali UNQUALIFIED
Aditya C GauchoCanadaAsiya Javayant UNQUALIFIED
Aruna B SlusarskiUnited KingdomAnna Fali PROPOSAL
Alejandro K PoquetteBrazilIoni Bowcher PROPOSAL
Isabel R DoeBrazilElwin Sharvill PROPOSAL
Maria U ChuiUnited KingdomElwin Sharvill PROPOSAL
Jeanfrancois X CampainSpainElwin Sharvill PROPOSAL
Jones I MorascaJapanStephen Shaw UNQUALIFIED
Alejandro Y MacleadBrazilXuxue Feng UNQUALIFIED
Jeanfrancois P GillianSpainOnyama Limba NEGOTIATION
Julie T OldroydAustraliaOnyama Limba UNQUALIFIED
Faith O MacleadRussiaIvan Magalhaes NEGOTIATION
Smith R MaletGermanyOnyama Limba NEGOTIATION
Maisha B KuskoUnited KingdomElwin Sharvill QUALIFIED
Tony Y RutaSpainIoni Bowcher NEW
Darci A DarakjyFranceAmy Elsner RENEWAL
Leja H MaletSpainIvan Magalhaes RENEWAL
Nicolas B GlickArgentinaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues V IturbideAustraliaBernardo Dominic QUALIFIED
Aditya C RimCanadaAsiya Javayant NEW
Tony Q FollerFranceXuxue Feng UNQUALIFIED
Ivar B DilliardCanadaAnna Fali UNQUALIFIED
Cody J FollerItalyStephen Shaw UNQUALIFIED
Stacey X GillianJapanXuxue Feng PROPOSAL
Misaki N SaylorsRussiaXuxue Feng PROPOSAL
Emily I MacleadItalyAnna Fali NEGOTIATION
Clifford Y GillianGermanyAnna Fali RENEWAL
Octavia J PerinCanadaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith A NickaItaly2025-06-20Dorl, James J Esq PROPOSAL58Amy Elsner
1001Arvin R BologniaFrance2025-06-11Truhlar And Truhlar Attys NEW5Stephen Shaw
1002Deepesh S StensethArgentina2025-07-05Rousseaux, Michael Esq QUALIFIED53Amy Elsner
1003Maria R PoquetteArgentina2025-07-06Morlong Associates RENEWAL58Anna Fali
1004Kaitlin Y MarrierItaly2025-06-27Chemel, James L Cpa NEW40Anna Fali
1005Aditya A DilliardSpain2025-06-10Chanay, Jeffrey A Esq NEGOTIATION66Ioni Bowcher
1006Tony H CampainCanada2025-06-15Rousseaux, Michael Esq RENEWAL75Onyama Limba
1007Sinclair J BriddickFrance2025-06-17Feltz Printing Service NEGOTIATION88Amy Elsner
1008Cody J GlickIndia2025-06-23Commercial Press RENEWAL94Onyama Limba
1009Faith T GlickJapan2025-07-05Feltz Printing Service RENEWAL83Elwin Sharvill
1010Tony U FerenczCanada2025-06-24Chapman, Ross E Esq UNQUALIFIED75Stephen Shaw
1011Greenwood Z SchemmerAustralia2025-06-16Chanay, Jeffrey A Esq QUALIFIED5Amy Elsner
1012Ricardo T AmigonJapan2025-06-16Rangoni Of Florence NEGOTIATION36Elwin Sharvill
1013David A GillianItaly2025-06-21Truhlar And Truhlar Attys RENEWAL98Asiya Javayant
1014Johnson D MacleadItaly2025-06-11Buckley Miller Wright QUALIFIED70Ivan Magalhaes
1015Maria K WaycottArgentina2025-06-18Chapman, Ross E Esq QUALIFIED89Xuxue Feng
1016Clifford S FigeroaAustralia2025-06-12Feltz Printing Service QUALIFIED48Xuxue Feng
1017Tony W BowleyItaly2025-06-13Morlong Associates NEW65Ivan Magalhaes
1018Munro B CaldareraUnited Kingdom2025-06-23Buckley Miller Wright QUALIFIED84Ioni Bowcher
1019Mayumi K WaycottFrance2025-06-24Benton, John B Jr PROPOSAL67Elwin Sharvill
1020Ivar X ButtSpain2025-06-26Printing Dimensions QUALIFIED13Onyama Limba
1021Costa T VocelkaRussia2025-07-04Truhlar And Truhlar Attys NEGOTIATION91Amy Elsner
1022Jeanfrancois T GarufiBrazil2025-06-29Chanay, Jeffrey A Esq NEW91Onyama Limba
1023Ricardo E MaletFrance2025-07-06Dorl, James J Esq NEGOTIATION35Elwin Sharvill
1024Jones R PoquetteIndia2025-06-25King, Christopher A Esq QUALIFIED3Ivan Magalhaes
1025Greenwood Z RoysterCanada2025-07-04Morlong Associates QUALIFIED95Ioni Bowcher
1026Johnson C WieserAustralia2025-07-06Truhlar And Truhlar Attys RENEWAL18Ioni Bowcher
1027Kaitlin G FlosiIndia2025-06-25Chapman, Ross E Esq RENEWAL63Elwin Sharvill
1028James O RulapaughFrance2025-06-14Chemel, James L Cpa PROPOSAL91Stephen Shaw
1029Isabel E VocelkaRussia2025-07-07Chapman, Ross E Esq NEGOTIATION82Amy Elsner
1030Ashley L RimIndia2025-07-07Dorl, James J Esq PROPOSAL87Anna Fali
1031Arvin H RoysterUnited Kingdom2025-06-16Chanay, Jeffrey A Esq NEGOTIATION44Xuxue Feng
1032Clifford W IturbideRussia2025-06-28Feltz Printing Service PROPOSAL69Asiya Javayant
1033Jennifer D FlosiUnited Kingdom2025-06-25Benton, John B Jr PROPOSAL9Amy Elsner
1034Francesco C VocelkaItaly2025-06-29Chapman, Ross E Esq UNQUALIFIED74Xuxue Feng
1035Juan Q InouyeCanada2025-07-03Feiner Bros RENEWAL64Onyama Limba
1036Jefferson Y InouyeSpain2025-06-20Printing Dimensions NEGOTIATION74Amy Elsner
1037Izzy Y FigeroaAustralia2025-07-04Chapman, Ross E Esq RENEWAL13Amy Elsner
1038Nicolas M FollerUnited Kingdom2025-06-22Printing Dimensions NEGOTIATION1Anna Fali
1039Jennifer B GillianItaly2025-07-03Dorl, James J Esq NEGOTIATION96Anna Fali
1040Izzy T StensethUnited Kingdom2025-06-16Chanay, Jeffrey A Esq QUALIFIED69Elwin Sharvill
1041Maisha V FigeroaUnited Kingdom2025-07-07Printing Dimensions QUALIFIED1Amy Elsner
1042Kadeem J MaletSpain2025-06-26Truhlar And Truhlar Attys UNQUALIFIED12Ivan Magalhaes
1043Maria F SergiRussia2025-07-08Chemel, James L Cpa NEW41Bernardo Dominic
1044Smith C MaletJapan2025-07-01King, Christopher A Esq PROPOSAL57Anna Fali
1045Kadeem E CaldareraFrance2025-07-05Feltz Printing Service NEGOTIATION48Elwin Sharvill
1046Ashley V DarakjyFrance2025-07-06Buckley Miller Wright NEW81Asiya Javayant
1047Ivar Y CaldareraFrance2025-06-15Printing Dimensions NEGOTIATION24Onyama Limba
1048Octavia E MorascaIndia2025-06-21King, Christopher A Esq QUALIFIED4Elwin Sharvill
1049Emily V FlosiArgentina2025-06-30Rangoni Of Florence RENEWAL6Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Cody J GarufiArgentinaAsiya Javayant UNQUALIFIED
Silvio U GarufiGermanyBernardo Dominic NEW
Munro F ShinkoRussiaIvan Magalhaes PROPOSAL
Maria A RoysterAustraliaAsiya Javayant QUALIFIED
Misaki R SchemmerArgentinaIvan Magalhaes PROPOSAL
Morrow E PoquetteSpainOnyama Limba NEW
Francesco Y StockhamItalyIvan Magalhaes NEW
Aditya P BriddickCanadaXuxue Feng UNQUALIFIED
Maria Z GarufiIndiaAnna Fali NEW
Izzy X SchemmerRussiaAnna Fali RENEWAL
Kadeem Q PaprockiArgentinaIoni Bowcher UNQUALIFIED
Isabel H ButtUnited KingdomAmy Elsner UNQUALIFIED
Morrow B VenereCanadaXuxue Feng UNQUALIFIED
Arvin K WhobreyItalyAsiya Javayant NEW
David D DarakjyIndiaElwin Sharvill PROPOSAL
Nicolas X AmigonArgentinaAsiya Javayant NEGOTIATION
Greenwood S SergiBrazilOnyama Limba QUALIFIED
Aditya B BriddickRussiaAnna Fali QUALIFIED
Deepesh G RulapaughJapanXuxue Feng NEW
Smith M OstroskySpainStephen Shaw QUALIFIED
Maria Y WieserBrazilAmy Elsner UNQUALIFIED
Jefferson Z PerinIndiaElwin Sharvill QUALIFIED
Salvatore A RutaCanadaElwin Sharvill NEW
Julie A FigeroaIndiaOnyama Limba PROPOSAL
Murillo A DoeUnited KingdomOnyama Limba NEGOTIATION
Emily J GillianAustraliaIvan Magalhaes UNQUALIFIED
Mayumi M CaudyRussiaIoni Bowcher RENEWAL
Cody A RoysterIndiaElwin Sharvill NEGOTIATION
Rodrigues X RulapaughBrazilIoni Bowcher QUALIFIED
Munro M DilliardUnited KingdomBernardo Dominic RENEWAL
James W MorascaBrazilBernardo Dominic RENEWAL
Clifford X KuskoCanadaAnna Fali NEW
Octavia F OstroskyArgentinaIoni Bowcher QUALIFIED
Deepesh K GauchoFranceElwin Sharvill NEW
Rodrigues V FerenczUnited KingdomIoni Bowcher UNQUALIFIED
Misaki R WaycottIndiaOnyama Limba RENEWAL
Nicolas I IturbideGermanyAsiya Javayant UNQUALIFIED
Juan D MaletGermanyAsiya Javayant NEGOTIATION
Maria K MaletAustraliaIoni Bowcher NEGOTIATION
Adams D AlbaresJapanElwin Sharvill PROPOSAL
Aika U OldroydRussiaOnyama Limba RENEWAL
Greenwood V CaldareraJapanElwin Sharvill NEGOTIATION
Aruna K MarrierGermanyIvan Magalhaes NEW
Isabel B StockhamUnited KingdomAnna Fali QUALIFIED
Claire X BologniaBrazilIoni Bowcher RENEWAL
Wickens G FerenczArgentinaElwin Sharvill NEW
Smith L VocelkaRussiaStephen Shaw NEGOTIATION
Kaitlin A PerinUnited KingdomBernardo Dominic UNQUALIFIED
Maisha Q PerinBrazilXuxue Feng NEGOTIATION
Cody R KuskoIndiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Kaitlin W Iturbide
Adams A Ostrosky
Kadeem O Stockham
Misaki I Nestle
Leon G Chui
Nicolas E Figeroa
David F Kusko
Aika W Darakjy
Deepesh M Rim
Morrow Q Tollner
Johnson L Vocelka
Rodrigues U Caudy
Misaki C Rim
Maria D Ferencz
Chavez O Morasca
Tony E Caldarera
Izzy V Kusko
Ashley E Perin
Francesco C Marrier
Silvio E Sergi
Jones F Gaucho
Stacey U Briddick
Sinclair H Ferencz
Wickens G Caldarera
Adams Q Ruta
Octavia Q Nestle
Wickens D Caldarera
Julie K Doe
Johnson P Stockham
Jennifer T Ferencz
Sinclair Z Nestle
Alejandro F Waycott
Leon M Nicka
Morrow S Shinko
Sinclair H Briddick
Kaitlin I Shinko
Stacey I Ruta
Leja C Maclead
Sinclair L Morasca
Johnson V Wieser
Jefferson Z Ruta
Arvin A Schemmer
Maisha J Nicka
Alejandro J Amigon
Adams I Wieser
David O Nicka
Smith K Oldroyd
Clifford V Kusko
Alejandro T Foller
Adams K Bolognia
IdCountryDate
1000Germany2025-06-22
1001Argentina2025-06-26
1002Japan2025-06-25
1003Russia2025-07-05
1004Spain2025-06-16
1005Germany2025-06-29
1006Australia2025-06-17
1007Italy2025-07-04
1008Brazil2025-07-01
1009India2025-06-13
1010Spain2025-07-06
1011Argentina2025-06-15
1012Spain2025-07-04
1013Japan2025-06-25
1014Argentina2025-06-14
1015Australia2025-06-16
1016Brazil2025-07-02
1017United Kingdom2025-06-25
1018Germany2025-06-16
1019Spain2025-06-27
1020Brazil2025-06-27
1021Italy2025-06-20
1022Japan2025-06-19
1023France2025-06-19
1024Germany2025-06-30
1025Germany2025-06-11
1026Argentina2025-06-29
1027France2025-06-14
1028Brazil2025-06-10
1029Japan2025-06-16
1030Italy2025-06-16
1031Italy2025-07-08
1032Canada2025-06-30
1033Italy2025-07-04
1034Spain2025-06-24
1035Germany2025-07-08
1036Spain2025-06-20
1037Australia2025-06-30
1038Brazil2025-07-04
1039Brazil2025-06-29
1040Russia2025-07-04
1041Australia2025-07-09
1042France2025-06-22
1043Russia2025-07-01
1044Brazil2025-07-06
1045Russia2025-06-17
1046Spain2025-07-02
1047Italy2025-06-26
1048India2025-06-12
1049Canada2025-06-26

On-Demand Data

NameIdCountryDate
Julie D Glick1000Russia2025-06-17
Sinclair Z Ostrosky1001Russia2025-07-08
Maria X Garufi1002Brazil2025-07-09
Jennifer B Malet1003Germany2025-06-28
Faith V Chui1004United Kingdom2025-07-05
Izzy J Schemmer1005United Kingdom2025-06-26
Murillo E Darakjy1006Japan2025-06-24
Adams Y Wieser1007Australia2025-06-19
Arvin G Butt1008France2025-06-16
Munro H Caldarera1009United Kingdom2025-07-07
Rodrigues I Gaucho1010Germany2025-07-06
Kaitlin I Perin1011Canada2025-06-26
Greenwood L Garufi1012Australia2025-07-06
Greenwood J Gillian1013Australia2025-06-11
Antonio F Albares1014Germany2025-06-12
Silvio S Rulapaugh1015Japan2025-06-19
Antonio I Gillian1016India2025-07-04
Ricardo C Butt1017Italy2025-06-24
Isabel H Doe1018United Kingdom2025-07-08
Faith L Ruta1019Japan2025-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio U BriddickIndiaStephen Shaw NEGOTIATION
Alejandro G RoysterAustraliaStephen Shaw PROPOSAL
Kaitlin J GarufiGermanyOnyama Limba RENEWAL
Darci S BologniaUnited KingdomOnyama Limba PROPOSAL
Clifford F GarufiItalyXuxue Feng NEW
Emily D FlosiRussiaElwin Sharvill QUALIFIED
Adams Z SaylorsItalyAsiya Javayant PROPOSAL
Jones Z FerenczIndiaXuxue Feng NEGOTIATION
Salvatore B ButtUnited KingdomAmy Elsner NEW
Ivar H CaudySpainOnyama Limba NEW
Maria V AlbaresJapanOnyama Limba NEW
Ricardo W MaletBrazilStephen Shaw RENEWAL
Chavez I SchemmerFranceIoni Bowcher QUALIFIED
Misaki U NestleIndiaIvan Magalhaes UNQUALIFIED
Misaki T AlbaresAustraliaAmy Elsner NEGOTIATION
Arvin R FigeroaSpainIoni Bowcher PROPOSAL
Ashley Z DarakjySpainAnna Fali PROPOSAL
Ivar S TollnerBrazilAmy Elsner QUALIFIED
Costa A WaycottItalyIvan Magalhaes QUALIFIED
Adams X FlosiGermanyStephen Shaw NEW
Leja E MaletJapanXuxue Feng NEW
Clifford O BowleyAustraliaAmy Elsner PROPOSAL
Greenwood M AmigonIndiaIvan Magalhaes PROPOSAL
Maria N OstroskyCanadaElwin Sharvill NEGOTIATION
Silvio O RutaIndiaIvan Magalhaes PROPOSAL
Octavia R GlickFranceStephen Shaw PROPOSAL
Adams J ChuiArgentinaAmy Elsner NEGOTIATION
Mayumi J ButtFranceStephen Shaw NEW
Antonio U OldroydSpainIoni Bowcher NEW
Isabel Z WieserJapanAnna Fali NEW
Ricardo E IturbideIndiaAmy Elsner NEW
Claire T GillianFranceXuxue Feng RENEWAL
Deepesh D GarufiBrazilAmy Elsner UNQUALIFIED
Leon Y MaletRussiaAnna Fali NEW
James T WhobreyRussiaAnna Fali UNQUALIFIED
Octavia U InouyeBrazilElwin Sharvill RENEWAL
Ricardo E VocelkaSpainAnna Fali RENEWAL
Sinclair N SchemmerItalyStephen Shaw UNQUALIFIED
Munro F RulapaughIndiaBernardo Dominic RENEWAL
Aruna S NickaAustraliaStephen Shaw 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" frozenColumnsAlignment="left">
            <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>