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
James M TollnerArgentinaAmy Elsner QUALIFIED
Costa F WaycottCanadaOnyama Limba NEW
Ricardo O RimRussiaIvan Magalhaes NEW
Munro W CaudyFranceAmy Elsner RENEWAL
Cody V RoysterRussiaAsiya Javayant PROPOSAL
Julie W VenereUnited KingdomIvan Magalhaes RENEWAL
Salvatore A DarakjyUnited KingdomOnyama Limba PROPOSAL
Salvatore O PaprockiFranceAsiya Javayant UNQUALIFIED
Smith A SlusarskiFranceElwin Sharvill PROPOSAL
Aditya J FigeroaCanadaOnyama Limba QUALIFIED
Smith O CaudyGermanyAmy Elsner UNQUALIFIED
Nicolas R FigeroaItalyXuxue Feng PROPOSAL
Murillo K BologniaFranceStephen Shaw PROPOSAL
Alejandro O StensethBrazilStephen Shaw RENEWAL
Adams R FlosiUnited KingdomXuxue Feng RENEWAL
Sinclair G GlickCanadaAnna Fali PROPOSAL
Emily T NestleBrazilIvan Magalhaes UNQUALIFIED
Jones M ShinkoGermanyStephen Shaw QUALIFIED
Johnson I SaylorsCanadaIoni Bowcher PROPOSAL
Morrow S AlbaresArgentinaAnna Fali QUALIFIED
Costa L OstroskyAustraliaIvan Magalhaes UNQUALIFIED
Smith F StensethFranceAsiya Javayant UNQUALIFIED
Faith Z MaletGermanyIoni Bowcher QUALIFIED
Stacey I MorascaJapanElwin Sharvill RENEWAL
Misaki E StensethAustraliaAnna Fali NEW
Arvin R SaylorsAustraliaAmy Elsner RENEWAL
Costa I AlbaresRussiaAmy Elsner UNQUALIFIED
Leon Z RoysterSpainAnna Fali RENEWAL
Cody K MaletFranceXuxue Feng PROPOSAL
Wickens R MarrierJapanIoni Bowcher QUALIFIED
Clifford I CampainArgentinaIvan Magalhaes PROPOSAL
Sinclair J MarrierJapanElwin Sharvill UNQUALIFIED
Aruna D DarakjyAustraliaAmy Elsner RENEWAL
Maria M StockhamJapanIoni Bowcher RENEWAL
Costa U ButtArgentinaOnyama Limba QUALIFIED
Morrow B ShinkoArgentinaBernardo Dominic UNQUALIFIED
Juan H PoquetteAustraliaBernardo Dominic UNQUALIFIED
Cody F PaprockiBrazilBernardo Dominic PROPOSAL
Arvin P IturbideArgentinaAsiya Javayant PROPOSAL
Jeanfrancois P DoeJapanOnyama Limba UNQUALIFIED
Antonio V PoquetteSpainIoni Bowcher NEW
Cody J GillianCanadaStephen Shaw RENEWAL
Julie G GlickArgentinaBernardo Dominic PROPOSAL
Greenwood D FigeroaCanadaIvan Magalhaes NEW
Chavez H FerenczCanadaOnyama Limba NEGOTIATION
Murillo I AlbaresGermanyElwin Sharvill NEW
Misaki H StockhamSpainAsiya Javayant QUALIFIED
Emily C KuskoRussiaElwin Sharvill UNQUALIFIED
Aruna M RutaJapanIvan Magalhaes NEW
Isabel D RutaSpainBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Johnson W FollerGermanyAsiya Javayant QUALIFIED
Juan X OldroydItalyAsiya Javayant NEGOTIATION
Faith M ChuiJapanAsiya Javayant QUALIFIED
Costa C BowleyUnited KingdomAmy Elsner NEW
Wickens S StensethArgentinaOnyama Limba NEGOTIATION
Francesco C RoysterJapanAmy Elsner NEW
Misaki X MacleadBrazilAnna Fali NEW
Juan Q AlbaresIndiaIoni Bowcher RENEWAL
Kadeem Q NestleGermanyAnna Fali PROPOSAL
Ivar D CaudyAustraliaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio Q ChuiAustralia2026-06-17Buckley Miller Wright UNQUALIFIED68Ivan Magalhaes
1001Costa Q SergiIndia2026-06-05Dorl, James J Esq NEW72Ioni Bowcher
1002Francesco Z StensethJapan2026-06-08Feltz Printing Service PROPOSAL30Xuxue Feng
1003Julie Y RoysterCanada2026-06-26Commercial Press NEW65Ioni Bowcher
1004Aika Y RulapaughArgentina2026-06-04Chapman, Ross E Esq NEGOTIATION91Elwin Sharvill
1005Jones M FlosiCanada2026-06-20Benton, John B Jr UNQUALIFIED18Anna Fali
1006Kaitlin M MarrierAustralia2026-06-16Truhlar And Truhlar Attys QUALIFIED89Asiya Javayant
1007David P WieserRussia2026-06-08Rousseaux, Michael Esq NEW54Bernardo Dominic
1008Mayumi W DarakjySpain2026-06-27Rangoni Of Florence NEW96Bernardo Dominic
1009Faith E IturbideArgentina2026-06-19Morlong Associates PROPOSAL16Asiya Javayant
1010Aruna Y BologniaUnited Kingdom2026-06-04Rousseaux, Michael Esq NEW15Elwin Sharvill
1011Darci R AlbaresJapan2026-06-25Benton, John B Jr QUALIFIED86Onyama Limba
1012Leja V GauchoGermany2026-06-28Chapman, Ross E Esq UNQUALIFIED82Elwin Sharvill
1013Murillo U BologniaJapan2026-06-12Feltz Printing Service NEGOTIATION36Ivan Magalhaes
1014Nicolas C DarakjyUnited Kingdom2026-06-05Feltz Printing Service NEW87Stephen Shaw
1015Nicolas T MarrierArgentina2026-06-29Buckley Miller Wright RENEWAL40Xuxue Feng
1016Darci J PoquetteIndia2026-06-28Chapman, Ross E Esq RENEWAL48Amy Elsner
1017Alejandro S MaletRussia2026-06-20Truhlar And Truhlar Attys UNQUALIFIED52Amy Elsner
1018Arvin J PoquetteBrazil2026-06-24Chemel, James L Cpa NEGOTIATION70Ioni Bowcher
1019Johnson I RulapaughSpain2026-06-20Rousseaux, Michael Esq NEW10Ioni Bowcher
1020Salvatore A WaycottSpain2026-06-17King, Christopher A Esq UNQUALIFIED26Ivan Magalhaes
1021Alejandro T AlbaresJapan2026-06-10Chanay, Jeffrey A Esq UNQUALIFIED30Ioni Bowcher
1022Isabel U SchemmerRussia2026-06-10Rousseaux, Michael Esq RENEWAL4Onyama Limba
1023Cody H CampainBrazil2026-06-28Rousseaux, Michael Esq QUALIFIED96Elwin Sharvill
1024Mujtaba M OstroskyGermany2026-06-30Feiner Bros NEGOTIATION27Elwin Sharvill
1025Murillo Y StensethSpain2026-06-10Feltz Printing Service NEGOTIATION78Bernardo Dominic
1026Jefferson D BologniaItaly2026-06-05Commercial Press NEW20Bernardo Dominic
1027Isabel M TollnerItaly2026-06-09Benton, John B Jr NEGOTIATION43Anna Fali
1028Faith T CaudyUnited Kingdom2026-06-17Truhlar And Truhlar Attys PROPOSAL89Elwin Sharvill
1029Leja R GlickItaly2026-06-12Benton, John B Jr UNQUALIFIED37Xuxue Feng
1030Kaitlin A SlusarskiSpain2026-06-05Benton, John B Jr NEGOTIATION7Onyama Limba
1031Greenwood H BriddickJapan2026-06-30Benton, John B Jr QUALIFIED72Anna Fali
1032Aditya W SaylorsCanada2026-06-06King, Christopher A Esq NEW49Stephen Shaw
1033Leon X KolmetzFrance2026-07-01Commercial Press NEW78Ioni Bowcher
1034Ashley I RoysterArgentina2026-06-10Commercial Press QUALIFIED87Bernardo Dominic
1035Greenwood B SergiArgentina2026-06-21Morlong Associates QUALIFIED6Xuxue Feng
1036Clifford J NickaGermany2026-06-12Printing Dimensions QUALIFIED35Anna Fali
1037Adams C BologniaAustralia2026-06-25Chapman, Ross E Esq UNQUALIFIED23Amy Elsner
1038Ricardo Q RutaUnited Kingdom2026-06-23Benton, John B Jr NEGOTIATION97Ioni Bowcher
1039Morrow P ChuiIndia2026-06-13Chemel, James L Cpa NEGOTIATION28Anna Fali
1040Izzy L MarrierIndia2026-06-22Chemel, James L Cpa RENEWAL89Asiya Javayant
1041Johnson K MacleadIndia2026-06-21Feltz Printing Service QUALIFIED75Stephen Shaw
1042Munro X AlbaresJapan2026-06-27Chapman, Ross E Esq NEW84Ivan Magalhaes
1043Emily I DoeAustralia2026-06-06Chemel, James L Cpa QUALIFIED69Ioni Bowcher
1044Jennifer O GlickIndia2026-06-19Benton, John B Jr RENEWAL95Asiya Javayant
1045Deepesh I KolmetzAustralia2026-06-15Chemel, James L Cpa UNQUALIFIED76Xuxue Feng
1046Smith A RoysterRussia2026-06-28Feiner Bros QUALIFIED10Ivan Magalhaes
1047Juan Q ChuiUnited Kingdom2026-06-18Feiner Bros NEGOTIATION19Stephen Shaw
1048Sinclair F KolmetzArgentina2026-06-21Printing Dimensions QUALIFIED89Amy Elsner
1049Chavez A CampainFrance2026-06-10Rousseaux, Michael Esq RENEWAL53Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
David C NestleAustraliaIoni Bowcher QUALIFIED
Ivar J RoysterIndiaAmy Elsner PROPOSAL
Francesco F SergiGermanyBernardo Dominic NEGOTIATION
Ashley O KuskoItalyIvan Magalhaes NEW
Costa H DilliardIndiaIvan Magalhaes RENEWAL
Kaitlin X SchemmerJapanIvan Magalhaes PROPOSAL
Salvatore I FollerUnited KingdomOnyama Limba NEW
Darci R CaldareraItalyAnna Fali RENEWAL
Adams N IturbideArgentinaOnyama Limba UNQUALIFIED
Kaitlin X SchemmerGermanyIoni Bowcher NEGOTIATION
Deepesh G OstroskyUnited KingdomIoni Bowcher NEGOTIATION
Claire R ShinkoCanadaElwin Sharvill PROPOSAL
Sinclair C MaletIndiaAmy Elsner NEGOTIATION
Jones V IturbideUnited KingdomIvan Magalhaes QUALIFIED
Costa K AmigonBrazilIoni Bowcher NEW
Cody H FollerItalyElwin Sharvill NEW
Kaitlin Q GlickItalyIvan Magalhaes UNQUALIFIED
Arvin B BowleyFranceAsiya Javayant UNQUALIFIED
Nicolas E ButtUnited KingdomElwin Sharvill NEGOTIATION
Aika V SaylorsJapanStephen Shaw QUALIFIED
Salvatore R NestleArgentinaIoni Bowcher NEW
Murillo J WhobreyJapanOnyama Limba NEGOTIATION
Cody L VocelkaUnited KingdomStephen Shaw PROPOSAL
Isabel W TollnerRussiaXuxue Feng PROPOSAL
Aika C GauchoSpainStephen Shaw PROPOSAL
Faith M AlbaresItalyIvan Magalhaes NEW
Greenwood K TollnerSpainAnna Fali PROPOSAL
Darci G VenereAustraliaXuxue Feng PROPOSAL
Kaitlin D GillianGermanyIvan Magalhaes PROPOSAL
Silvio J RutaFranceIoni Bowcher PROPOSAL
Kadeem S DarakjyFranceElwin Sharvill NEW
Jefferson C BowleyRussiaXuxue Feng RENEWAL
Francesco F ShinkoSpainAsiya Javayant NEW
Izzy F StensethArgentinaIoni Bowcher UNQUALIFIED
Ashley I RulapaughItalyAsiya Javayant NEW
David K CaldareraCanadaElwin Sharvill QUALIFIED
Ivar V FerenczAustraliaStephen Shaw UNQUALIFIED
Stacey V RimIndiaAnna Fali NEGOTIATION
Aditya V AlbaresUnited KingdomBernardo Dominic NEW
James F CaldareraRussiaIoni Bowcher QUALIFIED
Maisha W CampainRussiaIoni Bowcher NEW
James B DoeAustraliaIoni Bowcher NEGOTIATION
Chavez X FigeroaGermanyBernardo Dominic NEW
Aika I GauchoArgentinaAmy Elsner QUALIFIED
Smith V StensethJapanBernardo Dominic NEGOTIATION
Johnson Y GlickJapanOnyama Limba NEW
Stacey L WaycottFranceAsiya Javayant RENEWAL
Ivar B GarufiUnited KingdomAmy Elsner NEGOTIATION
Nicolas G MaletArgentinaIoni Bowcher RENEWAL
Octavia R MarrierIndiaOnyama Limba PROPOSAL
Frozen Columns
Name
Wickens T Whobrey
Johnson Q Amigon
David P Perin
Claire H Bolognia
Aruna N Garufi
Ashley H Campain
Mujtaba F Perin
Chavez S Malet
Maisha F Sergi
Tony T Poquette
Stacey X Figeroa
Murillo I Slusarski
Greenwood Z Chui
Silvio J Dilliard
Smith G Tollner
Jefferson D Wieser
Maisha V Caldarera
Aditya D Ostrosky
James N Slusarski
Aruna F Garufi
Jeanfrancois M Garufi
Claire D Campain
Silvio X Iturbide
Darci K Perin
Antonio L Ruta
Leon M Dilliard
Maisha T Gillian
Johnson K Iturbide
Aruna N Gaucho
Rodrigues K Kusko
David G Foller
Costa Q Vocelka
Emily J Gillian
Jones N Sergi
Emily L Stenseth
Murillo V Oldroyd
Stacey C Campain
Costa H Whobrey
Maisha R Maclead
Salvatore C Waycott
Mujtaba R Inouye
Stacey W Waycott
Alejandro E Nestle
Silvio S Campain
Emily L Morasca
Jones F Ruta
Wickens K Amigon
Faith Z Maclead
Cody N Shinko
Octavia M Glick
IdCountryDate
1000Canada2026-06-06
1001Germany2026-06-12
1002Japan2026-06-13
1003Italy2026-07-01
1004Germany2026-06-04
1005Germany2026-06-24
1006Germany2026-07-01
1007Spain2026-06-25
1008Argentina2026-06-21
1009United Kingdom2026-07-02
1010India2026-06-11
1011Russia2026-06-25
1012Argentina2026-06-08
1013Australia2026-06-30
1014Brazil2026-06-06
1015France2026-06-25
1016Argentina2026-06-07
1017Argentina2026-06-19
1018United Kingdom2026-06-05
1019India2026-06-17
1020Italy2026-06-08
1021Japan2026-06-13
1022Australia2026-06-07
1023Russia2026-06-26
1024Brazil2026-06-08
1025Japan2026-06-11
1026Brazil2026-06-19
1027Germany2026-07-02
1028Brazil2026-07-02
1029United Kingdom2026-06-18
1030Brazil2026-06-28
1031Italy2026-06-16
1032Canada2026-06-06
1033Germany2026-06-19
1034Brazil2026-06-23
1035Russia2026-06-18
1036Japan2026-06-30
1037Argentina2026-07-01
1038Brazil2026-06-29
1039United Kingdom2026-06-12
1040Brazil2026-07-02
1041India2026-06-05
1042India2026-06-23
1043United Kingdom2026-06-07
1044Russia2026-06-26
1045Brazil2026-07-01
1046United Kingdom2026-06-10
1047Australia2026-06-21
1048Australia2026-06-28
1049India2026-06-08

On-Demand Data

NameIdCountryDate
Aditya W Kusko1000France2026-06-05
Aika D Chui1001Australia2026-06-11
Misaki A Iturbide1002India2026-06-08
Johnson Z Morasca1003Brazil2026-06-18
Juan B Bolognia1004Spain2026-06-22
Antonio V Gillian1005France2026-06-30
Nicolas L Darakjy1006United Kingdom2026-06-11
Clifford P Butt1007Germany2026-06-15
Smith S Vocelka1008United Kingdom2026-07-01
Smith T Darakjy1009Canada2026-06-06
Maria Y Iturbide1010United Kingdom2026-06-22
Morrow G Inouye1011Japan2026-06-03
Jennifer M Dilliard1012France2026-06-26
Ricardo A Tollner1013Argentina2026-06-26
David J Bowley1014Russia2026-06-08
Arvin K Kolmetz1015Argentina2026-06-14
Maria U Ferencz1016Japan2026-06-17
Faith H Vocelka1017Canada2026-06-18
Isabel Z Briddick1018Japan2026-06-19
James F Gaucho1019Argentina2026-06-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja H StockhamArgentinaIvan Magalhaes NEGOTIATION
Ricardo C DilliardSpainIvan Magalhaes NEGOTIATION
Arvin X ChuiUnited KingdomAmy Elsner QUALIFIED
Mujtaba V SlusarskiCanadaAmy Elsner QUALIFIED
Ricardo T RulapaughGermanyElwin Sharvill NEW
Salvatore Z GarufiAustraliaIvan Magalhaes PROPOSAL
Johnson P FerenczFranceBernardo Dominic NEGOTIATION
Emily J PerinAustraliaAmy Elsner UNQUALIFIED
Murillo O NickaCanadaAnna Fali PROPOSAL
Ashley J RutaSpainAnna Fali NEGOTIATION
Aruna S SaylorsBrazilIvan Magalhaes NEGOTIATION
Mujtaba V AmigonRussiaElwin Sharvill RENEWAL
James I WieserAustraliaAsiya Javayant UNQUALIFIED
Clifford M MarrierArgentinaBernardo Dominic QUALIFIED
Juan Y IturbideBrazilBernardo Dominic NEGOTIATION
David V GillianGermanyAsiya Javayant RENEWAL
Chavez W WaycottIndiaAmy Elsner NEGOTIATION
Chavez S RoysterRussiaOnyama Limba NEGOTIATION
Julie V CaudyFranceAnna Fali QUALIFIED
Nicolas H VenereJapanXuxue Feng NEW
Julie Q GlickFranceXuxue Feng PROPOSAL
Jones S RimSpainAmy Elsner NEW
Mujtaba H RimIndiaStephen Shaw QUALIFIED
Ivar E KolmetzRussiaElwin Sharvill UNQUALIFIED
Johnson I RulapaughGermanyAmy Elsner UNQUALIFIED
Salvatore S KolmetzIndiaIoni Bowcher NEW
Silvio I CampainSpainIvan Magalhaes RENEWAL
Smith J TollnerGermanyAsiya Javayant NEGOTIATION
Leja C SchemmerJapanIoni Bowcher NEGOTIATION
Emily H IturbideCanadaIvan Magalhaes UNQUALIFIED
Sinclair N SergiJapanBernardo Dominic RENEWAL
Ricardo X GarufiFranceBernardo Dominic PROPOSAL
James W ShinkoIndiaAmy Elsner QUALIFIED
Smith Z RimItalyBernardo Dominic UNQUALIFIED
Aruna D SaylorsArgentinaIoni Bowcher UNQUALIFIED
Tony H MorascaBrazilAsiya Javayant UNQUALIFIED
Jefferson J SaylorsItalyIvan Magalhaes NEW
Alejandro G BriddickItalyBernardo Dominic NEGOTIATION
Kaitlin G MorascaItalyAmy Elsner NEW
Jefferson Z BologniaItalyAsiya Javayant NEW

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