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
Ricardo V GillianUnited KingdomIvan Magalhaes NEGOTIATION
Emily M InouyeCanadaIvan Magalhaes NEW
Juan X ShinkoSpainAmy Elsner QUALIFIED
Silvio U ButtJapanAnna Fali NEGOTIATION
Wickens J BowleyIndiaAmy Elsner NEGOTIATION
Smith E FlosiArgentinaElwin Sharvill PROPOSAL
Jennifer I AlbaresSpainOnyama Limba NEW
Johnson W ButtFranceXuxue Feng RENEWAL
Chavez G MarrierSpainStephen Shaw QUALIFIED
Aditya Q IturbideIndiaOnyama Limba PROPOSAL
Chavez Q NickaSpainIoni Bowcher QUALIFIED
Smith T SlusarskiRussiaBernardo Dominic RENEWAL
Misaki E MorascaIndiaOnyama Limba PROPOSAL
Octavia P PaprockiUnited KingdomAsiya Javayant NEW
Ricardo F GauchoUnited KingdomOnyama Limba QUALIFIED
Smith T TollnerArgentinaAmy Elsner PROPOSAL
Kaitlin K ChuiItalyStephen Shaw PROPOSAL
Kadeem K GauchoItalyOnyama Limba PROPOSAL
Jones F MarrierIndiaOnyama Limba RENEWAL
Leja L RoysterJapanAnna Fali PROPOSAL
Mayumi C ButtFranceBernardo Dominic NEW
Morrow Y BologniaArgentinaAnna Fali QUALIFIED
Jeanfrancois K KuskoFranceXuxue Feng PROPOSAL
David Y KolmetzIndiaStephen Shaw NEW
Maria Z DilliardFranceAmy Elsner RENEWAL
Maisha W OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Mujtaba B SchemmerItalyAmy Elsner UNQUALIFIED
Emily L IturbideArgentinaStephen Shaw UNQUALIFIED
Darci M MaletSpainOnyama Limba QUALIFIED
Leon U FigeroaIndiaAmy Elsner NEGOTIATION
Johnson P MarrierCanadaAsiya Javayant RENEWAL
Faith Z RutaCanadaAsiya Javayant NEGOTIATION
Mayumi S VenereJapanIvan Magalhaes PROPOSAL
James B RoysterAustraliaIoni Bowcher PROPOSAL
Murillo P SaylorsBrazilStephen Shaw NEW
Ivar Z MarrierArgentinaOnyama Limba QUALIFIED
Isabel A NestleFranceXuxue Feng PROPOSAL
Maria L MarrierArgentinaBernardo Dominic RENEWAL
Leon E WaycottFranceAmy Elsner UNQUALIFIED
Ashley T GillianArgentinaAmy Elsner QUALIFIED
David R DarakjyArgentinaOnyama Limba PROPOSAL
Wickens X FlosiRussiaAsiya Javayant UNQUALIFIED
Rodrigues C CampainGermanyStephen Shaw QUALIFIED
Rodrigues K ButtJapanAnna Fali NEGOTIATION
Salvatore W AlbaresJapanOnyama Limba RENEWAL
Antonio Y RimItalyAnna Fali NEGOTIATION
Jennifer H SchemmerFranceAmy Elsner QUALIFIED
Aditya K BriddickArgentinaXuxue Feng NEW
Claire Q FlosiBrazilAnna Fali RENEWAL
Darci X FlosiSpainIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Leon J VenereUnited KingdomOnyama Limba NEW
Deepesh W DilliardJapanIoni Bowcher NEW
Izzy Z CaudyAustraliaIvan Magalhaes PROPOSAL
Alejandro N DilliardAustraliaIvan Magalhaes NEW
Emily G CampainArgentinaOnyama Limba UNQUALIFIED
Leja I TollnerUnited KingdomStephen Shaw UNQUALIFIED
Leja D CaldareraRussiaBernardo Dominic UNQUALIFIED
Mayumi X PoquetteIndiaStephen Shaw UNQUALIFIED
Smith Q AlbaresAustraliaAmy Elsner QUALIFIED
Cody N CaldareraBrazilXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo S GauchoFrance2026-08-11Commercial Press QUALIFIED1Onyama Limba
1001Alejandro C FollerArgentina2026-08-30Rangoni Of Florence NEGOTIATION65Stephen Shaw
1002Jefferson P WieserCanada2026-08-14Rousseaux, Michael Esq UNQUALIFIED78Onyama Limba
1003Arvin T DilliardRussia2026-08-25Chemel, James L Cpa NEW61Asiya Javayant
1004Ashley L VocelkaSpain2026-08-27King, Christopher A Esq PROPOSAL93Stephen Shaw
1005Tony T PerinCanada2026-08-05Printing Dimensions NEW40Bernardo Dominic
1006Kadeem Z BowleyAustralia2026-08-24Dorl, James J Esq PROPOSAL12Ioni Bowcher
1007Smith B BologniaUnited Kingdom2026-08-12King, Christopher A Esq NEGOTIATION6Amy Elsner
1008Morrow H SaylorsIndia2026-08-20Chemel, James L Cpa NEW51Bernardo Dominic
1009Aika U ShinkoBrazil2026-08-28Benton, John B Jr RENEWAL97Anna Fali
1010Izzy L CaldareraSpain2026-08-24Dorl, James J Esq PROPOSAL23Anna Fali
1011Nicolas W BowleyAustralia2026-08-04King, Christopher A Esq NEGOTIATION0Stephen Shaw
1012Mujtaba O StensethAustralia2026-08-22Chapman, Ross E Esq QUALIFIED85Asiya Javayant
1013Arvin T MorascaItaly2026-08-06Dorl, James J Esq QUALIFIED93Xuxue Feng
1014Francesco E IturbideFrance2026-08-09Commercial Press NEGOTIATION69Onyama Limba
1015Isabel S InouyeSpain2026-08-19Printing Dimensions UNQUALIFIED98Bernardo Dominic
1016Clifford K TollnerCanada2026-08-27Chemel, James L Cpa RENEWAL4Amy Elsner
1017Leja H KuskoItaly2026-08-17Feiner Bros UNQUALIFIED61Asiya Javayant
1018Juan O SergiCanada2026-08-20Printing Dimensions PROPOSAL67Asiya Javayant
1019Jeanfrancois R OstroskyUnited Kingdom2026-08-01Truhlar And Truhlar Attys RENEWAL88Ivan Magalhaes
1020Mayumi F SergiGermany2026-08-19Rousseaux, Michael Esq RENEWAL22Xuxue Feng
1021Jones Y PaprockiRussia2026-08-04Commercial Press QUALIFIED78Anna Fali
1022Adams H BriddickRussia2026-08-06Truhlar And Truhlar Attys QUALIFIED30Xuxue Feng
1023Munro C GauchoGermany2026-08-19Chemel, James L Cpa PROPOSAL28Ioni Bowcher
1024Smith V KolmetzSpain2026-08-16Dorl, James J Esq RENEWAL69Onyama Limba
1025Isabel U SergiGermany2026-08-10Printing Dimensions QUALIFIED81Bernardo Dominic
1026Costa I KolmetzFrance2026-08-29Rousseaux, Michael Esq NEW96Ivan Magalhaes
1027Greenwood A WhobreyCanada2026-08-05Rangoni Of Florence PROPOSAL83Elwin Sharvill
1028Sinclair G AmigonBrazil2026-08-25Chapman, Ross E Esq NEW84Ioni Bowcher
1029Nicolas V NickaJapan2026-08-17Chemel, James L Cpa NEW60Anna Fali
1030Antonio G DarakjyJapan2026-08-17Rangoni Of Florence UNQUALIFIED16Xuxue Feng
1031Nicolas K DarakjyItaly2026-08-25Rousseaux, Michael Esq NEW35Stephen Shaw
1032Alejandro F PaprockiArgentina2026-08-02Chemel, James L Cpa NEW96Amy Elsner
1033Johnson N PoquetteRussia2026-08-13Benton, John B Jr RENEWAL3Onyama Limba
1034Jeanfrancois F VocelkaArgentina2026-08-10Chemel, James L Cpa UNQUALIFIED28Ioni Bowcher
1035Antonio W GarufiArgentina2026-08-28Chemel, James L Cpa PROPOSAL32Amy Elsner
1036Darci D SergiCanada2026-08-05Morlong Associates NEGOTIATION12Anna Fali
1037Ivar Q SchemmerGermany2026-08-14Morlong Associates NEW87Stephen Shaw
1038Chavez G ShinkoItaly2026-08-20Dorl, James J Esq NEW20Asiya Javayant
1039Rodrigues D FollerBrazil2026-08-17Truhlar And Truhlar Attys NEW99Asiya Javayant
1040Maria Y MarrierCanada2026-08-06Commercial Press NEGOTIATION87Amy Elsner
1041Rodrigues B WaycottBrazil2026-08-09Morlong Associates NEW50Ioni Bowcher
1042Alejandro R CaldareraArgentina2026-08-29King, Christopher A Esq NEW20Ivan Magalhaes
1043Antonio B VocelkaSpain2026-08-29King, Christopher A Esq RENEWAL53Stephen Shaw
1044Silvio W AlbaresAustralia2026-08-08Commercial Press NEW41Onyama Limba
1045Isabel P InouyeRussia2026-08-07Rangoni Of Florence PROPOSAL51Ioni Bowcher
1046Leja X AmigonUnited Kingdom2026-08-09Truhlar And Truhlar Attys QUALIFIED30Ivan Magalhaes
1047Octavia P CampainJapan2026-08-05Rousseaux, Michael Esq NEW66Elwin Sharvill
1048Jennifer B SlusarskiSpain2026-08-14Rousseaux, Michael Esq RENEWAL17Stephen Shaw
1049Juan X InouyeRussia2026-08-04Chemel, James L Cpa NEGOTIATION41Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Smith Y GillianJapanIvan Magalhaes NEGOTIATION
Smith C BriddickSpainIoni Bowcher NEGOTIATION
Alejandro G DoeGermanyIvan Magalhaes RENEWAL
Jones A WhobreyCanadaAsiya Javayant NEW
Silvio Q RimItalyBernardo Dominic PROPOSAL
Jennifer F WieserSpainOnyama Limba RENEWAL
Leon H ButtRussiaXuxue Feng NEGOTIATION
Kaitlin Y FerenczFranceIvan Magalhaes NEW
Julie V ChuiGermanyAmy Elsner QUALIFIED
Maria I SchemmerIndiaStephen Shaw NEW
Cody T InouyeSpainElwin Sharvill PROPOSAL
Emily I IturbideCanadaIoni Bowcher NEGOTIATION
Mujtaba L SaylorsSpainAsiya Javayant QUALIFIED
Arvin V SchemmerJapanStephen Shaw NEGOTIATION
Ashley D NestleItalyIvan Magalhaes NEW
Darci M OstroskySpainIvan Magalhaes RENEWAL
Francesco N RoysterUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer T VenereRussiaElwin Sharvill QUALIFIED
James P FollerItalyAmy Elsner PROPOSAL
Arvin Z ButtBrazilBernardo Dominic QUALIFIED
Claire Q GauchoItalyXuxue Feng QUALIFIED
Greenwood C ButtFranceAsiya Javayant UNQUALIFIED
Jefferson Z GlickGermanyElwin Sharvill NEW
Kadeem Q SlusarskiItalyOnyama Limba RENEWAL
Costa X FlosiItalyOnyama Limba RENEWAL
Misaki F DilliardCanadaAmy Elsner UNQUALIFIED
Tony Q SlusarskiSpainIoni Bowcher PROPOSAL
Misaki W KuskoGermanyAsiya Javayant NEW
Murillo A BriddickJapanIvan Magalhaes NEGOTIATION
Munro Q RoysterFranceBernardo Dominic NEW
Mayumi F PerinRussiaAsiya Javayant QUALIFIED
Francesco C SaylorsItalyElwin Sharvill QUALIFIED
Deepesh X AmigonIndiaIoni Bowcher NEW
Francesco U MacleadFranceAsiya Javayant RENEWAL
Kaitlin C OstroskyItalyAsiya Javayant QUALIFIED
Jeanfrancois U StensethBrazilBernardo Dominic NEGOTIATION
Darci F PoquetteUnited KingdomElwin Sharvill RENEWAL
Jennifer V SergiJapanIvan Magalhaes NEW
Faith Q GarufiGermanyAnna Fali QUALIFIED
Jefferson Z RoysterRussiaIoni Bowcher NEGOTIATION
Antonio L PaprockiFranceXuxue Feng PROPOSAL
Deepesh P DarakjyUnited KingdomBernardo Dominic QUALIFIED
Misaki J RimGermanyIoni Bowcher UNQUALIFIED
Johnson R NestleGermanyBernardo Dominic RENEWAL
Clifford K ChuiSpainBernardo Dominic NEW
Ricardo L KuskoItalyAmy Elsner RENEWAL
Ashley R MarrierItalyElwin Sharvill QUALIFIED
David J RoysterItalyStephen Shaw PROPOSAL
Juan V CaudyAustraliaBernardo Dominic QUALIFIED
Smith P BowleyUnited KingdomElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Izzy W Schemmer
Octavia N Poquette
Claire G Doe
Clifford H Rulapaugh
Sinclair M Darakjy
Mujtaba C Albares
Misaki D Chui
Francesco O Wieser
Ivar L Darakjy
Ivar Q Poquette
Morrow U Ferencz
Rodrigues K Vocelka
Kaitlin Z Schemmer
Claire W Tollner
Mayumi F Foller
Misaki V Oldroyd
Jones E Albares
Octavia I Sergi
Silvio U Royster
Faith X Kusko
Aditya A Whobrey
Nicolas R Doe
Clifford Z Sergi
Clifford V Albares
Sinclair E Whobrey
Darci Z Shinko
Kaitlin Z Inouye
Julie W Albares
Kadeem D Inouye
Jones Y Tollner
Adams X Doe
Costa U Malet
Faith B Ostrosky
Jeanfrancois C Caudy
Kaitlin H Ferencz
Jefferson Z Inouye
Jefferson Z Sergi
Sinclair P Perin
Aditya M Amigon
Smith W Venere
Adams O Gaucho
Francesco M Flosi
Octavia K Tollner
Costa W Stockham
Claire L Kolmetz
Juan Q Vocelka
Ivar Y Shinko
Leja B Whobrey
Salvatore E Vocelka
Murillo Y Bowley
IdCountryDate
1000Italy2026-08-13
1001Spain2026-08-11
1002Australia2026-08-11
1003Spain2026-08-29
1004Italy2026-08-15
1005Spain2026-08-26
1006United Kingdom2026-08-19
1007Italy2026-08-11
1008Canada2026-08-02
1009France2026-08-29
1010Brazil2026-08-05
1011Australia2026-08-13
1012Brazil2026-08-22
1013Argentina2026-08-03
1014Spain2026-08-19
1015Spain2026-08-04
1016Spain2026-08-14
1017Spain2026-08-06
1018Italy2026-08-28
1019India2026-08-04
1020Italy2026-08-09
1021Argentina2026-08-17
1022Brazil2026-08-07
1023Canada2026-08-21
1024Spain2026-08-11
1025Brazil2026-08-11
1026Germany2026-08-17
1027Canada2026-08-11
1028France2026-08-05
1029Brazil2026-08-21
1030Canada2026-08-27
1031United Kingdom2026-08-02
1032Spain2026-08-30
1033Australia2026-08-21
1034Japan2026-08-02
1035Brazil2026-08-07
1036Canada2026-08-23
1037Spain2026-08-24
1038Germany2026-08-22
1039United Kingdom2026-08-10
1040Australia2026-08-01
1041Canada2026-08-22
1042India2026-08-12
1043Argentina2026-08-28
1044Italy2026-08-16
1045India2026-08-30
1046India2026-08-19
1047United Kingdom2026-08-27
1048Japan2026-08-07
1049Brazil2026-08-05

On-Demand Data

NameIdCountryDate
Cody A Chui1000Japan2026-08-21
Ashley B Ostrosky1001Australia2026-08-11
Aika B Albares1002India2026-08-09
Sinclair R Chui1003Brazil2026-08-03
Rodrigues D Campain1004Canada2026-08-30
Darci R Tollner1005Australia2026-08-19
Sinclair O Glick1006Japan2026-08-09
Ricardo N Stenseth1007United Kingdom2026-08-02
Tony A Perin1008Brazil2026-08-24
Jennifer T Doe1009France2026-08-29
Chavez J Glick1010Germany2026-08-10
Nicolas D Vocelka1011Australia2026-08-28
Claire Y Slusarski1012Argentina2026-08-07
Silvio A Ferencz1013Italy2026-08-04
Claire W Rulapaugh1014Argentina2026-08-25
Ricardo H Stenseth1015India2026-08-03
Aditya O Perin1016Japan2026-08-25
Isabel G Chui1017India2026-08-28
Misaki V Perin1018Germany2026-08-28
Costa H Wieser1019Argentina2026-08-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika X ButtBrazilBernardo Dominic QUALIFIED
Murillo B NestleArgentinaAnna Fali NEGOTIATION
Juan Q AmigonArgentinaXuxue Feng NEGOTIATION
Clifford D PerinRussiaStephen Shaw RENEWAL
Alejandro W CaudyFranceOnyama Limba NEW
Jeanfrancois Y FerenczRussiaElwin Sharvill NEW
Aditya J VenereSpainBernardo Dominic PROPOSAL
Ashley M NestleArgentinaAsiya Javayant QUALIFIED
Misaki T CampainGermanyXuxue Feng QUALIFIED
Darci Q MacleadGermanyOnyama Limba QUALIFIED
Maisha G RulapaughGermanyXuxue Feng PROPOSAL
Jefferson Z GillianArgentinaAmy Elsner QUALIFIED
Adams F VenereIndiaIvan Magalhaes UNQUALIFIED
Silvio T FigeroaFranceAnna Fali NEGOTIATION
Claire D GarufiGermanyAsiya Javayant RENEWAL
Jennifer H KolmetzIndiaIoni Bowcher QUALIFIED
Rodrigues O SchemmerSpainStephen Shaw UNQUALIFIED
Julie K BowleyItalyStephen Shaw QUALIFIED
Jeanfrancois H WieserGermanyElwin Sharvill QUALIFIED
Morrow C AlbaresJapanOnyama Limba QUALIFIED
Jefferson U CampainJapanIoni Bowcher NEGOTIATION
Faith E PoquetteCanadaIvan Magalhaes UNQUALIFIED
Maisha E CaudyJapanIoni Bowcher NEGOTIATION
Smith D VocelkaCanadaXuxue Feng NEW
Munro L AmigonUnited KingdomIoni Bowcher NEGOTIATION
Nicolas Y VenereFranceXuxue Feng RENEWAL
Faith Z SchemmerAustraliaOnyama Limba UNQUALIFIED
Antonio Q RimBrazilIoni Bowcher NEGOTIATION
Izzy V MarrierIndiaIvan Magalhaes RENEWAL
Deepesh L WhobreyItalyXuxue Feng NEW
Chavez N WaycottUnited KingdomAmy Elsner NEW
Morrow D MarrierJapanStephen Shaw RENEWAL
Greenwood S DilliardAustraliaIoni Bowcher QUALIFIED
Clifford B MarrierGermanyElwin Sharvill UNQUALIFIED
Jones Z SergiGermanyElwin Sharvill NEW
Maria D MaletGermanyXuxue Feng NEW
Sinclair A MaletItalyXuxue Feng NEW
David C FlosiUnited KingdomBernardo Dominic PROPOSAL
Munro G WhobreyRussiaAmy Elsner PROPOSAL
Octavia E MorascaIndiaStephen Shaw RENEWAL

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