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
Jeanfrancois C AlbaresRussiaBernardo Dominic PROPOSAL
Mujtaba W FigeroaRussiaBernardo Dominic RENEWAL
Ashley Z IturbideGermanyIoni Bowcher PROPOSAL
Jones X CampainGermanyStephen Shaw PROPOSAL
Ricardo Y RulapaughGermanyOnyama Limba QUALIFIED
Mayumi W BowleyRussiaStephen Shaw QUALIFIED
Arvin J SchemmerIndiaAnna Fali QUALIFIED
Jennifer I VocelkaAustraliaStephen Shaw PROPOSAL
Silvio Y NickaRussiaAsiya Javayant QUALIFIED
Tony H GillianGermanyStephen Shaw QUALIFIED
Arvin J NestleUnited KingdomStephen Shaw NEGOTIATION
David I RimJapanIvan Magalhaes PROPOSAL
Antonio R OldroydSpainIoni Bowcher NEGOTIATION
Rodrigues N OstroskyFranceXuxue Feng RENEWAL
James U PoquetteIndiaAmy Elsner NEGOTIATION
Nicolas S DilliardAustraliaXuxue Feng UNQUALIFIED
Isabel K WieserSpainAsiya Javayant QUALIFIED
Antonio O WaycottIndiaElwin Sharvill PROPOSAL
Aditya K MorascaJapanBernardo Dominic QUALIFIED
Leja M MorascaAustraliaBernardo Dominic QUALIFIED
Alejandro H SaylorsJapanStephen Shaw QUALIFIED
Emily L MarrierAustraliaXuxue Feng PROPOSAL
Jennifer E GauchoFranceOnyama Limba NEW
Salvatore D SchemmerRussiaOnyama Limba QUALIFIED
Mujtaba C GillianGermanyAnna Fali PROPOSAL
Jones Q FigeroaUnited KingdomElwin Sharvill NEW
Ricardo Y NestleItalyAnna Fali PROPOSAL
Antonio X RulapaughItalyBernardo Dominic NEW
Wickens E StockhamBrazilIoni Bowcher RENEWAL
Tony E MaletItalyIvan Magalhaes UNQUALIFIED
David Y MaletJapanXuxue Feng QUALIFIED
Salvatore I GillianSpainBernardo Dominic NEW
Aruna V WieserSpainBernardo Dominic UNQUALIFIED
Nicolas F OstroskyGermanyAnna Fali UNQUALIFIED
Leja E SlusarskiItalyElwin Sharvill NEGOTIATION
Maisha N ButtJapanAmy Elsner NEGOTIATION
Cody B WaycottItalyStephen Shaw RENEWAL
Leon Z FerenczFranceAnna Fali UNQUALIFIED
Darci N VocelkaSpainAsiya Javayant PROPOSAL
Leja W ShinkoArgentinaElwin Sharvill UNQUALIFIED
Wickens T MorascaCanadaAnna Fali NEW
Ivar J FollerFranceAsiya Javayant RENEWAL
Clifford M GillianFranceStephen Shaw NEGOTIATION
Morrow Q DoeSpainAmy Elsner PROPOSAL
Chavez N MaletAustraliaOnyama Limba PROPOSAL
Jefferson J DilliardAustraliaAmy Elsner NEGOTIATION
Smith U RutaIndiaStephen Shaw NEW
Tony J GauchoRussiaAnna Fali RENEWAL
Mujtaba L FigeroaBrazilOnyama Limba QUALIFIED
Maria M NestleRussiaAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Murillo Z RulapaughArgentinaOnyama Limba RENEWAL
Mayumi B StensethGermanyIoni Bowcher NEGOTIATION
Jones Q OldroydArgentinaElwin Sharvill QUALIFIED
Johnson G TollnerCanadaBernardo Dominic UNQUALIFIED
James D SchemmerCanadaAnna Fali UNQUALIFIED
Munro M RulapaughCanadaBernardo Dominic QUALIFIED
Munro X SergiGermanyIvan Magalhaes NEGOTIATION
Leon O GillianSpainIvan Magalhaes NEGOTIATION
Tony J TollnerUnited KingdomXuxue Feng NEGOTIATION
James D CampainSpainAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria V WhobreyGermany2026-08-06Chemel, James L Cpa NEGOTIATION97Ivan Magalhaes
1001Maria J ChuiBrazil2026-08-05King, Christopher A Esq RENEWAL27Asiya Javayant
1002Faith G VenereBrazil2026-08-10Feiner Bros PROPOSAL53Elwin Sharvill
1003Maria B AlbaresItaly2026-07-18Buckley Miller Wright QUALIFIED81Amy Elsner
1004Octavia M FerenczAustralia2026-08-05Commercial Press NEGOTIATION52Amy Elsner
1005Johnson B MaletUnited Kingdom2026-08-12Feiner Bros PROPOSAL49Elwin Sharvill
1006Kadeem J FerenczCanada2026-07-29Chapman, Ross E Esq NEGOTIATION72Onyama Limba
1007Ricardo B StockhamBrazil2026-07-16Rangoni Of Florence UNQUALIFIED12Ivan Magalhaes
1008Silvio R InouyeRussia2026-07-18Dorl, James J Esq PROPOSAL62Ioni Bowcher
1009Arvin N RoysterItaly2026-08-01Rangoni Of Florence UNQUALIFIED12Onyama Limba
1010Aika Y SchemmerRussia2026-08-06Rangoni Of Florence PROPOSAL32Ivan Magalhaes
1011Clifford L GlickCanada2026-08-09Benton, John B Jr RENEWAL35Stephen Shaw
1012Izzy C FlosiFrance2026-08-02Rousseaux, Michael Esq RENEWAL74Anna Fali
1013Kadeem N DarakjyBrazil2026-08-06Feltz Printing Service PROPOSAL85Amy Elsner
1014Greenwood R MacleadFrance2026-07-14Feiner Bros PROPOSAL43Ivan Magalhaes
1015Alejandro J FlosiUnited Kingdom2026-08-09Dorl, James J Esq NEGOTIATION97Elwin Sharvill
1016Wickens D KolmetzFrance2026-07-16Buckley Miller Wright PROPOSAL38Elwin Sharvill
1017Misaki O CampainItaly2026-08-12Dorl, James J Esq NEGOTIATION42Elwin Sharvill
1018Aika D OstroskyBrazil2026-07-18Rangoni Of Florence NEW22Asiya Javayant
1019Rodrigues X ShinkoArgentina2026-07-24Benton, John B Jr RENEWAL87Amy Elsner
1020Morrow G FollerFrance2026-08-08Feltz Printing Service NEGOTIATION81Elwin Sharvill
1021Silvio Z ChuiJapan2026-07-29King, Christopher A Esq QUALIFIED70Amy Elsner
1022Juan L VenereUnited Kingdom2026-07-31Chapman, Ross E Esq PROPOSAL19Elwin Sharvill
1023Mujtaba O SchemmerItaly2026-07-16King, Christopher A Esq UNQUALIFIED76Ivan Magalhaes
1024Ricardo T RoysterBrazil2026-07-14King, Christopher A Esq PROPOSAL52Anna Fali
1025Morrow M BologniaJapan2026-07-27Dorl, James J Esq NEGOTIATION87Elwin Sharvill
1026Sinclair C NestleAustralia2026-08-11Benton, John B Jr QUALIFIED14Ivan Magalhaes
1027Antonio B DoeCanada2026-07-19Chanay, Jeffrey A Esq PROPOSAL4Bernardo Dominic
1028Murillo J SlusarskiBrazil2026-08-10Feiner Bros UNQUALIFIED8Ivan Magalhaes
1029Murillo X BowleyUnited Kingdom2026-08-01Truhlar And Truhlar Attys NEW92Anna Fali
1030Stacey A FlosiGermany2026-08-10Chapman, Ross E Esq QUALIFIED84Onyama Limba
1031Smith N MorascaItaly2026-07-20Chanay, Jeffrey A Esq NEGOTIATION96Anna Fali
1032Johnson V IturbideCanada2026-07-22Feiner Bros UNQUALIFIED3Elwin Sharvill
1033Izzy L InouyeJapan2026-08-03Morlong Associates UNQUALIFIED93Asiya Javayant
1034Johnson J RoysterGermany2026-07-29Chanay, Jeffrey A Esq QUALIFIED65Asiya Javayant
1035Leja D WhobreyItaly2026-07-15Commercial Press NEW82Amy Elsner
1036Kadeem N RimSpain2026-07-17Feltz Printing Service RENEWAL83Elwin Sharvill
1037Greenwood W BologniaGermany2026-07-31Morlong Associates QUALIFIED26Asiya Javayant
1038Mayumi O FlosiRussia2026-07-14Morlong Associates NEGOTIATION80Ioni Bowcher
1039Silvio R GlickUnited Kingdom2026-08-06Chanay, Jeffrey A Esq RENEWAL41Asiya Javayant
1040Salvatore Z PerinUnited Kingdom2026-08-04Truhlar And Truhlar Attys NEW31Ivan Magalhaes
1041Salvatore S MacleadFrance2026-07-30Commercial Press UNQUALIFIED27Elwin Sharvill
1042Cody W WieserBrazil2026-07-30Feiner Bros UNQUALIFIED99Ioni Bowcher
1043Chavez A InouyeIndia2026-07-18Chapman, Ross E Esq NEGOTIATION39Anna Fali
1044Greenwood O AmigonGermany2026-07-20Commercial Press QUALIFIED90Anna Fali
1045Leja W AlbaresSpain2026-08-09Commercial Press NEW2Anna Fali
1046Faith B DarakjyAustralia2026-07-28Dorl, James J Esq NEGOTIATION84Asiya Javayant
1047Aika T ShinkoRussia2026-07-25Buckley Miller Wright PROPOSAL46Bernardo Dominic
1048Murillo M ShinkoArgentina2026-07-21Chapman, Ross E Esq PROPOSAL87Anna Fali
1049Jeanfrancois P MacleadBrazil2026-08-08Chemel, James L Cpa QUALIFIED54Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kadeem Q DilliardArgentinaXuxue Feng UNQUALIFIED
Aruna M KolmetzArgentinaStephen Shaw UNQUALIFIED
Izzy V SlusarskiItalyXuxue Feng RENEWAL
Isabel K MaletIndiaStephen Shaw UNQUALIFIED
Darci O RulapaughSpainBernardo Dominic RENEWAL
Kadeem F AlbaresIndiaAmy Elsner PROPOSAL
Nicolas N FigeroaRussiaAmy Elsner RENEWAL
Aika S NestleCanadaIvan Magalhaes NEW
Aditya D RulapaughRussiaAnna Fali NEGOTIATION
Alejandro L BriddickAustraliaIoni Bowcher NEGOTIATION
Ricardo L RimRussiaElwin Sharvill UNQUALIFIED
Kadeem O MaletIndiaXuxue Feng NEW
Jones P GlickJapanStephen Shaw NEW
Silvio G KuskoRussiaAmy Elsner PROPOSAL
Leja N RoysterAustraliaOnyama Limba UNQUALIFIED
Izzy D OstroskyBrazilIoni Bowcher RENEWAL
Smith Y GillianRussiaAmy Elsner RENEWAL
Ricardo J AlbaresIndiaXuxue Feng UNQUALIFIED
Murillo F RoysterGermanyOnyama Limba RENEWAL
Munro W BowleyJapanBernardo Dominic QUALIFIED
Juan D ButtRussiaIvan Magalhaes RENEWAL
Greenwood G MarrierCanadaAnna Fali QUALIFIED
Kaitlin N ShinkoUnited KingdomAsiya Javayant NEGOTIATION
Jennifer L OstroskySpainXuxue Feng PROPOSAL
Costa S GlickGermanyBernardo Dominic PROPOSAL
Darci Q DarakjyCanadaAsiya Javayant PROPOSAL
Mujtaba T WhobreyItalyAnna Fali QUALIFIED
Julie F GauchoSpainAmy Elsner NEGOTIATION
Leon H RutaCanadaOnyama Limba UNQUALIFIED
Izzy P CaudyRussiaBernardo Dominic NEGOTIATION
Jefferson Q RoysterJapanStephen Shaw RENEWAL
Stacey F WieserArgentinaBernardo Dominic NEW
Greenwood M GlickUnited KingdomXuxue Feng PROPOSAL
Leja C SlusarskiSpainIvan Magalhaes PROPOSAL
Adams X ButtArgentinaIoni Bowcher NEGOTIATION
James I NickaCanadaAmy Elsner NEW
Jennifer L AlbaresFranceAsiya Javayant UNQUALIFIED
Faith H WhobreyUnited KingdomIoni Bowcher PROPOSAL
Claire N TollnerSpainAnna Fali NEW
Mujtaba W InouyeUnited KingdomOnyama Limba UNQUALIFIED
Morrow U ButtGermanyAnna Fali NEW
Antonio R MaletFranceElwin Sharvill NEGOTIATION
Nicolas A GauchoRussiaIoni Bowcher NEGOTIATION
Leon T DilliardBrazilElwin Sharvill UNQUALIFIED
Aditya S CaudyFranceAmy Elsner NEGOTIATION
Chavez L PerinCanadaAnna Fali NEGOTIATION
Ivar R MaletGermanyIvan Magalhaes NEW
Johnson C CaldareraGermanyXuxue Feng NEGOTIATION
Johnson R WieserFranceAsiya Javayant NEW
Tony D AmigonFranceElwin Sharvill PROPOSAL
Frozen Columns
Name
Aika Z Morasca
Leon Y Slusarski
Maisha J Paprocki
Munro G Tollner
Leon R Iturbide
Sinclair K Rulapaugh
Isabel P Malet
Greenwood Q Malet
David W Amigon
Clifford J Vocelka
Smith Q Oldroyd
Clifford Y Schemmer
Mayumi B Gillian
Mayumi S Iturbide
Darci B Rim
Munro H Garufi
David G Garufi
Francesco O Flosi
Morrow F Dilliard
Aruna U Bowley
Clifford O Caudy
Jones L Bowley
Chavez F Sergi
Ashley T Bowley
Izzy T Butt
Mayumi W Campain
Mayumi R Gaucho
Ivar X Darakjy
Jennifer I Wieser
Juan P Campain
Costa W Venere
Aika P Darakjy
Faith F Caldarera
Jennifer B Royster
Clifford P Garufi
Salvatore S Vocelka
Clifford X Waycott
Francesco C Stockham
Juan A Glick
Rodrigues Q Shinko
Munro Q Garufi
Jefferson V Flosi
Ivar X Gaucho
Aruna N Rulapaugh
Deepesh T Butt
Adams S Rim
Darci L Morasca
Juan Q Royster
Nicolas Y Kusko
Aika S Foller
IdCountryDate
1000Brazil2026-08-12
1001Germany2026-08-06
1002Australia2026-07-21
1003Canada2026-07-23
1004Russia2026-07-19
1005Germany2026-07-26
1006Argentina2026-07-28
1007Australia2026-07-15
1008Japan2026-07-21
1009Australia2026-07-22
1010India2026-07-25
1011Australia2026-07-20
1012France2026-07-16
1013Brazil2026-08-09
1014Germany2026-08-01
1015France2026-08-01
1016Australia2026-08-12
1017Spain2026-08-11
1018Canada2026-07-23
1019Germany2026-07-20
1020United Kingdom2026-08-11
1021Japan2026-08-10
1022Canada2026-07-16
1023Germany2026-08-04
1024Argentina2026-08-11
1025Spain2026-07-29
1026Italy2026-07-18
1027Germany2026-07-27
1028Brazil2026-08-02
1029India2026-08-05
1030Brazil2026-08-01
1031Canada2026-08-10
1032Brazil2026-08-01
1033Spain2026-08-06
1034France2026-07-24
1035Canada2026-08-01
1036Spain2026-07-14
1037United Kingdom2026-08-09
1038India2026-07-25
1039Canada2026-07-28
1040Australia2026-07-27
1041France2026-07-31
1042Australia2026-07-28
1043India2026-07-18
1044France2026-07-21
1045Germany2026-07-22
1046Italy2026-08-03
1047Russia2026-07-26
1048Canada2026-07-19
1049Italy2026-08-12

On-Demand Data

NameIdCountryDate
Izzy H Dilliard1000Australia2026-07-28
Sinclair G Doe1001Australia2026-07-20
Izzy Z Oldroyd1002Brazil2026-08-02
Stacey X Nestle1003Germany2026-07-24
Morrow P Shinko1004Italy2026-08-09
Francesco O Ferencz1005United Kingdom2026-07-21
Maria X Bolognia1006United Kingdom2026-07-25
Rodrigues N Sergi1007India2026-07-24
Isabel H Ostrosky1008Germany2026-07-16
Claire H Tollner1009Spain2026-07-14
Maisha U Schemmer1010India2026-08-01
Misaki J Butt1011Germany2026-07-22
Sinclair U Gillian1012Japan2026-07-15
Kadeem K Foller1013Canada2026-08-11
Misaki H Inouye1014Canada2026-08-03
Arvin B Butt1015Spain2026-07-14
Johnson T Amigon1016Germany2026-07-29
Maisha G Royster1017France2026-08-12
Munro W Dilliard1018Canada2026-07-27
Murillo U Nestle1019Brazil2026-08-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois C CaldareraUnited KingdomElwin Sharvill NEW
Antonio S VocelkaSpainOnyama Limba NEW
Cody T FlosiBrazilXuxue Feng RENEWAL
Kaitlin T ShinkoJapanIoni Bowcher QUALIFIED
Darci B SaylorsIndiaElwin Sharvill QUALIFIED
Mayumi V WaycottArgentinaIvan Magalhaes NEGOTIATION
Clifford Y WaycottUnited KingdomStephen Shaw UNQUALIFIED
Jones K DoeItalyOnyama Limba RENEWAL
Johnson G VocelkaFranceBernardo Dominic QUALIFIED
Mayumi T NestleArgentinaAnna Fali QUALIFIED
Leon P DilliardRussiaAmy Elsner QUALIFIED
Mayumi F SergiFranceAmy Elsner UNQUALIFIED
Deepesh N FigeroaGermanyElwin Sharvill NEGOTIATION
Morrow X AmigonSpainOnyama Limba NEW
Mujtaba H AlbaresRussiaAnna Fali NEGOTIATION
Clifford M GillianIndiaAsiya Javayant NEW
Mujtaba W MaletGermanyStephen Shaw PROPOSAL
Juan D BowleyArgentinaBernardo Dominic QUALIFIED
Francesco C MacleadFranceElwin Sharvill QUALIFIED
David X WieserUnited KingdomElwin Sharvill QUALIFIED
Darci X GlickBrazilAsiya Javayant QUALIFIED
Morrow J SlusarskiGermanyAnna Fali NEGOTIATION
Faith U MaletBrazilBernardo Dominic NEW
David M MarrierItalyIoni Bowcher RENEWAL
Izzy B BologniaArgentinaElwin Sharvill PROPOSAL
Jennifer V IturbideIndiaStephen Shaw RENEWAL
Claire Y TollnerCanadaElwin Sharvill UNQUALIFIED
Misaki R DarakjyFranceIoni Bowcher UNQUALIFIED
Leja C MarrierRussiaBernardo Dominic NEW
Mayumi J GarufiSpainStephen Shaw NEW
Clifford M StensethIndiaAmy Elsner QUALIFIED
Nicolas W SlusarskiGermanyBernardo Dominic QUALIFIED
Tony W MaletArgentinaElwin Sharvill NEGOTIATION
David P VenereUnited KingdomElwin Sharvill RENEWAL
Sinclair W WhobreyRussiaAnna Fali QUALIFIED
Jeanfrancois B RoysterUnited KingdomAnna Fali QUALIFIED
Morrow V RutaBrazilBernardo Dominic NEW
Leja P RimFranceElwin Sharvill QUALIFIED
Adams C KuskoJapanOnyama Limba RENEWAL
Adams J SaylorsGermanyXuxue Feng 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>