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 Y RoysterSpainAsiya Javayant PROPOSAL
Alejandro V WhobreyItalyXuxue Feng PROPOSAL
Tony C KuskoAustraliaBernardo Dominic NEW
Ashley V WhobreyAustraliaXuxue Feng PROPOSAL
Emily V PerinAustraliaAsiya Javayant NEGOTIATION
David M AmigonJapanBernardo Dominic PROPOSAL
Silvio K IturbideArgentinaElwin Sharvill UNQUALIFIED
Munro S PoquetteRussiaElwin Sharvill NEGOTIATION
Wickens M CampainBrazilAnna Fali PROPOSAL
Francesco Z KuskoItalyIoni Bowcher UNQUALIFIED
Mayumi X DilliardAustraliaAsiya Javayant NEW
Arvin J CaldareraBrazilAnna Fali NEGOTIATION
Octavia T DoeArgentinaElwin Sharvill UNQUALIFIED
Ivar H CampainBrazilAnna Fali RENEWAL
Darci V RoysterUnited KingdomAmy Elsner PROPOSAL
Jones U ShinkoGermanyStephen Shaw NEW
Ivar I BologniaUnited KingdomAmy Elsner UNQUALIFIED
Emily Z RoysterSpainAmy Elsner PROPOSAL
Aika M KuskoGermanyAnna Fali QUALIFIED
Jones B RutaFranceIoni Bowcher QUALIFIED
Leja K RoysterSpainXuxue Feng QUALIFIED
Izzy Y MarrierSpainIvan Magalhaes PROPOSAL
Silvio M MarrierIndiaElwin Sharvill NEGOTIATION
Silvio K WieserIndiaAmy Elsner NEGOTIATION
Octavia W FollerAustraliaIoni Bowcher UNQUALIFIED
Jennifer I WaycottBrazilStephen Shaw UNQUALIFIED
Jefferson H RimIndiaAmy Elsner NEGOTIATION
Izzy H MarrierItalyElwin Sharvill NEGOTIATION
Deepesh A StockhamArgentinaAnna Fali QUALIFIED
Kadeem H CaudyItalyBernardo Dominic RENEWAL
Clifford B GauchoCanadaElwin Sharvill QUALIFIED
Silvio B BologniaFranceBernardo Dominic NEW
Ivar Y VenereRussiaOnyama Limba NEW
Claire U MarrierItalyAnna Fali RENEWAL
Wickens U WieserJapanStephen Shaw UNQUALIFIED
Greenwood A SchemmerGermanyBernardo Dominic QUALIFIED
Kadeem L OstroskyBrazilAsiya Javayant NEW
Mujtaba Z NestleIndiaIoni Bowcher NEW
Aika Y WhobreyUnited KingdomStephen Shaw UNQUALIFIED
David R CampainUnited KingdomAnna Fali QUALIFIED
Jeanfrancois X CaldareraArgentinaAmy Elsner PROPOSAL
Kadeem Z RutaItalyIvan Magalhaes RENEWAL
Isabel J MarrierBrazilElwin Sharvill NEW
Sinclair Z BriddickCanadaOnyama Limba QUALIFIED
Aika K PoquetteItalyAsiya Javayant NEGOTIATION
Salvatore J RulapaughFranceStephen Shaw NEW
Murillo U CaldareraCanadaOnyama Limba NEGOTIATION
Wickens Z WhobreyRussiaOnyama Limba QUALIFIED
Kadeem Y PerinBrazilElwin Sharvill NEW
Adams Y PerinJapanBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez X MarrierAustraliaElwin Sharvill RENEWAL
Claire E FlosiIndiaIoni Bowcher UNQUALIFIED
Cody E NickaRussiaBernardo Dominic RENEWAL
Jefferson G OldroydBrazilBernardo Dominic QUALIFIED
Faith T WieserSpainAsiya Javayant NEW
Kaitlin G GauchoCanadaElwin Sharvill RENEWAL
Leja W DarakjySpainStephen Shaw NEGOTIATION
Murillo S VocelkaItalyBernardo Dominic PROPOSAL
Jennifer Y StockhamJapanAnna Fali UNQUALIFIED
James H BowleyRussiaAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya G ChuiCanada2026-07-29Printing Dimensions QUALIFIED55Onyama Limba
1001Kaitlin C DoeRussia2026-08-17Feltz Printing Service UNQUALIFIED39Xuxue Feng
1002Emily B SergiIndia2026-08-06King, Christopher A Esq NEGOTIATION98Xuxue Feng
1003Kaitlin Z WhobreyGermany2026-08-07Feltz Printing Service QUALIFIED23Ivan Magalhaes
1004James W NickaIndia2026-07-22Chapman, Ross E Esq UNQUALIFIED57Amy Elsner
1005Murillo H DarakjyAustralia2026-08-13King, Christopher A Esq QUALIFIED52Ioni Bowcher
1006Ricardo A CaldareraItaly2026-08-13Commercial Press QUALIFIED78Anna Fali
1007Greenwood W ButtJapan2026-08-04Dorl, James J Esq NEGOTIATION25Asiya Javayant
1008Mujtaba M MacleadJapan2026-08-17Buckley Miller Wright NEW55Onyama Limba
1009Nicolas A MacleadRussia2026-07-23Commercial Press NEW50Elwin Sharvill
1010Kaitlin T GlickAustralia2026-07-22Benton, John B Jr RENEWAL16Onyama Limba
1011Francesco V MaletIndia2026-07-23Morlong Associates NEW60Asiya Javayant
1012Arvin B IturbideCanada2026-08-20Printing Dimensions RENEWAL85Ioni Bowcher
1013Emily U ShinkoJapan2026-08-14Buckley Miller Wright QUALIFIED27Amy Elsner
1014Morrow G CaldareraFrance2026-08-02Dorl, James J Esq UNQUALIFIED49Ioni Bowcher
1015David C StockhamSpain2026-07-26Chanay, Jeffrey A Esq PROPOSAL33Asiya Javayant
1016Cody P MaletRussia2026-07-26Feltz Printing Service NEGOTIATION30Asiya Javayant
1017Sinclair G MaletUnited Kingdom2026-07-24Feiner Bros RENEWAL97Asiya Javayant
1018Rodrigues U FerenczAustralia2026-08-06Feiner Bros NEW6Asiya Javayant
1019Clifford I MaletGermany2026-07-31Rangoni Of Florence QUALIFIED97Ioni Bowcher
1020Cody A CampainSpain2026-08-16Truhlar And Truhlar Attys PROPOSAL35Stephen Shaw
1021Nicolas D CaudyBrazil2026-08-14Rousseaux, Michael Esq RENEWAL4Onyama Limba
1022Ashley P WhobreyJapan2026-07-29Benton, John B Jr QUALIFIED86Ioni Bowcher
1023Silvio P FollerGermany2026-08-06Printing Dimensions NEGOTIATION31Stephen Shaw
1024Clifford S FollerIndia2026-07-22Printing Dimensions RENEWAL6Ioni Bowcher
1025Cody C RutaUnited Kingdom2026-08-01King, Christopher A Esq NEGOTIATION47Elwin Sharvill
1026Faith N IturbideFrance2026-08-12King, Christopher A Esq RENEWAL45Ioni Bowcher
1027Morrow X AmigonRussia2026-07-30Dorl, James J Esq QUALIFIED90Onyama Limba
1028Jeanfrancois F VenereGermany2026-08-06Feltz Printing Service NEGOTIATION75Anna Fali
1029Kaitlin N StockhamRussia2026-07-29Chanay, Jeffrey A Esq NEGOTIATION16Amy Elsner
1030David D NestleGermany2026-08-07Buckley Miller Wright RENEWAL98Bernardo Dominic
1031Claire N GarufiFrance2026-08-08Chemel, James L Cpa NEW12Onyama Limba
1032David I AmigonSpain2026-08-03Feiner Bros PROPOSAL27Stephen Shaw
1033Darci P NestleCanada2026-08-17Chemel, James L Cpa NEW72Xuxue Feng
1034Faith C WhobreyAustralia2026-07-24Morlong Associates QUALIFIED94Anna Fali
1035Mujtaba E FollerGermany2026-07-27Truhlar And Truhlar Attys QUALIFIED48Anna Fali
1036Cody V WhobreySpain2026-08-15Feltz Printing Service RENEWAL46Amy Elsner
1037Ashley H VocelkaIndia2026-08-01Rangoni Of Florence QUALIFIED42Stephen Shaw
1038Rodrigues F OstroskyItaly2026-07-30Chemel, James L Cpa UNQUALIFIED45Elwin Sharvill
1039Darci B MarrierRussia2026-07-24Chapman, Ross E Esq NEGOTIATION5Bernardo Dominic
1040David G DarakjyArgentina2026-07-23Truhlar And Truhlar Attys RENEWAL6Amy Elsner
1041Isabel W GarufiArgentina2026-08-18Benton, John B Jr PROPOSAL63Anna Fali
1042Mayumi Y SergiArgentina2026-08-14Feiner Bros UNQUALIFIED10Onyama Limba
1043Francesco H AmigonJapan2026-07-29Printing Dimensions NEW88Anna Fali
1044Octavia Y WaycottBrazil2026-08-16Rousseaux, Michael Esq NEGOTIATION23Stephen Shaw
1045Faith B SlusarskiRussia2026-08-08Chapman, Ross E Esq QUALIFIED23Asiya Javayant
1046Munro G SaylorsIndia2026-07-22Chanay, Jeffrey A Esq NEW50Bernardo Dominic
1047Leon K FerenczCanada2026-07-31Truhlar And Truhlar Attys PROPOSAL58Bernardo Dominic
1048Morrow X SaylorsRussia2026-08-18Truhlar And Truhlar Attys NEW24Elwin Sharvill
1049David L FigeroaBrazil2026-07-25Chanay, Jeffrey A Esq NEW79Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Mayumi P VocelkaSpainAnna Fali NEGOTIATION
Chavez W PaprockiArgentinaAnna Fali NEGOTIATION
Julie G CaldareraItalyXuxue Feng UNQUALIFIED
Leja E WhobreyBrazilAsiya Javayant QUALIFIED
Claire V OstroskyCanadaOnyama Limba UNQUALIFIED
Octavia F BologniaBrazilIvan Magalhaes UNQUALIFIED
Stacey S WhobreyArgentinaStephen Shaw RENEWAL
Adams F SergiIndiaStephen Shaw RENEWAL
Silvio E KolmetzGermanyStephen Shaw NEW
Chavez L SergiArgentinaOnyama Limba PROPOSAL
Francesco G MaletAustraliaIoni Bowcher QUALIFIED
Munro W StensethBrazilStephen Shaw RENEWAL
Greenwood D BowleyUnited KingdomBernardo Dominic NEGOTIATION
Rodrigues N DarakjyCanadaOnyama Limba UNQUALIFIED
Alejandro S DoeArgentinaAnna Fali QUALIFIED
Leja Z BriddickJapanAsiya Javayant RENEWAL
Leja X OldroydSpainIoni Bowcher RENEWAL
Tony L BriddickItalyIoni Bowcher NEGOTIATION
Deepesh N FlosiSpainBernardo Dominic NEGOTIATION
Jefferson D BriddickFranceElwin Sharvill PROPOSAL
Aruna M FlosiArgentinaXuxue Feng RENEWAL
Julie A VenereItalyAmy Elsner QUALIFIED
Morrow E CampainAustraliaAnna Fali RENEWAL
Clifford K WieserAustraliaAnna Fali NEW
Silvio Y DarakjyGermanyAsiya Javayant NEGOTIATION
Jeanfrancois N WieserGermanyBernardo Dominic NEGOTIATION
Leon Y BowleyUnited KingdomStephen Shaw NEGOTIATION
Tony Z DoeSpainAsiya Javayant NEGOTIATION
Jefferson T KuskoBrazilIoni Bowcher PROPOSAL
Julie C RutaIndiaAsiya Javayant UNQUALIFIED
Antonio U GillianBrazilOnyama Limba NEW
Leon T OstroskyRussiaIoni Bowcher NEW
Kadeem D VenereFranceAsiya Javayant PROPOSAL
Clifford J OstroskyCanadaBernardo Dominic NEW
Nicolas E ShinkoJapanAnna Fali PROPOSAL
Isabel X FigeroaBrazilElwin Sharvill PROPOSAL
Deepesh Y WieserRussiaIvan Magalhaes NEGOTIATION
Munro O GillianFranceBernardo Dominic QUALIFIED
Salvatore L WhobreyBrazilOnyama Limba PROPOSAL
Aditya N GillianBrazilAmy Elsner NEW
Claire A AlbaresFranceAnna Fali PROPOSAL
Stacey Z NickaUnited KingdomAmy Elsner PROPOSAL
Greenwood Z SaylorsSpainAsiya Javayant PROPOSAL
Morrow Z IturbideAustraliaAnna Fali QUALIFIED
Greenwood G SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Salvatore V SchemmerArgentinaBernardo Dominic RENEWAL
Johnson L WaycottCanadaIoni Bowcher NEGOTIATION
Ricardo V VocelkaIndiaOnyama Limba UNQUALIFIED
David X MarrierUnited KingdomAnna Fali NEGOTIATION
Ivar W PoquetteArgentinaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Murillo A Morasca
Jones U Briddick
Octavia D Waycott
Wickens Z Shinko
Jeanfrancois V Foller
Antonio W Caldarera
Munro C Iturbide
Silvio P Perin
Tony N Bolognia
Isabel R Wieser
Maisha B Venere
Mujtaba P Glick
David L Caldarera
Silvio K Figeroa
Maisha S Butt
Wickens E Schemmer
Sinclair Y Bolognia
Jones D Doe
Misaki B Marrier
Wickens H Butt
Deepesh Q Schemmer
Octavia C Briddick
Maria K Kolmetz
Arvin U Stockham
Greenwood U Tollner
Octavia N Whobrey
Julie Z Morasca
Izzy A Albares
Emily J Nicka
Greenwood D Ostrosky
Claire L Ferencz
Adams S Briddick
Greenwood M Flosi
Kaitlin Y Rulapaugh
Misaki O Tollner
Izzy Y Garufi
Darci W Glick
Smith J Venere
Salvatore I Figeroa
Leon B Maclead
Costa M Kusko
Smith Q Royster
Julie G Shinko
Jefferson X Shinko
Kadeem X Butt
Rodrigues G Caudy
Greenwood S Sergi
Kaitlin O Morasca
Juan P Paprocki
Johnson Z Amigon
IdCountryDate
1000Italy2026-07-31
1001Brazil2026-08-02
1002Canada2026-08-17
1003France2026-07-26
1004Russia2026-08-05
1005France2026-07-28
1006Australia2026-08-20
1007Canada2026-08-05
1008India2026-07-26
1009United Kingdom2026-07-26
1010Canada2026-08-18
1011Argentina2026-08-12
1012Japan2026-08-11
1013Brazil2026-08-18
1014Germany2026-07-22
1015Australia2026-08-20
1016Germany2026-08-14
1017Spain2026-07-29
1018Japan2026-08-14
1019Germany2026-07-25
1020Japan2026-07-22
1021Spain2026-08-03
1022Japan2026-08-01
1023Russia2026-08-15
1024India2026-08-13
1025India2026-07-23
1026Australia2026-07-31
1027Italy2026-07-31
1028Italy2026-07-23
1029Russia2026-08-19
1030Spain2026-07-22
1031Germany2026-07-26
1032Australia2026-08-11
1033Japan2026-07-30
1034United Kingdom2026-08-10
1035Brazil2026-08-07
1036Canada2026-08-12
1037Spain2026-08-12
1038Brazil2026-07-31
1039Brazil2026-07-25
1040Japan2026-08-04
1041Brazil2026-08-14
1042United Kingdom2026-07-26
1043Japan2026-08-18
1044Australia2026-08-03
1045Spain2026-07-22
1046France2026-08-08
1047Canada2026-08-05
1048Japan2026-08-07
1049Spain2026-08-04

On-Demand Data

NameIdCountryDate
Tony W Briddick1000Australia2026-07-24
Arvin C Malet1001Brazil2026-08-04
Kadeem A Saylors1002Spain2026-08-17
Deepesh I Nicka1003United Kingdom2026-08-01
Munro G Darakjy1004Argentina2026-08-13
Isabel Y Doe1005Brazil2026-08-13
Kaitlin A Bowley1006Germany2026-08-13
Ricardo Q Ruta1007Spain2026-08-10
Arvin X Dilliard1008Brazil2026-08-14
Misaki Y Garufi1009Brazil2026-08-20
Jeanfrancois Q Sergi1010Canada2026-07-22
Izzy U Nicka1011Russia2026-08-05
Juan K Rulapaugh1012Brazil2026-08-18
Ashley Y Nicka1013India2026-08-02
Murillo E Foller1014France2026-07-30
Clifford Y Bolognia1015Italy2026-08-15
Izzy X Paprocki1016Argentina2026-08-03
Juan Q Perin1017Australia2026-08-17
Arvin Y Ruta1018Italy2026-07-22
Ricardo V Schemmer1019Canada2026-08-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika J AlbaresJapanAsiya Javayant PROPOSAL
Johnson P VocelkaIndiaIvan Magalhaes RENEWAL
Sinclair F BologniaGermanyOnyama Limba NEGOTIATION
Rodrigues J GarufiGermanyAmy Elsner NEGOTIATION
Julie D StensethBrazilAmy Elsner RENEWAL
Nicolas H MorascaIndiaAsiya Javayant UNQUALIFIED
Jones E FlosiItalyAnna Fali NEW
Morrow S InouyeGermanyXuxue Feng NEW
Mayumi S WaycottSpainIvan Magalhaes UNQUALIFIED
Ivar J PoquetteCanadaIoni Bowcher RENEWAL
Ashley S ButtJapanAmy Elsner NEW
Mujtaba U GarufiCanadaIoni Bowcher PROPOSAL
Izzy I FerenczRussiaOnyama Limba NEW
Jefferson G AmigonArgentinaXuxue Feng QUALIFIED
Jeanfrancois C RulapaughAustraliaStephen Shaw NEW
Izzy P InouyeItalyIvan Magalhaes PROPOSAL
Antonio M PerinAustraliaAmy Elsner NEGOTIATION
Rodrigues Y FlosiSpainElwin Sharvill NEW
Ivar N AmigonCanadaIoni Bowcher NEGOTIATION
Morrow H BriddickGermanyXuxue Feng QUALIFIED
Leja T PerinFranceIvan Magalhaes NEGOTIATION
Clifford T InouyeAustraliaElwin Sharvill PROPOSAL
Salvatore D NestleRussiaAnna Fali QUALIFIED
Stacey D DarakjySpainXuxue Feng UNQUALIFIED
Deepesh M BriddickIndiaElwin Sharvill RENEWAL
Arvin U BowleyCanadaAnna Fali QUALIFIED
Kadeem C GillianGermanyAsiya Javayant PROPOSAL
Leon C InouyeUnited KingdomAnna Fali UNQUALIFIED
Alejandro F NickaIndiaIoni Bowcher RENEWAL
Mujtaba E SergiCanadaBernardo Dominic UNQUALIFIED
Julie V AlbaresGermanyBernardo Dominic NEGOTIATION
Kadeem Q SlusarskiGermanyOnyama Limba PROPOSAL
Maria W ButtIndiaIoni Bowcher NEGOTIATION
Kaitlin S RimFranceAnna Fali NEW
Morrow K InouyeJapanBernardo Dominic QUALIFIED
Mayumi V SergiFranceStephen Shaw NEW
David O GauchoSpainElwin Sharvill UNQUALIFIED
James G GlickFranceAsiya Javayant UNQUALIFIED
Izzy J VocelkaCanadaAsiya Javayant NEW
Morrow J CaldareraUnited KingdomOnyama Limba 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>