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 M FerenczFranceElwin Sharvill RENEWAL
Tony D FerenczAustraliaAmy Elsner QUALIFIED
Octavia H NickaIndiaXuxue Feng PROPOSAL
Izzy L StensethJapanAmy Elsner UNQUALIFIED
Morrow X VocelkaRussiaIoni Bowcher NEGOTIATION
Darci B StockhamIndiaXuxue Feng QUALIFIED
Ivar P MaletArgentinaBernardo Dominic NEW
Arvin T VocelkaFranceAmy Elsner PROPOSAL
Rodrigues Z SergiSpainAsiya Javayant PROPOSAL
Octavia S NestleBrazilAsiya Javayant QUALIFIED
Jeanfrancois X GlickCanadaAsiya Javayant RENEWAL
Adams V RulapaughUnited KingdomAnna Fali PROPOSAL
Deepesh P DoeAustraliaOnyama Limba PROPOSAL
Misaki E SlusarskiBrazilStephen Shaw UNQUALIFIED
Costa X TollnerItalyAmy Elsner RENEWAL
Arvin D TollnerCanadaStephen Shaw NEGOTIATION
Silvio E SlusarskiFranceIvan Magalhaes NEGOTIATION
Morrow P StensethBrazilOnyama Limba NEGOTIATION
Tony W StockhamSpainBernardo Dominic NEGOTIATION
Faith N BologniaUnited KingdomAnna Fali QUALIFIED
Costa M RulapaughSpainOnyama Limba NEGOTIATION
Isabel Z MorascaRussiaElwin Sharvill NEW
Salvatore O MacleadUnited KingdomAsiya Javayant RENEWAL
Maria W StensethAustraliaXuxue Feng PROPOSAL
Munro Q NickaArgentinaAmy Elsner QUALIFIED
Ashley L SaylorsBrazilIvan Magalhaes NEW
Nicolas K MarrierIndiaStephen Shaw UNQUALIFIED
Darci E MaletJapanStephen Shaw UNQUALIFIED
Juan Z PerinJapanXuxue Feng UNQUALIFIED
Adams L KuskoBrazilElwin Sharvill RENEWAL
Antonio R NestleUnited KingdomIoni Bowcher RENEWAL
Francesco X BologniaAustraliaIvan Magalhaes UNQUALIFIED
Smith S GillianArgentinaAmy Elsner RENEWAL
Faith V BologniaCanadaIoni Bowcher NEW
Jeanfrancois R AlbaresIndiaBernardo Dominic NEGOTIATION
Stacey Y ButtArgentinaAsiya Javayant PROPOSAL
Wickens V RimGermanyIvan Magalhaes PROPOSAL
Emily H RoysterSpainElwin Sharvill NEW
Jones X PaprockiItalyAnna Fali NEW
Tony G MaletSpainAmy Elsner PROPOSAL
Ivar L GarufiAustraliaIvan Magalhaes QUALIFIED
Maisha H CampainGermanyElwin Sharvill PROPOSAL
Jennifer U RulapaughFranceXuxue Feng NEGOTIATION
Cody M FerenczFranceAsiya Javayant UNQUALIFIED
Clifford X VenereRussiaBernardo Dominic QUALIFIED
Arvin S KuskoAustraliaAnna Fali NEW
Nicolas Z StockhamCanadaIoni Bowcher QUALIFIED
Arvin N DarakjyFranceAmy Elsner RENEWAL
Ricardo S GarufiSpainIoni Bowcher PROPOSAL
Alejandro V DarakjyAustraliaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Ashley Q OstroskySpainElwin Sharvill NEW
Jefferson B ButtArgentinaAsiya Javayant QUALIFIED
Costa H GauchoRussiaStephen Shaw RENEWAL
Johnson D NestleRussiaXuxue Feng QUALIFIED
Maria U AlbaresSpainBernardo Dominic PROPOSAL
Ivar X RulapaughUnited KingdomBernardo Dominic PROPOSAL
Sinclair X NestleBrazilXuxue Feng NEW
Smith K RulapaughJapanStephen Shaw NEGOTIATION
Mayumi V NestleRussiaElwin Sharvill NEGOTIATION
Stacey L CampainCanadaElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy W DilliardArgentina2026-07-06Chemel, James L Cpa QUALIFIED95Amy Elsner
1001Leja N MaletCanada2026-07-20Chapman, Ross E Esq RENEWAL73Ivan Magalhaes
1002James R AlbaresAustralia2026-07-28Buckley Miller Wright NEW22Stephen Shaw
1003Juan Y BowleyFrance2026-07-19Buckley Miller Wright NEW54Anna Fali
1004Claire P GarufiCanada2026-07-28Chanay, Jeffrey A Esq RENEWAL4Xuxue Feng
1005Rodrigues K BriddickFrance2026-07-11Morlong Associates NEGOTIATION50Ioni Bowcher
1006Stacey W FerenczBrazil2026-07-22Truhlar And Truhlar Attys NEW75Elwin Sharvill
1007Octavia O SaylorsArgentina2026-07-08King, Christopher A Esq NEW35Ivan Magalhaes
1008Wickens K VenereItaly2026-07-11Buckley Miller Wright NEGOTIATION57Onyama Limba
1009Rodrigues H PoquetteBrazil2026-07-11Morlong Associates QUALIFIED85Bernardo Dominic
1010Ricardo O BriddickFrance2026-07-26Chemel, James L Cpa QUALIFIED70Stephen Shaw
1011Morrow I FollerItaly2026-07-11Feiner Bros RENEWAL33Amy Elsner
1012Mayumi H MarrierBrazil2026-07-13Morlong Associates UNQUALIFIED55Asiya Javayant
1013Greenwood N TollnerItaly2026-07-09Dorl, James J Esq UNQUALIFIED41Onyama Limba
1014Claire K VenereItaly2026-07-15Commercial Press PROPOSAL29Xuxue Feng
1015David S CaudyRussia2026-07-05Rangoni Of Florence QUALIFIED80Bernardo Dominic
1016Juan U CaldareraAustralia2026-07-07Morlong Associates UNQUALIFIED36Ivan Magalhaes
1017Julie O VenereFrance2026-07-03King, Christopher A Esq UNQUALIFIED94Anna Fali
1018Munro L AmigonSpain2026-07-16Feltz Printing Service RENEWAL41Onyama Limba
1019James V RulapaughRussia2026-07-18Benton, John B Jr NEGOTIATION63Asiya Javayant
1020Arvin I KolmetzUnited Kingdom2026-07-16Printing Dimensions PROPOSAL39Bernardo Dominic
1021Deepesh Y CampainBrazil2026-07-09Chanay, Jeffrey A Esq NEW67Asiya Javayant
1022Julie X IturbideIndia2026-07-17Commercial Press QUALIFIED82Onyama Limba
1023Ashley H NickaRussia2026-07-17Rangoni Of Florence UNQUALIFIED78Asiya Javayant
1024David I OstroskySpain2026-07-18Rangoni Of Florence NEW91Stephen Shaw
1025Salvatore D VocelkaAustralia2026-07-12Chanay, Jeffrey A Esq QUALIFIED35Anna Fali
1026Costa R IturbideArgentina2026-07-24Printing Dimensions QUALIFIED99Elwin Sharvill
1027Greenwood Y ShinkoJapan2026-07-09Feltz Printing Service UNQUALIFIED43Elwin Sharvill
1028Arvin D MacleadCanada2026-07-03Feiner Bros UNQUALIFIED6Elwin Sharvill
1029Juan F NickaCanada2026-07-19Dorl, James J Esq NEW4Asiya Javayant
1030Rodrigues Z TollnerGermany2026-07-03Benton, John B Jr QUALIFIED71Amy Elsner
1031Rodrigues J MarrierJapan2026-07-08Feiner Bros QUALIFIED29Bernardo Dominic
1032Emily T GlickIndia2026-07-27Morlong Associates NEW15Asiya Javayant
1033Jeanfrancois N AlbaresGermany2026-07-20Buckley Miller Wright UNQUALIFIED95Amy Elsner
1034Costa F TollnerCanada2026-07-05Feiner Bros NEGOTIATION57Amy Elsner
1035Aika D NickaJapan2026-07-28Chanay, Jeffrey A Esq PROPOSAL22Xuxue Feng
1036Smith P PoquetteGermany2026-07-25Chanay, Jeffrey A Esq NEW93Amy Elsner
1037Maria C ChuiGermany2026-07-05Feiner Bros PROPOSAL92Elwin Sharvill
1038Juan G FlosiCanada2026-07-02Feltz Printing Service NEGOTIATION25Bernardo Dominic
1039Aditya Z ChuiUnited Kingdom2026-07-12Chapman, Ross E Esq RENEWAL1Ioni Bowcher
1040Jefferson R DarakjySpain2026-07-05Rousseaux, Michael Esq QUALIFIED18Ivan Magalhaes
1041Isabel G ChuiFrance2026-07-20Rousseaux, Michael Esq NEW50Asiya Javayant
1042Octavia H DilliardSpain2026-07-06Printing Dimensions PROPOSAL67Amy Elsner
1043James R BowleyJapan2026-07-22Chapman, Ross E Esq RENEWAL91Xuxue Feng
1044Greenwood Y GlickIndia2026-07-28Chanay, Jeffrey A Esq QUALIFIED25Elwin Sharvill
1045Silvio X MarrierBrazil2026-07-19Rousseaux, Michael Esq QUALIFIED68Amy Elsner
1046Faith Y WaycottSpain2026-07-28Rousseaux, Michael Esq RENEWAL10Onyama Limba
1047Mayumi Q MarrierJapan2026-07-16Benton, John B Jr NEGOTIATION60Asiya Javayant
1048Juan C GlickRussia2026-07-02Rousseaux, Michael Esq RENEWAL97Amy Elsner
1049Arvin S MaletBrazil2026-07-31Rangoni Of Florence UNQUALIFIED38Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Aika W FlosiSpainStephen Shaw QUALIFIED
Isabel C DoeFranceAmy Elsner UNQUALIFIED
Kaitlin X ChuiCanadaOnyama Limba RENEWAL
Clifford N PerinCanadaAnna Fali UNQUALIFIED
Faith W MacleadIndiaOnyama Limba UNQUALIFIED
Munro Q NickaGermanyXuxue Feng QUALIFIED
Costa E PoquetteUnited KingdomAsiya Javayant NEGOTIATION
Faith X InouyeAustraliaIoni Bowcher QUALIFIED
Arvin I ChuiGermanyOnyama Limba RENEWAL
Alejandro F FlosiBrazilIoni Bowcher NEGOTIATION
Munro C RoysterGermanyXuxue Feng UNQUALIFIED
Mujtaba D GarufiJapanAmy Elsner PROPOSAL
Clifford P MarrierBrazilElwin Sharvill NEGOTIATION
Aika P MaletUnited KingdomElwin Sharvill UNQUALIFIED
Sinclair C MarrierJapanAsiya Javayant QUALIFIED
Rodrigues K RoysterUnited KingdomAsiya Javayant NEW
Julie Q GlickAustraliaOnyama Limba NEW
Sinclair A MorascaUnited KingdomAnna Fali NEGOTIATION
Aruna C SchemmerAustraliaOnyama Limba QUALIFIED
Aika Q VocelkaAustraliaXuxue Feng RENEWAL
Juan A RutaRussiaBernardo Dominic RENEWAL
Octavia C KolmetzItalyElwin Sharvill PROPOSAL
Ashley V MaletUnited KingdomAmy Elsner UNQUALIFIED
David J PaprockiIndiaIoni Bowcher NEGOTIATION
Rodrigues G WieserJapanBernardo Dominic NEGOTIATION
Emily X WieserAustraliaAsiya Javayant PROPOSAL
Morrow F StockhamFranceAsiya Javayant QUALIFIED
Aruna B BowleyUnited KingdomBernardo Dominic NEW
Nicolas K DarakjyIndiaBernardo Dominic QUALIFIED
Ivar Z AlbaresJapanAmy Elsner NEW
Aditya W OstroskyGermanyBernardo Dominic QUALIFIED
Mujtaba Q GauchoItalyAsiya Javayant PROPOSAL
Kaitlin S CaldareraArgentinaAnna Fali UNQUALIFIED
Jones Z GillianJapanXuxue Feng QUALIFIED
Wickens G MaletRussiaXuxue Feng QUALIFIED
Silvio J AlbaresAustraliaIoni Bowcher QUALIFIED
Aditya G InouyeJapanStephen Shaw NEW
Murillo A OldroydAustraliaAnna Fali UNQUALIFIED
Nicolas G MaletBrazilOnyama Limba QUALIFIED
Maisha R InouyeArgentinaOnyama Limba QUALIFIED
Adams R ShinkoRussiaStephen Shaw NEGOTIATION
Wickens E GillianIndiaIoni Bowcher NEGOTIATION
Claire A SergiRussiaAmy Elsner RENEWAL
Kaitlin J NestleCanadaBernardo Dominic UNQUALIFIED
Jones R MaletCanadaElwin Sharvill UNQUALIFIED
Aruna C FerenczUnited KingdomXuxue Feng UNQUALIFIED
Salvatore J MacleadArgentinaElwin Sharvill NEW
Ivar U VenereFranceOnyama Limba UNQUALIFIED
Antonio P RulapaughUnited KingdomIvan Magalhaes RENEWAL
Smith K WaycottAustraliaBernardo Dominic QUALIFIED
Frozen Columns
Name
Costa J Poquette
Sinclair H Maclead
Chavez G Slusarski
Aika P Flosi
Darci G Garufi
Arvin R Ostrosky
Faith T Doe
Mayumi U Perin
Morrow Q Inouye
Aika Z Caldarera
Leja S Glick
Murillo C Tollner
Costa B Venere
Kadeem S Whobrey
Chavez W Butt
Aditya X Inouye
Nicolas A Stockham
Ivar Z Whobrey
Isabel H Foller
Isabel T Malet
Ricardo K Tollner
Kaitlin A Flosi
Julie K Flosi
Rodrigues D Darakjy
Tony W Malet
Mayumi K Gillian
Cody H Dilliard
Ricardo R Paprocki
Nicolas Z Foller
Maria X Wieser
Stacey A Schemmer
Munro O Inouye
Nicolas W Glick
Maisha M Royster
Emily Q Briddick
Chavez B Bowley
Adams S Wieser
Salvatore M Nicka
Jeanfrancois Y Ferencz
Arvin I Schemmer
Arvin O Rulapaugh
Clifford X Campain
Ivar P Ostrosky
Julie X Nicka
Izzy T Oldroyd
Kaitlin V Waycott
Smith F Waycott
Adams I Perin
Leon F Bolognia
Clifford F Doe
IdCountryDate
1000Brazil2026-07-31
1001Japan2026-07-16
1002Germany2026-07-07
1003Australia2026-07-19
1004Japan2026-07-24
1005Germany2026-07-17
1006Argentina2026-07-28
1007Italy2026-07-03
1008Brazil2026-07-09
1009Argentina2026-07-15
1010Argentina2026-07-19
1011Japan2026-07-14
1012France2026-07-29
1013India2026-07-26
1014Japan2026-07-24
1015Australia2026-07-21
1016Japan2026-07-25
1017Spain2026-07-09
1018Germany2026-07-21
1019Argentina2026-07-14
1020Canada2026-07-23
1021India2026-07-27
1022Brazil2026-07-12
1023France2026-07-09
1024Russia2026-07-23
1025Australia2026-07-27
1026Brazil2026-07-18
1027India2026-07-04
1028Canada2026-07-02
1029Russia2026-07-23
1030Russia2026-07-11
1031Australia2026-07-09
1032Japan2026-07-21
1033Japan2026-07-23
1034Germany2026-07-04
1035Australia2026-07-12
1036Australia2026-07-25
1037United Kingdom2026-07-15
1038Spain2026-07-04
1039France2026-07-12
1040Russia2026-07-24
1041France2026-07-06
1042Russia2026-07-10
1043Argentina2026-07-27
1044Japan2026-07-13
1045Japan2026-07-11
1046Germany2026-07-23
1047Spain2026-07-09
1048Argentina2026-07-08
1049India2026-07-16

On-Demand Data

NameIdCountryDate
Jeanfrancois V Figeroa1000Argentina2026-07-11
Salvatore T Tollner1001Canada2026-07-04
Silvio Z Rulapaugh1002Italy2026-07-27
Aika N Campain1003Russia2026-07-18
Jennifer G Doe1004Brazil2026-07-06
Salvatore B Caudy1005Argentina2026-07-28
Chavez Z Malet1006Argentina2026-07-16
Clifford K Ferencz1007Russia2026-07-31
Ivar N Stenseth1008Japan2026-07-20
Misaki D Waycott1009France2026-07-07
Julie G Albares1010Japan2026-07-14
Kadeem M Marrier1011Canada2026-07-19
Deepesh Y Inouye1012India2026-07-21
Wickens B Bowley1013India2026-07-03
Greenwood N Malet1014Italy2026-07-09
Nicolas X Foller1015Spain2026-07-27
Wickens D Rim1016Argentina2026-07-02
Jones C Gillian1017Argentina2026-07-16
Clifford O Perin1018Spain2026-07-17
Francesco M Iturbide1019Australia2026-07-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin V RulapaughUnited KingdomIvan Magalhaes PROPOSAL
Silvio W DoeCanadaAsiya Javayant NEGOTIATION
Aditya Q KolmetzRussiaBernardo Dominic NEGOTIATION
Sinclair J AmigonGermanyIoni Bowcher UNQUALIFIED
Mujtaba J WaycottGermanyAmy Elsner PROPOSAL
Misaki L MaletIndiaStephen Shaw QUALIFIED
Arvin O GlickGermanyAmy Elsner QUALIFIED
Kadeem R PaprockiItalyAnna Fali NEGOTIATION
Izzy A SaylorsAustraliaIoni Bowcher UNQUALIFIED
Faith W FlosiSpainXuxue Feng QUALIFIED
Morrow Z MacleadUnited KingdomStephen Shaw UNQUALIFIED
Costa C SlusarskiCanadaIvan Magalhaes NEGOTIATION
Jennifer X NestleGermanyOnyama Limba QUALIFIED
Nicolas K IturbideGermanyAmy Elsner NEW
Deepesh B DarakjyIndiaBernardo Dominic UNQUALIFIED
Aika Y KolmetzGermanyAsiya Javayant NEGOTIATION
Mayumi L PerinAustraliaIvan Magalhaes NEW
Silvio D WhobreyArgentinaStephen Shaw NEGOTIATION
Clifford G FerenczSpainXuxue Feng RENEWAL
Cody W WaycottUnited KingdomAsiya Javayant NEW
Ivar Y TollnerCanadaBernardo Dominic QUALIFIED
Mujtaba V FollerRussiaStephen Shaw UNQUALIFIED
Claire H TollnerItalyIvan Magalhaes PROPOSAL
Leja M RimRussiaBernardo Dominic PROPOSAL
Jefferson H WhobreyBrazilAsiya Javayant NEGOTIATION
Kaitlin Z PaprockiBrazilIvan Magalhaes QUALIFIED
Ashley A GillianCanadaAnna Fali QUALIFIED
Aika X BowleyCanadaIoni Bowcher NEW
Juan G StockhamGermanyAmy Elsner UNQUALIFIED
Faith N BologniaArgentinaXuxue Feng UNQUALIFIED
Maisha W CampainRussiaAmy Elsner PROPOSAL
Jennifer G MaletIndiaBernardo Dominic NEGOTIATION
Aruna Q WieserRussiaAsiya Javayant NEW
Jefferson Z GarufiIndiaIvan Magalhaes PROPOSAL
Arvin I WieserJapanIvan Magalhaes NEW
Tony Z CampainGermanyStephen Shaw NEW
Jeanfrancois S WhobreyFranceIvan Magalhaes NEGOTIATION
Izzy Z CaudyGermanyAmy Elsner NEGOTIATION
Ricardo J WhobreyArgentinaXuxue Feng QUALIFIED
Jeanfrancois R ChuiGermanyIvan Magalhaes 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>