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
Nicolas Y InouyeAustraliaAsiya Javayant UNQUALIFIED
James Z FollerArgentinaAmy Elsner UNQUALIFIED
Leja I GlickCanadaOnyama Limba NEGOTIATION
Jones V InouyeJapanOnyama Limba PROPOSAL
Misaki R OldroydBrazilAsiya Javayant PROPOSAL
Maria Z AlbaresSpainOnyama Limba QUALIFIED
Arvin W VenereJapanXuxue Feng RENEWAL
Kadeem A AmigonFranceElwin Sharvill UNQUALIFIED
Wickens V PaprockiBrazilAnna Fali NEW
Wickens X KolmetzIndiaAmy Elsner RENEWAL
Alejandro V GarufiGermanyStephen Shaw QUALIFIED
Julie D ButtRussiaAsiya Javayant RENEWAL
Faith T FlosiFranceOnyama Limba RENEWAL
Rodrigues I VenereItalyAsiya Javayant UNQUALIFIED
Francesco G MaletCanadaAnna Fali QUALIFIED
Wickens M MarrierAustraliaIvan Magalhaes UNQUALIFIED
Aruna D ButtItalyXuxue Feng RENEWAL
Johnson T DoeUnited KingdomAmy Elsner NEW
Jones D VenereJapanStephen Shaw RENEWAL
Aditya U MacleadAustraliaStephen Shaw QUALIFIED
Stacey Q SaylorsBrazilIoni Bowcher RENEWAL
Stacey Q MacleadBrazilAnna Fali NEGOTIATION
Claire B FerenczGermanyIvan Magalhaes NEW
Rodrigues F RimFranceXuxue Feng QUALIFIED
Mujtaba E WhobreyUnited KingdomAnna Fali UNQUALIFIED
Johnson Q BriddickFranceElwin Sharvill RENEWAL
Francesco R SchemmerArgentinaXuxue Feng UNQUALIFIED
Sinclair A CaudyFranceIoni Bowcher QUALIFIED
Leja H OldroydItalyAnna Fali QUALIFIED
Emily E OldroydAustraliaXuxue Feng RENEWAL
Maria U SlusarskiBrazilXuxue Feng QUALIFIED
Francesco A SlusarskiCanadaOnyama Limba NEGOTIATION
Maisha R RoysterArgentinaAsiya Javayant RENEWAL
Stacey O DarakjyGermanyAmy Elsner UNQUALIFIED
David Y MaletCanadaAsiya Javayant UNQUALIFIED
Emily B FerenczJapanBernardo Dominic NEW
Isabel W WieserIndiaIoni Bowcher QUALIFIED
Octavia D RimRussiaAnna Fali NEGOTIATION
Claire R DilliardIndiaBernardo Dominic NEGOTIATION
Cody J ButtFranceAmy Elsner NEW
Clifford X MaletFranceElwin Sharvill NEGOTIATION
Leon H OstroskyArgentinaOnyama Limba PROPOSAL
James P VenereIndiaElwin Sharvill PROPOSAL
Johnson D SergiCanadaIvan Magalhaes NEW
Izzy L MarrierRussiaAsiya Javayant QUALIFIED
Izzy H DarakjyGermanyAmy Elsner QUALIFIED
Kaitlin P FigeroaAustraliaOnyama Limba NEW
Jennifer P ChuiBrazilAsiya Javayant PROPOSAL
Rodrigues F ChuiSpainXuxue Feng RENEWAL
Aika R FerenczIndiaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan T GarufiFranceElwin Sharvill QUALIFIED
Jeanfrancois S SlusarskiArgentinaIvan Magalhaes PROPOSAL
Darci W ShinkoItalyAsiya Javayant NEGOTIATION
Silvio F FlosiUnited KingdomAmy Elsner QUALIFIED
Antonio W FigeroaIndiaAnna Fali QUALIFIED
Nicolas Y ShinkoJapanAmy Elsner QUALIFIED
Francesco O PaprockiArgentinaStephen Shaw PROPOSAL
Emily N CaudyFranceElwin Sharvill PROPOSAL
Maisha W FlosiRussiaXuxue Feng PROPOSAL
Jeanfrancois S OldroydGermanyAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey E SaylorsCanada2026-07-13Buckley Miller Wright QUALIFIED99Asiya Javayant
1001Julie K CaudyUnited Kingdom2026-07-21King, Christopher A Esq RENEWAL5Xuxue Feng
1002Arvin R MorascaUnited Kingdom2026-07-25Rousseaux, Michael Esq RENEWAL26Onyama Limba
1003Stacey X DilliardAustralia2026-07-31Printing Dimensions NEGOTIATION25Onyama Limba
1004Morrow Q StockhamItaly2026-07-11Rousseaux, Michael Esq NEGOTIATION91Anna Fali
1005Chavez P IturbideBrazil2026-08-04Rangoni Of Florence NEW12Onyama Limba
1006Cody D MarrierGermany2026-08-01Morlong Associates QUALIFIED43Bernardo Dominic
1007Ashley S CampainIndia2026-07-29Benton, John B Jr QUALIFIED16Stephen Shaw
1008Adams G DoeSpain2026-07-12Feltz Printing Service NEGOTIATION82Elwin Sharvill
1009Aika N DilliardBrazil2026-07-15Feltz Printing Service RENEWAL72Onyama Limba
1010Claire A RimCanada2026-07-21Dorl, James J Esq PROPOSAL34Anna Fali
1011Ashley V ShinkoUnited Kingdom2026-07-12Dorl, James J Esq PROPOSAL30Onyama Limba
1012Sinclair I GauchoItaly2026-07-17Chapman, Ross E Esq PROPOSAL74Xuxue Feng
1013Adams J MaletIndia2026-07-26Rousseaux, Michael Esq QUALIFIED84Ioni Bowcher
1014Murillo X GillianUnited Kingdom2026-07-16Benton, John B Jr RENEWAL51Stephen Shaw
1015Kaitlin M BriddickUnited Kingdom2026-07-11Chanay, Jeffrey A Esq UNQUALIFIED74Bernardo Dominic
1016Chavez Y MacleadItaly2026-07-19Feiner Bros PROPOSAL19Ioni Bowcher
1017Smith D TollnerGermany2026-07-30Rousseaux, Michael Esq NEW32Onyama Limba
1018Deepesh O WaycottItaly2026-07-25Feltz Printing Service PROPOSAL49Xuxue Feng
1019James M InouyeRussia2026-07-30Feiner Bros NEGOTIATION76Elwin Sharvill
1020Faith X BriddickAustralia2026-07-13Feltz Printing Service UNQUALIFIED9Amy Elsner
1021Greenwood R FerenczItaly2026-07-19Morlong Associates RENEWAL87Onyama Limba
1022Nicolas B AlbaresJapan2026-08-03Chemel, James L Cpa QUALIFIED2Ioni Bowcher
1023Aika K IturbideRussia2026-07-10Truhlar And Truhlar Attys UNQUALIFIED91Asiya Javayant
1024Kaitlin B GlickCanada2026-07-21Rousseaux, Michael Esq QUALIFIED37Elwin Sharvill
1025Maria Y DoeJapan2026-07-17Rousseaux, Michael Esq RENEWAL11Elwin Sharvill
1026Chavez P MarrierBrazil2026-08-02Chemel, James L Cpa UNQUALIFIED6Ivan Magalhaes
1027Mayumi X SergiUnited Kingdom2026-08-01Feiner Bros NEW84Ioni Bowcher
1028Misaki M WaycottCanada2026-07-20Morlong Associates RENEWAL49Elwin Sharvill
1029Maisha N MaletAustralia2026-07-14Truhlar And Truhlar Attys RENEWAL56Ivan Magalhaes
1030Tony V FollerGermany2026-07-21Benton, John B Jr NEW39Elwin Sharvill
1031Alejandro C RutaSpain2026-07-24Rousseaux, Michael Esq UNQUALIFIED38Bernardo Dominic
1032Chavez Z BriddickArgentina2026-08-04King, Christopher A Esq NEGOTIATION34Onyama Limba
1033Faith H KolmetzUnited Kingdom2026-07-15Chanay, Jeffrey A Esq PROPOSAL6Onyama Limba
1034Smith L PoquetteArgentina2026-07-16Chemel, James L Cpa QUALIFIED6Ivan Magalhaes
1035Faith W NestleUnited Kingdom2026-08-04Chapman, Ross E Esq NEW85Ivan Magalhaes
1036Murillo X StockhamArgentina2026-07-27Feltz Printing Service UNQUALIFIED95Stephen Shaw
1037Claire T OldroydFrance2026-07-16Chapman, Ross E Esq UNQUALIFIED85Ioni Bowcher
1038Aika R RutaCanada2026-07-28Rousseaux, Michael Esq NEGOTIATION33Xuxue Feng
1039Ricardo V SchemmerSpain2026-08-06Printing Dimensions RENEWAL15Bernardo Dominic
1040Tony K AlbaresJapan2026-07-15Chanay, Jeffrey A Esq NEGOTIATION74Ioni Bowcher
1041Greenwood U DoeRussia2026-07-12Chapman, Ross E Esq PROPOSAL16Elwin Sharvill
1042Octavia B FlosiGermany2026-07-28Morlong Associates NEGOTIATION45Asiya Javayant
1043Clifford N DarakjyAustralia2026-07-26Chapman, Ross E Esq QUALIFIED18Xuxue Feng
1044Izzy D InouyeBrazil2026-07-10Rangoni Of Florence PROPOSAL86Asiya Javayant
1045Isabel C IturbideAustralia2026-07-31Printing Dimensions NEW73Elwin Sharvill
1046Greenwood J WaycottAustralia2026-07-15Chapman, Ross E Esq RENEWAL77Xuxue Feng
1047Rodrigues N IturbideSpain2026-08-07Rangoni Of Florence NEW74Xuxue Feng
1048Leja F RimFrance2026-08-04Printing Dimensions UNQUALIFIED25Xuxue Feng
1049Johnson F ButtFrance2026-07-19Chemel, James L Cpa RENEWAL90Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Chavez V StensethCanadaAnna Fali RENEWAL
Maria E DilliardItalyAnna Fali NEGOTIATION
Emily W BowleyUnited KingdomAnna Fali PROPOSAL
Isabel B BriddickAustraliaIoni Bowcher RENEWAL
Francesco U ChuiFranceIvan Magalhaes UNQUALIFIED
Aruna K MarrierSpainXuxue Feng NEW
Johnson F CampainFranceBernardo Dominic QUALIFIED
Jeanfrancois Y AlbaresJapanIoni Bowcher NEGOTIATION
Chavez V NestleAustraliaBernardo Dominic RENEWAL
Misaki L OstroskyRussiaAmy Elsner PROPOSAL
Jeanfrancois S KolmetzBrazilElwin Sharvill NEW
Chavez U CaudyJapanXuxue Feng RENEWAL
Izzy J OldroydItalyIoni Bowcher RENEWAL
Tony O PoquetteItalyAmy Elsner UNQUALIFIED
Isabel J PaprockiJapanIvan Magalhaes NEGOTIATION
Antonio R GarufiBrazilElwin Sharvill RENEWAL
Smith U OstroskyIndiaBernardo Dominic PROPOSAL
Chavez Q FlosiIndiaIvan Magalhaes QUALIFIED
Izzy T SchemmerArgentinaXuxue Feng NEGOTIATION
Deepesh L MaletRussiaAsiya Javayant NEGOTIATION
Ivar W PoquetteBrazilAsiya Javayant NEW
Faith B AmigonBrazilOnyama Limba QUALIFIED
Aruna A CaudyUnited KingdomIvan Magalhaes NEGOTIATION
Silvio U RimJapanIoni Bowcher RENEWAL
Juan U BriddickAustraliaOnyama Limba NEW
James Z KolmetzJapanAmy Elsner QUALIFIED
Mayumi W SchemmerRussiaAnna Fali NEW
Silvio G NickaGermanyBernardo Dominic PROPOSAL
Morrow R CampainGermanyAsiya Javayant NEGOTIATION
David A WieserIndiaXuxue Feng NEGOTIATION
Maria H FollerFranceElwin Sharvill NEW
Alejandro L StensethUnited KingdomBernardo Dominic NEGOTIATION
Jones A SaylorsAustraliaElwin Sharvill QUALIFIED
Jeanfrancois J BriddickFranceAsiya Javayant NEGOTIATION
Kaitlin S FlosiCanadaAsiya Javayant QUALIFIED
Salvatore C GillianIndiaAmy Elsner PROPOSAL
Jeanfrancois Q CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Jennifer K OldroydSpainBernardo Dominic QUALIFIED
David X KolmetzJapanAsiya Javayant QUALIFIED
Adams H WieserUnited KingdomAnna Fali RENEWAL
Ricardo J IturbideCanadaIoni Bowcher NEGOTIATION
Cody Y KolmetzRussiaStephen Shaw QUALIFIED
Wickens W DilliardBrazilStephen Shaw UNQUALIFIED
Antonio U GlickFranceXuxue Feng NEGOTIATION
Maria E RutaArgentinaIoni Bowcher NEW
Kadeem C DoeJapanStephen Shaw NEGOTIATION
Darci R SergiGermanyOnyama Limba QUALIFIED
Morrow H TollnerItalyBernardo Dominic NEW
Julie Q RoysterJapanAmy Elsner PROPOSAL
Misaki I MarrierFranceIvan Magalhaes QUALIFIED
Frozen Columns
Name
Alejandro N Caudy
Ivar L Bowley
Octavia J Venere
Darci G Iturbide
Jefferson G Oldroyd
Claire R Briddick
Faith C Malet
Isabel J Waycott
Aika I Nestle
Kaitlin C Foller
Faith O Darakjy
Alejandro E Schemmer
Aditya P Schemmer
Ivar N Malet
Faith V Inouye
Ricardo D Butt
Maria T Garufi
Antonio Y Marrier
Johnson G Flosi
Maria V Malet
Salvatore C Ostrosky
Kaitlin X Ostrosky
Claire O Tollner
Nicolas T Foller
Alejandro S Sergi
Aruna X Campain
Alejandro T Sergi
Ashley F Wieser
Chavez P Chui
Kadeem Q Oldroyd
Rodrigues R Maclead
Jeanfrancois M Poquette
Leja W Albares
Faith E Glick
Jennifer N Figeroa
Jennifer N Stenseth
Alejandro G Saylors
Leon A Ostrosky
Murillo Y Nestle
Arvin O Rulapaugh
Octavia W Albares
Chavez Y Darakjy
Morrow X Saylors
Adams F Waycott
Deepesh L Rulapaugh
Jefferson N Rim
Maria O Nicka
Salvatore P Morasca
James E Oldroyd
James T Stockham
IdCountryDate
1000United Kingdom2026-07-26
1001France2026-07-15
1002Argentina2026-07-23
1003United Kingdom2026-07-26
1004Japan2026-07-27
1005Russia2026-07-15
1006Germany2026-08-07
1007United Kingdom2026-07-22
1008Argentina2026-08-03
1009Japan2026-07-20
1010Spain2026-07-20
1011Australia2026-08-03
1012Germany2026-08-02
1013Argentina2026-07-15
1014India2026-08-07
1015India2026-08-01
1016Italy2026-08-04
1017Spain2026-07-29
1018Japan2026-07-14
1019United Kingdom2026-07-28
1020United Kingdom2026-07-22
1021Brazil2026-07-30
1022Brazil2026-07-21
1023Italy2026-07-18
1024Canada2026-07-10
1025Australia2026-07-25
1026Brazil2026-07-24
1027United Kingdom2026-08-03
1028India2026-07-17
1029Italy2026-07-18
1030France2026-07-26
1031India2026-08-03
1032Argentina2026-07-22
1033Italy2026-08-05
1034Germany2026-08-06
1035Australia2026-07-14
1036Argentina2026-08-01
1037Japan2026-07-28
1038Argentina2026-07-27
1039Japan2026-07-22
1040Australia2026-08-04
1041Canada2026-07-11
1042Canada2026-07-16
1043Italy2026-07-16
1044Spain2026-07-11
1045Russia2026-08-02
1046Japan2026-07-19
1047India2026-07-15
1048United Kingdom2026-07-28
1049Russia2026-08-06

On-Demand Data

NameIdCountryDate
Rodrigues C Royster1000Japan2026-08-03
Sinclair B Ruta1001France2026-07-26
Mayumi E Perin1002India2026-07-31
Darci D Kolmetz1003Argentina2026-08-05
Rodrigues O Garufi1004Spain2026-07-11
Chavez M Saylors1005Canada2026-07-22
James A Slusarski1006Canada2026-08-06
Smith K Royster1007Australia2026-08-06
Jennifer Q Stockham1008Spain2026-07-27
Maisha L Perin1009Spain2026-08-04
James J Ruta1010Argentina2026-07-25
Alejandro E Oldroyd1011France2026-08-08
Jefferson D Royster1012Italy2026-07-16
Wickens U Poquette1013Brazil2026-08-06
Alejandro N Sergi1014India2026-08-08
Francesco R Garufi1015Brazil2026-07-10
Alejandro H Bowley1016United Kingdom2026-07-30
Murillo B Albares1017Argentina2026-07-15
Adams H Morasca1018Spain2026-07-12
Claire B Stockham1019Spain2026-07-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia E FollerItalyXuxue Feng UNQUALIFIED
Murillo S CaudyAustraliaIoni Bowcher NEW
Claire C SaylorsRussiaAmy Elsner PROPOSAL
Jeanfrancois B KolmetzUnited KingdomElwin Sharvill QUALIFIED
Leja U OstroskyUnited KingdomIvan Magalhaes QUALIFIED
Francesco I MarrierJapanStephen Shaw NEW
Johnson W VenereJapanBernardo Dominic RENEWAL
Kaitlin D RoysterUnited KingdomIoni Bowcher UNQUALIFIED
Claire V ShinkoJapanAsiya Javayant QUALIFIED
Murillo R WaycottUnited KingdomBernardo Dominic RENEWAL
Jeanfrancois I KolmetzBrazilAmy Elsner NEW
Munro T DilliardBrazilOnyama Limba PROPOSAL
Costa S FigeroaItalyElwin Sharvill PROPOSAL
Mayumi H NickaAustraliaAmy Elsner RENEWAL
Jones O FollerRussiaAmy Elsner NEW
Octavia Z NickaFranceAnna Fali PROPOSAL
Murillo W BologniaArgentinaAmy Elsner NEGOTIATION
Maisha V GillianFranceStephen Shaw NEGOTIATION
Maisha Y FlosiRussiaAmy Elsner QUALIFIED
Izzy C SlusarskiUnited KingdomIoni Bowcher RENEWAL
Chavez A InouyeRussiaElwin Sharvill NEGOTIATION
Kaitlin L VocelkaIndiaXuxue Feng RENEWAL
Jennifer Z WaycottJapanXuxue Feng QUALIFIED
Ivar L DilliardRussiaAmy Elsner NEGOTIATION
Emily U DarakjyItalyAsiya Javayant QUALIFIED
Jeanfrancois C MarrierUnited KingdomAmy Elsner PROPOSAL
Claire G StensethIndiaAnna Fali PROPOSAL
Maria U GlickCanadaBernardo Dominic NEGOTIATION
Alejandro D SaylorsFranceXuxue Feng NEGOTIATION
Nicolas B GillianCanadaAmy Elsner UNQUALIFIED
Aditya A SergiCanadaIvan Magalhaes QUALIFIED
Jones D OstroskyJapanAmy Elsner RENEWAL
David R PerinJapanIvan Magalhaes NEW
Antonio R RimRussiaIvan Magalhaes NEGOTIATION
Costa J NickaFranceAsiya Javayant NEGOTIATION
Rodrigues B KuskoBrazilAmy Elsner RENEWAL
Mujtaba B AmigonAustraliaBernardo Dominic PROPOSAL
Morrow O OstroskyBrazilXuxue Feng RENEWAL
Alejandro U RoysterRussiaElwin Sharvill NEW
Misaki L VenereArgentinaIvan 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>