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 R IturbideItalyIvan Magalhaes UNQUALIFIED
Octavia V TollnerJapanAmy Elsner NEW
Arvin W WhobreyArgentinaIoni Bowcher UNQUALIFIED
Mayumi L MacleadRussiaIoni Bowcher PROPOSAL
Ivar F SaylorsArgentinaIoni Bowcher NEW
Darci O StensethSpainElwin Sharvill QUALIFIED
Munro K NickaBrazilBernardo Dominic UNQUALIFIED
Jennifer H NickaBrazilIvan Magalhaes NEW
Stacey M AlbaresArgentinaAmy Elsner NEW
Smith P MacleadFranceBernardo Dominic UNQUALIFIED
Aditya S StensethArgentinaElwin Sharvill PROPOSAL
Octavia Q AmigonRussiaIvan Magalhaes NEW
Murillo L OstroskyBrazilStephen Shaw NEGOTIATION
Rodrigues M RutaUnited KingdomAsiya Javayant UNQUALIFIED
Maisha A AmigonIndiaIvan Magalhaes UNQUALIFIED
Mayumi C MorascaArgentinaIvan Magalhaes NEW
Greenwood C ShinkoGermanyBernardo Dominic UNQUALIFIED
Chavez Z RulapaughFranceBernardo Dominic NEW
Clifford S FerenczGermanyAmy Elsner RENEWAL
Maisha A PaprockiUnited KingdomAnna Fali NEGOTIATION
Cody M PaprockiRussiaXuxue Feng PROPOSAL
Morrow R FigeroaFranceStephen Shaw NEW
Alejandro G NickaUnited KingdomAnna Fali UNQUALIFIED
Ashley L DarakjyGermanyIoni Bowcher NEW
Munro P SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Jones J BowleyItalyAnna Fali RENEWAL
Alejandro J GlickAustraliaAmy Elsner NEGOTIATION
Claire S WaycottBrazilAmy Elsner NEGOTIATION
James R RulapaughUnited KingdomAmy Elsner UNQUALIFIED
Deepesh I AmigonItalyAnna Fali QUALIFIED
Jeanfrancois A SaylorsItalyElwin Sharvill RENEWAL
Tony V GarufiItalyOnyama Limba NEGOTIATION
Mujtaba D CampainFranceAsiya Javayant RENEWAL
Morrow E IturbideAustraliaIoni Bowcher UNQUALIFIED
Maria X IturbideJapanOnyama Limba NEW
Leja F PaprockiIndiaBernardo Dominic UNQUALIFIED
Murillo B PaprockiUnited KingdomXuxue Feng NEW
Cody J ChuiRussiaIvan Magalhaes NEW
Leja H FigeroaRussiaIoni Bowcher RENEWAL
Arvin C FlosiArgentinaAmy Elsner QUALIFIED
Aditya C InouyeItalyOnyama Limba NEGOTIATION
Cody L MaletArgentinaXuxue Feng UNQUALIFIED
Chavez Q DilliardBrazilElwin Sharvill PROPOSAL
Ivar J FerenczRussiaStephen Shaw NEGOTIATION
Cody C SergiIndiaElwin Sharvill NEW
Leja H WaycottJapanElwin Sharvill UNQUALIFIED
Emily K ShinkoAustraliaIvan Magalhaes NEGOTIATION
Ricardo O AmigonUnited KingdomOnyama Limba NEW
Smith V IturbideUnited KingdomOnyama Limba NEGOTIATION
Ashley B KuskoBrazilElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aika I DoeFranceAmy Elsner RENEWAL
Jeanfrancois Z ButtArgentinaStephen Shaw PROPOSAL
Clifford P BowleyCanadaAsiya Javayant QUALIFIED
Sinclair N RulapaughArgentinaOnyama Limba UNQUALIFIED
Kaitlin G GlickIndiaIoni Bowcher UNQUALIFIED
Izzy P StockhamArgentinaOnyama Limba QUALIFIED
Darci B FerenczRussiaElwin Sharvill UNQUALIFIED
Maisha X PerinAustraliaAnna Fali QUALIFIED
Maisha H NickaItalyBernardo Dominic RENEWAL
Sinclair D NickaIndiaBernardo Dominic NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi U GarufiCanada2026-08-02Chapman, Ross E Esq NEGOTIATION64Onyama Limba
1001Mujtaba M GillianRussia2026-08-04Printing Dimensions RENEWAL1Ioni Bowcher
1002Mujtaba Z SaylorsIndia2026-07-30Commercial Press NEGOTIATION95Bernardo Dominic
1003Faith N MaletUnited Kingdom2026-08-10Rousseaux, Michael Esq UNQUALIFIED73Asiya Javayant
1004Kadeem M WhobreyArgentina2026-08-06Feiner Bros NEW25Onyama Limba
1005Cody E DoeArgentina2026-07-30Printing Dimensions NEGOTIATION92Amy Elsner
1006Emily F GlickArgentina2026-07-29Buckley Miller Wright QUALIFIED1Asiya Javayant
1007Leja E StensethCanada2026-08-03Feiner Bros NEGOTIATION51Stephen Shaw
1008Isabel F IturbideUnited Kingdom2026-08-06Rangoni Of Florence QUALIFIED93Xuxue Feng
1009Leja G OstroskyItaly2026-07-29King, Christopher A Esq UNQUALIFIED78Anna Fali
1010Rodrigues R DoeIndia2026-07-31Chanay, Jeffrey A Esq UNQUALIFIED46Anna Fali
1011Ivar C TollnerAustralia2026-07-20Chanay, Jeffrey A Esq NEGOTIATION45Ivan Magalhaes
1012Alejandro L CampainCanada2026-07-23Chapman, Ross E Esq NEGOTIATION34Amy Elsner
1013Octavia N StensethAustralia2026-08-01Rangoni Of Florence RENEWAL26Xuxue Feng
1014Cody T AmigonBrazil2026-07-24Buckley Miller Wright PROPOSAL69Bernardo Dominic
1015Leon Q WieserFrance2026-07-20Buckley Miller Wright NEW85Ivan Magalhaes
1016Aruna S WaycottItaly2026-07-28Feltz Printing Service QUALIFIED18Xuxue Feng
1017Mujtaba E RimJapan2026-07-17Feiner Bros NEW54Asiya Javayant
1018Leon U BowleyJapan2026-07-27Feiner Bros PROPOSAL17Stephen Shaw
1019Smith S FigeroaBrazil2026-08-13Chapman, Ross E Esq NEW65Amy Elsner
1020Aruna H BologniaGermany2026-07-19Rousseaux, Michael Esq PROPOSAL66Bernardo Dominic
1021Rodrigues N ButtRussia2026-07-27Dorl, James J Esq NEW57Ioni Bowcher
1022Aika R GillianBrazil2026-07-21Rousseaux, Michael Esq UNQUALIFIED85Anna Fali
1023Faith V CaudyGermany2026-08-12Benton, John B Jr NEGOTIATION85Ioni Bowcher
1024Octavia B PaprockiAustralia2026-07-31Buckley Miller Wright RENEWAL41Ioni Bowcher
1025Stacey Y OstroskyCanada2026-08-12Chanay, Jeffrey A Esq PROPOSAL72Ioni Bowcher
1026Maria K GlickAustralia2026-07-28Feiner Bros NEW69Bernardo Dominic
1027Stacey S GarufiBrazil2026-07-21Benton, John B Jr PROPOSAL43Onyama Limba
1028Arvin Q GauchoGermany2026-08-08Feiner Bros RENEWAL46Stephen Shaw
1029Leon M VenereCanada2026-08-04Feltz Printing Service NEGOTIATION12Bernardo Dominic
1030Ashley R MacleadFrance2026-07-18Dorl, James J Esq UNQUALIFIED87Bernardo Dominic
1031Kadeem O OldroydRussia2026-07-21Printing Dimensions PROPOSAL87Elwin Sharvill
1032Emily W AmigonItaly2026-07-30Printing Dimensions UNQUALIFIED63Xuxue Feng
1033Arvin N OstroskyBrazil2026-07-20Chemel, James L Cpa PROPOSAL94Amy Elsner
1034Johnson Y OstroskyGermany2026-07-31Morlong Associates NEGOTIATION78Amy Elsner
1035Misaki V VocelkaFrance2026-08-12Buckley Miller Wright RENEWAL74Ioni Bowcher
1036Aruna S NestleJapan2026-08-09Printing Dimensions UNQUALIFIED83Amy Elsner
1037Greenwood A StockhamUnited Kingdom2026-07-15Dorl, James J Esq QUALIFIED61Anna Fali
1038Leja F MaletFrance2026-08-12Truhlar And Truhlar Attys RENEWAL80Ioni Bowcher
1039Munro A KolmetzJapan2026-08-12Buckley Miller Wright UNQUALIFIED52Elwin Sharvill
1040Johnson R BowleySpain2026-08-04Commercial Press PROPOSAL27Onyama Limba
1041Morrow C FerenczItaly2026-07-18Benton, John B Jr QUALIFIED44Xuxue Feng
1042Wickens C WhobreyGermany2026-07-27Chemel, James L Cpa RENEWAL57Onyama Limba
1043Octavia J AmigonRussia2026-08-07Morlong Associates NEW85Asiya Javayant
1044Octavia H OldroydAustralia2026-07-29Rangoni Of Florence NEGOTIATION57Bernardo Dominic
1045David R GarufiSpain2026-07-21Rousseaux, Michael Esq UNQUALIFIED41Ivan Magalhaes
1046Mujtaba A OldroydArgentina2026-07-19Feiner Bros PROPOSAL76Amy Elsner
1047Izzy K MaletSpain2026-07-30Benton, John B Jr PROPOSAL29Asiya Javayant
1048Jeanfrancois W MarrierArgentina2026-08-04Feltz Printing Service QUALIFIED99Anna Fali
1049Mujtaba Y FlosiItaly2026-07-28Morlong Associates QUALIFIED49Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Silvio E FigeroaItalyElwin Sharvill PROPOSAL
Ricardo E CampainAustraliaStephen Shaw QUALIFIED
Deepesh N WieserGermanyIvan Magalhaes PROPOSAL
Stacey U MaletBrazilElwin Sharvill NEGOTIATION
Aruna L CaudySpainIoni Bowcher UNQUALIFIED
Izzy Q RutaGermanyAmy Elsner NEGOTIATION
Nicolas W ButtFranceXuxue Feng RENEWAL
Faith D GillianArgentinaIvan Magalhaes RENEWAL
Maria D InouyeItalyIoni Bowcher QUALIFIED
Francesco E KuskoJapanOnyama Limba NEW
David T DoeBrazilXuxue Feng PROPOSAL
Cody A RimIndiaAmy Elsner RENEWAL
Emily S AlbaresBrazilAsiya Javayant RENEWAL
Ricardo C PoquetteArgentinaIvan Magalhaes NEW
Jones D NestleItalyAnna Fali QUALIFIED
Julie R RulapaughBrazilStephen Shaw NEW
Julie C RimSpainAnna Fali NEW
Julie H MarrierIndiaAsiya Javayant NEW
Juan T GlickIndiaOnyama Limba RENEWAL
Faith C PerinJapanAnna Fali QUALIFIED
Juan J InouyeGermanyXuxue Feng UNQUALIFIED
Mujtaba R OstroskyBrazilAnna Fali RENEWAL
Nicolas I ButtBrazilIvan Magalhaes NEW
Izzy G OldroydArgentinaStephen Shaw NEW
Jones I KolmetzJapanAsiya Javayant QUALIFIED
Maisha P GarufiRussiaAsiya Javayant PROPOSAL
Francesco T OldroydUnited KingdomElwin Sharvill NEGOTIATION
Jefferson Q StensethGermanyElwin Sharvill NEGOTIATION
Leon S PerinGermanyBernardo Dominic NEGOTIATION
Juan L FlosiCanadaStephen Shaw PROPOSAL
Kadeem B StensethAustraliaBernardo Dominic NEGOTIATION
Jeanfrancois D AmigonFranceOnyama Limba RENEWAL
Julie H WieserSpainOnyama Limba PROPOSAL
Kaitlin X GarufiBrazilBernardo Dominic RENEWAL
Octavia Z SlusarskiCanadaAnna Fali RENEWAL
Isabel G DilliardFranceBernardo Dominic NEGOTIATION
Smith P CaudyIndiaAnna Fali PROPOSAL
Jennifer N ChuiArgentinaAmy Elsner NEW
Mayumi X ButtSpainOnyama Limba NEW
Johnson M IturbideBrazilAmy Elsner PROPOSAL
Antonio V WieserCanadaAsiya Javayant UNQUALIFIED
Julie Y PoquetteCanadaAsiya Javayant RENEWAL
Deepesh C StockhamBrazilAmy Elsner PROPOSAL
Stacey N GarufiBrazilOnyama Limba QUALIFIED
Mujtaba J AmigonBrazilAmy Elsner RENEWAL
Alejandro R GauchoAustraliaAmy Elsner RENEWAL
Isabel B ButtIndiaElwin Sharvill UNQUALIFIED
Leja W FlosiRussiaXuxue Feng PROPOSAL
Smith C StensethRussiaBernardo Dominic NEGOTIATION
Cody S AlbaresCanadaAnna Fali UNQUALIFIED
Frozen Columns
Name
Morrow C Flosi
Maisha M Nicka
Clifford D Kolmetz
Kaitlin R Malet
David Y Wieser
Morrow J Flosi
Izzy B Doe
Nicolas L Iturbide
Jeanfrancois V Figeroa
Smith S Figeroa
Jeanfrancois B Saylors
Greenwood E Kolmetz
Arvin W Chui
Octavia S Sergi
Kaitlin W Foller
Emily E Flosi
Misaki M Tollner
Jones U Marrier
Antonio O Inouye
Morrow K Paprocki
Jones Z Perin
Ivar V Royster
Nicolas A Maclead
David F Kusko
Faith K Venere
Ricardo Z Waycott
Costa M Chui
Sinclair S Ferencz
Cody L Maclead
Costa W Kolmetz
Stacey P Darakjy
Jefferson M Marrier
Stacey E Nestle
Deepesh U Darakjy
Kadeem I Flosi
Kaitlin F Dilliard
Leon H Albares
Ricardo Y Amigon
Jeanfrancois K Foller
Francesco G Nestle
Sinclair K Shinko
Ricardo D Bowley
Maria I Rim
Sinclair O Caldarera
Aditya C Sergi
Kaitlin I Briddick
Johnson C Figeroa
Costa L Malet
Aditya N Royster
Jeanfrancois G Stenseth
IdCountryDate
1000India2026-08-08
1001India2026-08-01
1002Japan2026-08-05
1003Germany2026-08-07
1004Germany2026-08-10
1005Japan2026-07-15
1006Germany2026-07-27
1007United Kingdom2026-07-20
1008France2026-08-09
1009Russia2026-07-25
1010France2026-07-26
1011Russia2026-07-30
1012Italy2026-07-29
1013Argentina2026-07-18
1014United Kingdom2026-07-29
1015United Kingdom2026-07-17
1016Germany2026-07-26
1017Russia2026-07-31
1018Italy2026-08-13
1019United Kingdom2026-07-30
1020Brazil2026-08-12
1021United Kingdom2026-07-17
1022Italy2026-07-27
1023Germany2026-07-30
1024Italy2026-08-05
1025Spain2026-07-25
1026Canada2026-07-24
1027Spain2026-08-09
1028Argentina2026-07-31
1029Russia2026-07-23
1030Argentina2026-08-12
1031Australia2026-07-18
1032Italy2026-07-23
1033Russia2026-07-31
1034Australia2026-07-28
1035Canada2026-08-07
1036Brazil2026-08-06
1037Canada2026-07-19
1038Japan2026-08-12
1039Russia2026-08-03
1040Canada2026-08-09
1041Brazil2026-07-19
1042Russia2026-08-08
1043United Kingdom2026-07-29
1044Russia2026-08-02
1045Germany2026-08-09
1046Australia2026-07-16
1047Canada2026-07-28
1048Brazil2026-08-02
1049Spain2026-08-08

On-Demand Data

NameIdCountryDate
Ricardo G Amigon1000France2026-08-03
Claire O Foller1001United Kingdom2026-08-02
Sinclair N Whobrey1002United Kingdom2026-08-03
Nicolas B Campain1003Russia2026-08-06
Darci M Sergi1004Australia2026-08-08
Stacey G Rim1005United Kingdom2026-08-07
Johnson H Schemmer1006Argentina2026-07-31
Aruna V Saylors1007Italy2026-07-29
Aditya O Schemmer1008United Kingdom2026-07-29
Clifford B Figeroa1009Canada2026-07-20
Leon T Kusko1010Russia2026-07-22
Adams Z Chui1011Japan2026-08-04
Salvatore E Figeroa1012Australia2026-08-04
Julie Q Ostrosky1013Argentina2026-08-09
Smith U Glick1014India2026-07-18
Octavia F Rulapaugh1015India2026-07-15
Kadeem X Slusarski1016Spain2026-08-07
Silvio B Saylors1017Russia2026-07-17
Julie V Chui1018France2026-07-28
Ricardo J Perin1019Australia2026-07-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford P MaletBrazilStephen Shaw NEW
Clifford J SchemmerAustraliaAsiya Javayant RENEWAL
Faith J WaycottGermanyElwin Sharvill RENEWAL
Julie F MarrierAustraliaAsiya Javayant NEGOTIATION
Maisha T RimCanadaIoni Bowcher QUALIFIED
Salvatore I AmigonGermanyAsiya Javayant NEW
Rodrigues X VenereFranceBernardo Dominic NEW
Leon S NickaAustraliaAsiya Javayant NEW
Isabel Y IturbideBrazilAnna Fali NEW
Isabel U MarrierIndiaAnna Fali UNQUALIFIED
Antonio J KolmetzAustraliaBernardo Dominic QUALIFIED
Francesco J GarufiJapanIoni Bowcher RENEWAL
Clifford O GillianBrazilAnna Fali NEW
Salvatore G VocelkaJapanAsiya Javayant NEGOTIATION
Nicolas I RutaCanadaBernardo Dominic NEW
Ivar R SaylorsFranceIvan Magalhaes NEGOTIATION
Ricardo F FlosiJapanBernardo Dominic PROPOSAL
Antonio U StensethJapanAmy Elsner RENEWAL
Ivar Z SlusarskiSpainAmy Elsner NEGOTIATION
Clifford W OldroydCanadaXuxue Feng RENEWAL
Misaki B OldroydIndiaBernardo Dominic UNQUALIFIED
Sinclair L AlbaresGermanyBernardo Dominic NEW
Antonio Y SlusarskiRussiaXuxue Feng RENEWAL
Antonio P PoquetteArgentinaIoni Bowcher QUALIFIED
Maisha I MacleadBrazilIoni Bowcher PROPOSAL
Francesco E WhobreyJapanStephen Shaw NEW
Jeanfrancois L CaudyGermanyStephen Shaw PROPOSAL
Adams N GlickBrazilAmy Elsner NEGOTIATION
Leon T GarufiUnited KingdomStephen Shaw PROPOSAL
Munro H BriddickGermanyElwin Sharvill UNQUALIFIED
Deepesh D OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro Z CaldareraUnited KingdomAmy Elsner QUALIFIED
Wickens C WhobreyItalyIvan Magalhaes RENEWAL
Maria F GillianJapanAnna Fali QUALIFIED
Chavez G MacleadIndiaAnna Fali RENEWAL
Kaitlin D CaudyJapanStephen Shaw UNQUALIFIED
Kadeem V FerenczUnited KingdomAmy Elsner PROPOSAL
Arvin U VocelkaRussiaElwin Sharvill PROPOSAL
Johnson C AmigonSpainIvan Magalhaes RENEWAL
Aika F GauchoUnited KingdomElwin Sharvill 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>