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
Greenwood L PoquetteArgentinaIoni Bowcher RENEWAL
Salvatore X NestleAustraliaXuxue Feng QUALIFIED
Stacey X SergiGermanyBernardo Dominic UNQUALIFIED
Jones Y NickaBrazilIvan Magalhaes QUALIFIED
Leja Z StockhamSpainAnna Fali RENEWAL
Aditya S RutaArgentinaIvan Magalhaes QUALIFIED
Smith I InouyeJapanXuxue Feng UNQUALIFIED
Nicolas H IturbideRussiaAmy Elsner QUALIFIED
Maisha B FerenczItalyElwin Sharvill NEGOTIATION
Darci E CaudyCanadaOnyama Limba NEGOTIATION
Maisha E NestleAustraliaIoni Bowcher RENEWAL
Maisha F DilliardRussiaXuxue Feng UNQUALIFIED
Emily O MorascaFranceStephen Shaw NEW
Clifford J GillianUnited KingdomElwin Sharvill QUALIFIED
Darci N GlickUnited KingdomStephen Shaw RENEWAL
Mayumi E FigeroaGermanyBernardo Dominic NEGOTIATION
Salvatore R GarufiJapanIvan Magalhaes RENEWAL
Aditya H FollerRussiaAmy Elsner RENEWAL
Stacey L FigeroaRussiaAmy Elsner RENEWAL
Stacey R ButtItalyElwin Sharvill NEGOTIATION
Mujtaba E KolmetzFranceAnna Fali PROPOSAL
Adams J AlbaresJapanBernardo Dominic QUALIFIED
Darci Y RutaItalyIvan Magalhaes UNQUALIFIED
Tony M CaldareraRussiaIoni Bowcher UNQUALIFIED
Maisha I GillianItalyAnna Fali NEGOTIATION
Murillo K DarakjyArgentinaAnna Fali NEW
Rodrigues B PoquetteCanadaIvan Magalhaes NEW
Francesco O MacleadAustraliaIoni Bowcher NEGOTIATION
Ashley E SergiBrazilAsiya Javayant NEW
Alejandro T OstroskyCanadaAmy Elsner PROPOSAL
Ivar Y CampainItalyBernardo Dominic PROPOSAL
Ricardo S BologniaGermanyAnna Fali NEW
Wickens A DoeFranceAnna Fali RENEWAL
Sinclair W MacleadArgentinaIvan Magalhaes RENEWAL
Smith E SaylorsJapanIvan Magalhaes NEW
Smith H KuskoSpainIoni Bowcher QUALIFIED
Kadeem Q RutaCanadaElwin Sharvill NEW
Morrow M RimIndiaAnna Fali NEW
Costa J NestleSpainIvan Magalhaes UNQUALIFIED
Leon Q PoquetteBrazilBernardo Dominic RENEWAL
Stacey F MarrierRussiaBernardo Dominic PROPOSAL
Ashley P BriddickCanadaStephen Shaw RENEWAL
Nicolas V PoquetteAustraliaXuxue Feng NEGOTIATION
Misaki J FollerJapanStephen Shaw QUALIFIED
Darci I AlbaresBrazilOnyama Limba RENEWAL
David B MaletSpainAnna Fali QUALIFIED
Mayumi S MorascaCanadaOnyama Limba RENEWAL
Mujtaba R FollerBrazilStephen Shaw QUALIFIED
Tony E MarrierIndiaAmy Elsner PROPOSAL
Aruna C InouyeGermanyOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Nicolas C KolmetzBrazilXuxue Feng RENEWAL
Tony G BowleyArgentinaElwin Sharvill UNQUALIFIED
Juan Y FollerGermanyOnyama Limba UNQUALIFIED
Alejandro X ButtJapanBernardo Dominic NEW
Francesco A TollnerArgentinaAnna Fali NEGOTIATION
Maria M MorascaGermanyIoni Bowcher NEGOTIATION
Deepesh D VenereCanadaXuxue Feng PROPOSAL
Cody J DoeFranceAmy Elsner NEGOTIATION
Mayumi E WhobreyAustraliaBernardo Dominic QUALIFIED
Johnson M WaycottGermanyStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon C RoysterAustralia2026-07-13Chemel, James L Cpa PROPOSAL33Ioni Bowcher
1001Munro M WaycottItaly2026-07-05Rousseaux, Michael Esq NEGOTIATION60Ivan Magalhaes
1002Leon J WieserItaly2026-06-28Feiner Bros RENEWAL40Xuxue Feng
1003Izzy Z PaprockiArgentina2026-07-01Buckley Miller Wright NEGOTIATION42Bernardo Dominic
1004Misaki A RutaAustralia2026-06-29Truhlar And Truhlar Attys NEW93Amy Elsner
1005Jones N KolmetzCanada2026-06-21Chemel, James L Cpa RENEWAL69Bernardo Dominic
1006Maisha T StockhamIndia2026-06-24Chemel, James L Cpa PROPOSAL44Asiya Javayant
1007Chavez F WhobreyArgentina2026-07-07Benton, John B Jr PROPOSAL12Stephen Shaw
1008Mujtaba V RoysterSpain2026-06-22Feiner Bros NEGOTIATION37Asiya Javayant
1009Greenwood X BowleyJapan2026-07-12Benton, John B Jr NEW9Bernardo Dominic
1010Munro J OstroskyRussia2026-06-22Chemel, James L Cpa NEW85Ivan Magalhaes
1011Silvio M StensethBrazil2026-06-30Feltz Printing Service NEW6Elwin Sharvill
1012Isabel N RulapaughCanada2026-06-27Morlong Associates PROPOSAL0Elwin Sharvill
1013Adams K AlbaresIndia2026-06-29Chanay, Jeffrey A Esq UNQUALIFIED90Bernardo Dominic
1014Morrow O WaycottFrance2026-07-07King, Christopher A Esq PROPOSAL52Asiya Javayant
1015Julie R DilliardUnited Kingdom2026-06-25Buckley Miller Wright QUALIFIED19Xuxue Feng
1016Deepesh I PoquetteRussia2026-07-19Chanay, Jeffrey A Esq PROPOSAL42Elwin Sharvill
1017Emily Z RulapaughAustralia2026-07-13King, Christopher A Esq PROPOSAL26Anna Fali
1018Rodrigues T MorascaJapan2026-06-21Chemel, James L Cpa PROPOSAL43Anna Fali
1019Cody J RoysterArgentina2026-07-17Dorl, James J Esq NEGOTIATION11Stephen Shaw
1020Stacey U VocelkaRussia2026-07-13Chemel, James L Cpa NEGOTIATION28Ioni Bowcher
1021Deepesh T GauchoCanada2026-07-09Rousseaux, Michael Esq PROPOSAL6Bernardo Dominic
1022Mayumi O ButtItaly2026-06-24Rangoni Of Florence NEGOTIATION19Ioni Bowcher
1023Ashley H WieserBrazil2026-06-25Chapman, Ross E Esq NEGOTIATION86Xuxue Feng
1024Sinclair W SlusarskiGermany2026-07-20Chanay, Jeffrey A Esq NEGOTIATION32Onyama Limba
1025Mayumi H WhobreyJapan2026-06-29Truhlar And Truhlar Attys NEW7Amy Elsner
1026Aika S MaletArgentina2026-06-27Morlong Associates PROPOSAL74Xuxue Feng
1027Sinclair K GillianItaly2026-06-22Chemel, James L Cpa NEW26Ioni Bowcher
1028Jeanfrancois S MacleadJapan2026-07-14King, Christopher A Esq NEW50Elwin Sharvill
1029Leon N StockhamFrance2026-06-26Rousseaux, Michael Esq NEW81Elwin Sharvill
1030Smith Y BowleyRussia2026-06-21Chapman, Ross E Esq NEW71Ivan Magalhaes
1031Silvio W GarufiFrance2026-07-14Dorl, James J Esq QUALIFIED64Onyama Limba
1032Rodrigues S BologniaIndia2026-06-28Chapman, Ross E Esq UNQUALIFIED82Onyama Limba
1033Mayumi N OldroydSpain2026-07-03Commercial Press RENEWAL80Asiya Javayant
1034Francesco W RulapaughItaly2026-07-16Truhlar And Truhlar Attys UNQUALIFIED77Amy Elsner
1035Claire E RutaIndia2026-06-26King, Christopher A Esq RENEWAL71Asiya Javayant
1036David R ButtAustralia2026-07-08Chanay, Jeffrey A Esq QUALIFIED78Bernardo Dominic
1037Francesco S KuskoBrazil2026-07-08Feltz Printing Service PROPOSAL68Onyama Limba
1038David A FollerCanada2026-07-01Rousseaux, Michael Esq PROPOSAL67Elwin Sharvill
1039Izzy L PaprockiFrance2026-07-14Feiner Bros PROPOSAL17Ioni Bowcher
1040Mujtaba V IturbideGermany2026-06-28Feltz Printing Service RENEWAL30Anna Fali
1041Jones E WhobreyItaly2026-07-20Chapman, Ross E Esq QUALIFIED68Onyama Limba
1042Isabel M IturbideItaly2026-07-10Buckley Miller Wright QUALIFIED43Stephen Shaw
1043Francesco T FlosiFrance2026-06-21Rangoni Of Florence NEGOTIATION57Ivan Magalhaes
1044Maisha K MaletItaly2026-07-19Chapman, Ross E Esq PROPOSAL52Ivan Magalhaes
1045Jennifer I DoeArgentina2026-07-01Rangoni Of Florence NEW68Elwin Sharvill
1046Sinclair L WhobreyBrazil2026-07-17Truhlar And Truhlar Attys NEW70Ioni Bowcher
1047Deepesh W CampainFrance2026-07-18Chemel, James L Cpa PROPOSAL66Bernardo Dominic
1048Claire C GillianUnited Kingdom2026-07-12King, Christopher A Esq PROPOSAL37Stephen Shaw
1049Kadeem G CaldareraBrazil2026-07-04Dorl, James J Esq PROPOSAL11Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Smith U BologniaFranceIoni Bowcher NEGOTIATION
Morrow B PerinUnited KingdomAmy Elsner RENEWAL
Salvatore C KolmetzFranceAmy Elsner PROPOSAL
Sinclair S StockhamIndiaAmy Elsner NEGOTIATION
Faith S CaudyUnited KingdomAmy Elsner NEGOTIATION
Ivar V MarrierRussiaBernardo Dominic RENEWAL
Chavez F OstroskyBrazilIoni Bowcher QUALIFIED
Rodrigues H StensethCanadaAsiya Javayant NEW
Mayumi U NestleUnited KingdomAnna Fali PROPOSAL
Stacey G SlusarskiFranceStephen Shaw UNQUALIFIED
Darci T GillianCanadaOnyama Limba QUALIFIED
Julie U PoquetteItalyStephen Shaw QUALIFIED
Maria Y SchemmerSpainAmy Elsner RENEWAL
Juan Q ChuiJapanAmy Elsner NEGOTIATION
Smith C BriddickArgentinaIvan Magalhaes NEW
Aika C SchemmerAustraliaOnyama Limba UNQUALIFIED
Maria D MaletCanadaBernardo Dominic RENEWAL
Claire L RoysterItalyXuxue Feng NEGOTIATION
Clifford F MaletIndiaStephen Shaw UNQUALIFIED
Ivar A AmigonCanadaAnna Fali RENEWAL
Leja K MorascaFranceIvan Magalhaes PROPOSAL
Kaitlin B RoysterUnited KingdomAmy Elsner RENEWAL
Chavez H InouyeUnited KingdomIoni Bowcher NEGOTIATION
Leja X BologniaBrazilAmy Elsner UNQUALIFIED
Chavez F MorascaAustraliaBernardo Dominic RENEWAL
Maisha E DoeCanadaIoni Bowcher QUALIFIED
Juan M KuskoRussiaStephen Shaw UNQUALIFIED
Ashley Y BowleyBrazilIoni Bowcher NEW
Aditya I MaletSpainAnna Fali NEW
Maisha U MacleadUnited KingdomBernardo Dominic QUALIFIED
Cody J DarakjyBrazilIvan Magalhaes UNQUALIFIED
Adams B SchemmerUnited KingdomIvan Magalhaes NEGOTIATION
James B MaletRussiaIoni Bowcher QUALIFIED
Kadeem H IturbideFranceAnna Fali NEGOTIATION
Adams K DoeGermanyAnna Fali PROPOSAL
Aika C FerenczRussiaAnna Fali NEW
Adams I SchemmerAustraliaXuxue Feng PROPOSAL
Izzy P RimFranceAnna Fali NEGOTIATION
Mayumi Y IturbideIndiaElwin Sharvill NEW
Darci G VocelkaJapanXuxue Feng RENEWAL
Tony P SlusarskiBrazilAnna Fali RENEWAL
Jennifer M CampainRussiaXuxue Feng RENEWAL
Stacey J MaletFranceIoni Bowcher RENEWAL
Arvin W KolmetzGermanyStephen Shaw PROPOSAL
Sinclair B NestleFranceElwin Sharvill NEGOTIATION
Maisha J ShinkoCanadaIoni Bowcher NEW
Chavez W RutaAustraliaElwin Sharvill RENEWAL
Octavia T KolmetzSpainStephen Shaw NEGOTIATION
Octavia W RimRussiaStephen Shaw PROPOSAL
Salvatore S AlbaresItalyIvan Magalhaes UNQUALIFIED
Frozen Columns
Name
Chavez W Glick
Francesco P Vocelka
Costa H Caldarera
Ricardo J Perin
Murillo C Malet
Emily M Waycott
Stacey T Maclead
Mujtaba G Stockham
Jones T Malet
Jones K Malet
Misaki K Ferencz
Alejandro T Caldarera
David H Sergi
Aditya R Stenseth
James C Dilliard
Mujtaba E Slusarski
James E Dilliard
Ivar J Poquette
Jennifer P Sergi
Nicolas N Kusko
Mayumi P Waycott
Smith B Dilliard
Arvin W Royster
Aditya X Malet
Ricardo S Inouye
Silvio F Marrier
Ashley Y Caldarera
Deepesh Z Whobrey
Alejandro J Schemmer
Clifford J Caldarera
Ivar C Ostrosky
Rodrigues H Glick
Adams S Ostrosky
Ivar C Morasca
Chavez Q Oldroyd
Salvatore A Malet
Smith L Campain
Misaki G Venere
Antonio Z Kolmetz
Rodrigues R Marrier
Jefferson D Whobrey
Nicolas S Kusko
Jefferson F Figeroa
Jefferson A Nestle
Ricardo Y Rulapaugh
Jefferson X Inouye
Silvio R Stenseth
Smith B Maclead
Jennifer Z Figeroa
Arvin O Figeroa
IdCountryDate
1000France2026-07-19
1001Russia2026-06-30
1002Germany2026-07-06
1003Russia2026-07-08
1004France2026-07-02
1005Canada2026-07-05
1006Brazil2026-07-05
1007United Kingdom2026-07-14
1008India2026-07-05
1009Russia2026-07-12
1010France2026-07-14
1011Japan2026-06-22
1012Brazil2026-07-02
1013France2026-07-13
1014Canada2026-07-17
1015Spain2026-07-02
1016Russia2026-07-03
1017India2026-06-27
1018Russia2026-06-23
1019Argentina2026-06-22
1020Japan2026-07-01
1021Argentina2026-07-18
1022Italy2026-06-21
1023United Kingdom2026-07-07
1024France2026-06-25
1025Brazil2026-07-20
1026France2026-06-25
1027Australia2026-07-02
1028Canada2026-07-14
1029Japan2026-07-09
1030France2026-07-10
1031Spain2026-07-17
1032Argentina2026-07-03
1033Japan2026-07-14
1034India2026-07-18
1035United Kingdom2026-06-25
1036France2026-07-17
1037Germany2026-06-26
1038Italy2026-06-27
1039India2026-07-11
1040Argentina2026-07-17
1041United Kingdom2026-06-26
1042Spain2026-06-25
1043Canada2026-06-30
1044France2026-06-29
1045United Kingdom2026-07-11
1046Argentina2026-06-29
1047United Kingdom2026-07-10
1048France2026-06-26
1049India2026-07-02

On-Demand Data

NameIdCountryDate
Ashley J Butt1000Australia2026-07-03
Izzy B Venere1001Canada2026-06-28
Smith S Paprocki1002France2026-07-07
Leja X Saylors1003India2026-07-17
Costa G Kolmetz1004Italy2026-06-25
Ivar N Ferencz1005Italy2026-06-30
Morrow I Gaucho1006Japan2026-07-17
Stacey V Albares1007Russia2026-06-22
Maria D Dilliard1008France2026-07-07
Aika K Tollner1009Germany2026-07-03
Deepesh A Campain1010France2026-07-10
Silvio J Amigon1011Canada2026-07-09
Cody G Maclead1012Italy2026-07-08
Munro N Ferencz1013France2026-06-23
Aruna V Oldroyd1014France2026-07-02
Octavia Y Vocelka1015India2026-06-23
Sinclair B Butt1016Italy2026-06-28
Emily F Whobrey1017Russia2026-06-28
Juan U Sergi1018India2026-06-26
Emily I Maclead1019Brazil2026-07-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci N NickaRussiaXuxue Feng PROPOSAL
Costa W GillianUnited KingdomAsiya Javayant QUALIFIED
Darci K MaletArgentinaStephen Shaw UNQUALIFIED
Claire S FollerJapanElwin Sharvill NEGOTIATION
Maria U DoeUnited KingdomAmy Elsner UNQUALIFIED
Greenwood W SergiJapanXuxue Feng NEGOTIATION
Jones B CampainBrazilBernardo Dominic RENEWAL
Murillo Q MaletItalyAmy Elsner NEW
Alejandro K MaletBrazilAmy Elsner PROPOSAL
Silvio X PaprockiSpainAsiya Javayant UNQUALIFIED
Emily O StensethSpainBernardo Dominic NEGOTIATION
Ashley K AmigonSpainBernardo Dominic PROPOSAL
Jones D PoquetteArgentinaAsiya Javayant RENEWAL
Maisha E CampainGermanyIoni Bowcher QUALIFIED
Aditya Y IturbideBrazilXuxue Feng RENEWAL
Claire E WhobreyRussiaStephen Shaw UNQUALIFIED
Johnson I TollnerRussiaAnna Fali QUALIFIED
Costa Q FerenczGermanyAnna Fali QUALIFIED
Aruna Z AlbaresGermanyElwin Sharvill QUALIFIED
Ashley I MaletAustraliaAnna Fali PROPOSAL
Darci F RulapaughItalyBernardo Dominic RENEWAL
Morrow A MarrierGermanyXuxue Feng PROPOSAL
Ricardo J AmigonSpainOnyama Limba PROPOSAL
Leja D BowleySpainElwin Sharvill UNQUALIFIED
Leja D SchemmerGermanyOnyama Limba RENEWAL
Darci T MaletAustraliaAsiya Javayant QUALIFIED
Sinclair R CampainFranceOnyama Limba NEW
Aika D CaudyAustraliaAmy Elsner QUALIFIED
Aditya I BriddickUnited KingdomOnyama Limba QUALIFIED
Rodrigues R RutaArgentinaStephen Shaw NEGOTIATION
Isabel N GarufiItalyAmy Elsner NEW
Ivar T NestleFranceElwin Sharvill RENEWAL
Deepesh S FollerUnited KingdomBernardo Dominic QUALIFIED
Mujtaba N SergiFranceAnna Fali NEGOTIATION
Smith A GlickUnited KingdomAsiya Javayant PROPOSAL
Rodrigues P BologniaArgentinaElwin Sharvill QUALIFIED
Antonio M SchemmerSpainStephen Shaw PROPOSAL
Mujtaba V CaudyRussiaIoni Bowcher NEW
Stacey S MarrierGermanyElwin Sharvill RENEWAL
Johnson K DilliardRussiaIvan Magalhaes 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>