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
Sinclair W SchemmerJapanXuxue Feng NEW
Mujtaba C AlbaresCanadaIoni Bowcher PROPOSAL
Jones Q NestleUnited KingdomAnna Fali UNQUALIFIED
Ivar R VocelkaFranceAnna Fali NEGOTIATION
Arvin M MacleadCanadaStephen Shaw QUALIFIED
Juan I StensethUnited KingdomIoni Bowcher RENEWAL
Aruna V SchemmerAustraliaIoni Bowcher UNQUALIFIED
Antonio U GillianSpainAsiya Javayant NEW
Misaki T CaldareraAustraliaAnna Fali QUALIFIED
Isabel Z FerenczFranceStephen Shaw PROPOSAL
James O StensethArgentinaXuxue Feng QUALIFIED
Jefferson O NickaIndiaAnna Fali NEGOTIATION
Smith H DilliardFranceBernardo Dominic NEW
Misaki A RimCanadaStephen Shaw NEGOTIATION
Salvatore W WhobreyGermanyAnna Fali UNQUALIFIED
Costa H WieserRussiaStephen Shaw UNQUALIFIED
Leja J AlbaresGermanyBernardo Dominic UNQUALIFIED
Deepesh W PaprockiFranceAnna Fali UNQUALIFIED
Kadeem J FigeroaIndiaXuxue Feng RENEWAL
Ricardo K NestleIndiaElwin Sharvill UNQUALIFIED
Adams L RutaIndiaBernardo Dominic QUALIFIED
Greenwood R TollnerFranceAnna Fali PROPOSAL
Deepesh N MorascaBrazilAsiya Javayant NEW
Clifford A OstroskyUnited KingdomAmy Elsner RENEWAL
Jeanfrancois J VocelkaCanadaIoni Bowcher NEGOTIATION
Emily Z ChuiBrazilAsiya Javayant QUALIFIED
Darci J WhobreyArgentinaIoni Bowcher RENEWAL
Costa M CaudyAustraliaAnna Fali NEGOTIATION
Kaitlin V WhobreyItalyAnna Fali NEW
Clifford S WieserAustraliaElwin Sharvill PROPOSAL
Aika H DoeRussiaAmy Elsner QUALIFIED
Cody K DoeBrazilAmy Elsner NEW
Stacey M MacleadUnited KingdomElwin Sharvill NEGOTIATION
Silvio E ChuiArgentinaAnna Fali PROPOSAL
Mujtaba V GlickSpainAmy Elsner RENEWAL
Izzy J FerenczFranceXuxue Feng RENEWAL
Claire S AmigonJapanStephen Shaw QUALIFIED
Tony L PerinSpainAsiya Javayant NEGOTIATION
Greenwood O WhobreyAustraliaBernardo Dominic UNQUALIFIED
Kadeem Y BologniaRussiaIoni Bowcher NEW
Kadeem T CaudyJapanBernardo Dominic RENEWAL
Mujtaba U PaprockiBrazilAmy Elsner UNQUALIFIED
Jones J DoeGermanyIvan Magalhaes PROPOSAL
Silvio R GauchoIndiaAnna Fali NEW
Tony Z FigeroaArgentinaStephen Shaw UNQUALIFIED
Adams J RulapaughUnited KingdomXuxue Feng PROPOSAL
Stacey R GauchoItalyXuxue Feng RENEWAL
Jeanfrancois Q SlusarskiCanadaIoni Bowcher UNQUALIFIED
Arvin S RutaSpainElwin Sharvill PROPOSAL
David M BowleyArgentinaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco C StensethUnited KingdomAsiya Javayant PROPOSAL
Maria D SlusarskiJapanIoni Bowcher NEGOTIATION
Chavez Q BologniaFranceXuxue Feng NEGOTIATION
Juan Q MarrierItalyOnyama Limba UNQUALIFIED
Aruna Z BowleyFranceBernardo Dominic QUALIFIED
Leon N StensethBrazilStephen Shaw NEW
Faith N GauchoArgentinaXuxue Feng RENEWAL
Aditya Y ShinkoGermanyIoni Bowcher NEW
Jefferson V MorascaSpainAnna Fali NEGOTIATION
Jefferson M IturbideCanadaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh F KuskoAustralia2026-07-30Printing Dimensions PROPOSAL26Stephen Shaw
1001Francesco D GillianIndia2026-07-18Chemel, James L Cpa NEW68Elwin Sharvill
1002Misaki O OldroydUnited Kingdom2026-07-30King, Christopher A Esq RENEWAL29Xuxue Feng
1003Antonio B CaldareraRussia2026-07-14Buckley Miller Wright RENEWAL12Bernardo Dominic
1004Juan P KolmetzFrance2026-07-21Rousseaux, Michael Esq NEGOTIATION69Asiya Javayant
1005Adams R MaletUnited Kingdom2026-08-04Buckley Miller Wright UNQUALIFIED34Ioni Bowcher
1006Aditya X BologniaBrazil2026-07-13Benton, John B Jr NEGOTIATION22Amy Elsner
1007Leja K WieserFrance2026-08-08Morlong Associates RENEWAL64Amy Elsner
1008Greenwood U VenereRussia2026-08-01Truhlar And Truhlar Attys NEGOTIATION39Xuxue Feng
1009Costa Q GarufiCanada2026-07-13Feiner Bros NEW97Asiya Javayant
1010Tony J RulapaughGermany2026-07-22Feiner Bros UNQUALIFIED26Onyama Limba
1011Ashley G ButtSpain2026-07-25Commercial Press PROPOSAL52Ivan Magalhaes
1012Mujtaba U SlusarskiJapan2026-07-21Morlong Associates QUALIFIED15Amy Elsner
1013Mayumi F KuskoBrazil2026-07-28Morlong Associates QUALIFIED54Asiya Javayant
1014Wickens D VocelkaArgentina2026-07-13Buckley Miller Wright NEW45Amy Elsner
1015Aditya C PoquetteArgentina2026-07-26Printing Dimensions NEW96Bernardo Dominic
1016Izzy U StockhamRussia2026-08-08Rousseaux, Michael Esq UNQUALIFIED3Asiya Javayant
1017Mayumi B StockhamJapan2026-07-20King, Christopher A Esq QUALIFIED21Ioni Bowcher
1018Mayumi D RutaIndia2026-07-27Dorl, James J Esq PROPOSAL81Onyama Limba
1019James N GillianArgentina2026-07-31Rangoni Of Florence PROPOSAL84Asiya Javayant
1020Greenwood S MarrierBrazil2026-07-30Rangoni Of Florence NEW8Amy Elsner
1021Sinclair W PerinSpain2026-07-18Rousseaux, Michael Esq NEGOTIATION98Anna Fali
1022Darci A NestleAustralia2026-08-01Chapman, Ross E Esq QUALIFIED5Anna Fali
1023Darci X CaudyUnited Kingdom2026-07-16Chapman, Ross E Esq QUALIFIED44Ioni Bowcher
1024Misaki A KuskoRussia2026-08-05Chapman, Ross E Esq NEW69Asiya Javayant
1025Clifford C CaudyBrazil2026-07-27Truhlar And Truhlar Attys RENEWAL21Ioni Bowcher
1026Kaitlin B SchemmerRussia2026-08-11Chanay, Jeffrey A Esq QUALIFIED44Bernardo Dominic
1027Rodrigues D RoysterBrazil2026-07-21Rangoni Of Florence RENEWAL95Ioni Bowcher
1028Octavia T ShinkoRussia2026-08-10Morlong Associates RENEWAL35Onyama Limba
1029Misaki B MacleadAustralia2026-08-02Morlong Associates UNQUALIFIED58Bernardo Dominic
1030Clifford A ShinkoIndia2026-07-29Feltz Printing Service RENEWAL65Ioni Bowcher
1031Isabel V GlickBrazil2026-07-28Chemel, James L Cpa QUALIFIED58Anna Fali
1032Adams M FollerSpain2026-07-24Chemel, James L Cpa NEGOTIATION99Anna Fali
1033Maisha K GlickRussia2026-07-15Truhlar And Truhlar Attys NEGOTIATION73Asiya Javayant
1034Sinclair W KolmetzSpain2026-07-18Morlong Associates QUALIFIED30Bernardo Dominic
1035Adams K TollnerJapan2026-07-17Rousseaux, Michael Esq QUALIFIED70Asiya Javayant
1036Aditya R KolmetzJapan2026-07-19Commercial Press QUALIFIED14Bernardo Dominic
1037Leja K GlickBrazil2026-07-16Chemel, James L Cpa NEW38Ioni Bowcher
1038Sinclair P NickaAustralia2026-08-05Chanay, Jeffrey A Esq RENEWAL90Ioni Bowcher
1039Tony W AmigonGermany2026-07-15Morlong Associates NEGOTIATION47Elwin Sharvill
1040Wickens D CaudyRussia2026-07-22Rangoni Of Florence QUALIFIED46Xuxue Feng
1041Morrow L IturbideCanada2026-08-02Chemel, James L Cpa NEGOTIATION35Asiya Javayant
1042Sinclair L VenereBrazil2026-08-06Feltz Printing Service RENEWAL10Asiya Javayant
1043Aditya A PerinFrance2026-07-25Commercial Press QUALIFIED74Elwin Sharvill
1044Francesco V RimRussia2026-08-08Printing Dimensions UNQUALIFIED61Stephen Shaw
1045Darci W RutaAustralia2026-08-05Buckley Miller Wright UNQUALIFIED76Elwin Sharvill
1046Salvatore B SchemmerIndia2026-07-22Commercial Press QUALIFIED21Amy Elsner
1047Faith C FerenczJapan2026-07-18King, Christopher A Esq QUALIFIED4Ivan Magalhaes
1048Jennifer D StockhamSpain2026-07-29Rousseaux, Michael Esq PROPOSAL52Stephen Shaw
1049Arvin S InouyeArgentina2026-07-28Chanay, Jeffrey A Esq RENEWAL77Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Aruna G MacleadRussiaAsiya Javayant NEW
Leja T ShinkoBrazilOnyama Limba QUALIFIED
Jefferson T GlickArgentinaXuxue Feng PROPOSAL
Silvio G FollerAustraliaOnyama Limba UNQUALIFIED
Deepesh I VenereIndiaBernardo Dominic RENEWAL
Rodrigues N BowleyRussiaStephen Shaw RENEWAL
Julie J GarufiCanadaAsiya Javayant NEW
Antonio O WaycottRussiaBernardo Dominic UNQUALIFIED
Smith A CaudyGermanyOnyama Limba NEGOTIATION
Julie C DarakjyGermanyIoni Bowcher PROPOSAL
Clifford K OstroskyRussiaStephen Shaw UNQUALIFIED
James C PoquetteRussiaAnna Fali PROPOSAL
Aditya N StensethBrazilBernardo Dominic NEGOTIATION
Murillo P GillianSpainElwin Sharvill UNQUALIFIED
Deepesh E ButtSpainAmy Elsner RENEWAL
Leja E ShinkoCanadaAsiya Javayant UNQUALIFIED
Tony D BowleyJapanIoni Bowcher NEW
Jefferson X FerenczItalyElwin Sharvill QUALIFIED
Maisha A FigeroaSpainBernardo Dominic UNQUALIFIED
Izzy J InouyeJapanStephen Shaw QUALIFIED
Stacey Y PerinBrazilIvan Magalhaes NEGOTIATION
Leon F ShinkoRussiaXuxue Feng UNQUALIFIED
Misaki M BowleyItalyAnna Fali NEGOTIATION
Mujtaba I GauchoGermanyElwin Sharvill NEGOTIATION
Murillo K ButtIndiaStephen Shaw UNQUALIFIED
Jones J FerenczJapanXuxue Feng RENEWAL
Jones F NickaGermanyStephen Shaw QUALIFIED
Murillo A GlickIndiaBernardo Dominic UNQUALIFIED
Leja B ButtSpainAsiya Javayant PROPOSAL
Isabel P MaletCanadaAsiya Javayant NEGOTIATION
James B RoysterItalyIoni Bowcher QUALIFIED
Maria H OldroydSpainIvan Magalhaes QUALIFIED
Arvin V TollnerAustraliaXuxue Feng NEGOTIATION
Aruna Y StensethArgentinaIoni Bowcher NEW
Aditya M FigeroaGermanyAsiya Javayant UNQUALIFIED
Munro D WieserJapanIoni Bowcher QUALIFIED
Aditya K RulapaughUnited KingdomXuxue Feng NEW
Tony M FollerAustraliaXuxue Feng NEGOTIATION
Aditya P PerinJapanBernardo Dominic NEGOTIATION
Ivar U ShinkoBrazilIoni Bowcher NEGOTIATION
Nicolas F VenereAustraliaElwin Sharvill NEGOTIATION
Misaki T FerenczAustraliaBernardo Dominic NEW
Julie X VenereRussiaAnna Fali NEGOTIATION
Julie G DilliardArgentinaIoni Bowcher RENEWAL
Johnson D OstroskyItalyElwin Sharvill UNQUALIFIED
Kadeem T AmigonBrazilIoni Bowcher UNQUALIFIED
Costa N SaylorsGermanyIoni Bowcher UNQUALIFIED
Antonio S GlickGermanyOnyama Limba QUALIFIED
Sinclair H RoysterCanadaStephen Shaw NEGOTIATION
Izzy Y GlickBrazilBernardo Dominic NEW
Frozen Columns
Name
Jeanfrancois M Perin
Juan T Kusko
Costa E Caudy
Ricardo M Perin
Misaki E Stockham
Octavia C Malet
Sinclair D Paprocki
Jennifer D Gaucho
Aika M Kolmetz
Salvatore V Campain
Aika S Perin
Faith Q Foller
Jones C Rim
Kadeem I Tollner
Nicolas C Poquette
Juan L Chui
Aditya T Sergi
Munro Q Wieser
Misaki Z Albares
Greenwood I Kolmetz
Greenwood E Vocelka
Leon W Marrier
Silvio M Chui
Kaitlin V Albares
Maria W Kolmetz
Aditya Y Malet
Kadeem K Iturbide
Darci Y Garufi
Tony Y Darakjy
Deepesh A Malet
Claire S Kolmetz
Greenwood F Slusarski
Antonio G Caudy
Kadeem M Stenseth
Ivar V Wieser
Kadeem A Paprocki
Kadeem P Caldarera
Aditya D Bolognia
Kaitlin X Maclead
Jones M Sergi
Deepesh R Caudy
Silvio Y Vocelka
Kadeem J Caudy
Leon F Kusko
Deepesh B Ostrosky
Mujtaba S Perin
Jennifer E Sergi
Wickens B Bowley
Munro T Campain
Maisha W Royster
IdCountryDate
1000Spain2026-08-04
1001France2026-08-05
1002Brazil2026-07-25
1003Canada2026-07-27
1004France2026-08-06
1005Australia2026-07-24
1006Italy2026-08-06
1007Brazil2026-07-20
1008Italy2026-07-21
1009Spain2026-08-03
1010Canada2026-07-13
1011Japan2026-07-19
1012France2026-07-27
1013India2026-08-06
1014Japan2026-08-06
1015Argentina2026-07-21
1016Japan2026-07-27
1017Argentina2026-08-01
1018United Kingdom2026-07-27
1019India2026-07-20
1020Spain2026-08-09
1021Spain2026-07-29
1022United Kingdom2026-07-24
1023Australia2026-07-28
1024Germany2026-07-22
1025Russia2026-08-03
1026France2026-08-02
1027Argentina2026-08-01
1028Argentina2026-07-30
1029Japan2026-08-03
1030India2026-07-19
1031Argentina2026-07-18
1032India2026-07-27
1033Spain2026-08-06
1034Brazil2026-07-30
1035Germany2026-08-01
1036Russia2026-07-31
1037Italy2026-07-31
1038Germany2026-08-02
1039Italy2026-08-03
1040Russia2026-07-26
1041France2026-08-05
1042Argentina2026-07-20
1043France2026-08-10
1044United Kingdom2026-08-04
1045India2026-07-28
1046Brazil2026-08-04
1047India2026-07-30
1048Russia2026-08-06
1049Australia2026-08-06

On-Demand Data

NameIdCountryDate
Jones C Wieser1000Argentina2026-08-11
Ricardo F Venere1001Germany2026-08-10
Claire A Rim1002Spain2026-07-28
James X Rim1003Russia2026-07-27
Emily M Wieser1004Argentina2026-07-29
Munro C Malet1005France2026-07-13
Maisha J Figeroa1006Australia2026-07-20
Silvio W Saylors1007Germany2026-08-06
Ashley I Iturbide1008United Kingdom2026-07-20
Aditya Q Caldarera1009Spain2026-07-22
Aditya C Iturbide1010Australia2026-07-14
Munro M Sergi1011Australia2026-08-10
Octavia E Briddick1012Canada2026-07-27
Murillo P Gillian1013United Kingdom2026-07-28
Morrow A Albares1014India2026-08-05
Faith D Venere1015United Kingdom2026-07-17
Faith C Inouye1016United Kingdom2026-07-19
Nicolas F Malet1017Germany2026-08-04
Stacey H Oldroyd1018Argentina2026-07-31
Costa Q Bolognia1019Spain2026-08-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna L MacleadJapanIoni Bowcher UNQUALIFIED
Darci D KolmetzRussiaAnna Fali UNQUALIFIED
Nicolas Q MacleadIndiaXuxue Feng QUALIFIED
Morrow Z MarrierArgentinaElwin Sharvill NEGOTIATION
Misaki S PaprockiFranceXuxue Feng PROPOSAL
Antonio F SergiRussiaIoni Bowcher PROPOSAL
Jefferson H PerinRussiaStephen Shaw QUALIFIED
Faith M NickaRussiaAsiya Javayant QUALIFIED
Munro X TollnerIndiaElwin Sharvill NEW
Rodrigues U KuskoFranceIvan Magalhaes QUALIFIED
Izzy I VocelkaAustraliaAmy Elsner QUALIFIED
David E InouyeCanadaXuxue Feng NEW
Kaitlin O FollerAustraliaIoni Bowcher RENEWAL
Aditya J ShinkoBrazilOnyama Limba NEW
Leja E DoeArgentinaElwin Sharvill NEW
Julie U RoysterAustraliaStephen Shaw NEW
Smith U MorascaArgentinaStephen Shaw NEGOTIATION
Deepesh H ChuiCanadaAmy Elsner RENEWAL
Mujtaba A RulapaughIndiaAnna Fali NEW
Ivar Q PoquetteRussiaIvan Magalhaes QUALIFIED
Isabel M VenereSpainIoni Bowcher RENEWAL
Deepesh Z GillianRussiaIvan Magalhaes NEW
Emily H ChuiBrazilAsiya Javayant QUALIFIED
Wickens D WaycottRussiaIvan Magalhaes QUALIFIED
Maria Z RulapaughBrazilIvan Magalhaes PROPOSAL
Mujtaba Q FlosiBrazilOnyama Limba PROPOSAL
Isabel T AlbaresUnited KingdomAnna Fali NEW
Isabel M RoysterIndiaElwin Sharvill RENEWAL
Julie U BriddickBrazilOnyama Limba NEGOTIATION
Juan T SaylorsFranceIvan Magalhaes RENEWAL
Juan F StensethItalyElwin Sharvill NEGOTIATION
Jones G InouyeCanadaStephen Shaw UNQUALIFIED
Aruna H FigeroaItalyAnna Fali NEGOTIATION
Stacey X ButtGermanyOnyama Limba PROPOSAL
Maria S VenereIndiaOnyama Limba RENEWAL
Emily D MaletSpainXuxue Feng QUALIFIED
Ashley M GillianAustraliaAsiya Javayant UNQUALIFIED
Octavia K CaudyCanadaIvan Magalhaes UNQUALIFIED
Jeanfrancois J IturbideAustraliaBernardo Dominic PROPOSAL
Kadeem N MaletItalyIvan 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>