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
Leja J FlosiBrazilOnyama Limba UNQUALIFIED
Izzy Q StensethSpainOnyama Limba UNQUALIFIED
Wickens P PerinRussiaBernardo Dominic RENEWAL
Murillo T ButtAustraliaStephen Shaw NEW
Arvin O NestleFranceElwin Sharvill RENEWAL
Aditya X RutaFranceStephen Shaw PROPOSAL
Maria R ButtRussiaIoni Bowcher QUALIFIED
Nicolas T IturbideFranceAnna Fali RENEWAL
Maria K KuskoRussiaAmy Elsner UNQUALIFIED
Jones D WieserCanadaAnna Fali RENEWAL
Sinclair Y GarufiSpainOnyama Limba NEGOTIATION
Cody X IturbideFranceIvan Magalhaes RENEWAL
Salvatore Q RoysterIndiaIvan Magalhaes PROPOSAL
Octavia F GlickRussiaBernardo Dominic PROPOSAL
Clifford X SchemmerFranceIoni Bowcher NEGOTIATION
Maisha I ChuiItalyAmy Elsner PROPOSAL
Wickens D AlbaresSpainOnyama Limba QUALIFIED
Clifford Q TollnerFranceBernardo Dominic NEGOTIATION
Leja U PerinUnited KingdomElwin Sharvill UNQUALIFIED
Munro E CaudyCanadaOnyama Limba UNQUALIFIED
Deepesh U StockhamSpainXuxue Feng UNQUALIFIED
Jones C CaudyArgentinaAmy Elsner NEW
Darci E GlickUnited KingdomBernardo Dominic QUALIFIED
Leon O FollerGermanyIoni Bowcher NEW
Leon G SergiItalyElwin Sharvill NEW
Johnson H VocelkaIndiaAnna Fali RENEWAL
Johnson G PaprockiRussiaAsiya Javayant QUALIFIED
Wickens B ShinkoSpainIvan Magalhaes QUALIFIED
Johnson D SlusarskiBrazilXuxue Feng QUALIFIED
Morrow J SchemmerGermanyStephen Shaw NEGOTIATION
Claire P ChuiRussiaAsiya Javayant QUALIFIED
Darci Y TollnerAustraliaXuxue Feng RENEWAL
Ashley N MacleadUnited KingdomAmy Elsner NEGOTIATION
Greenwood H GillianFranceAnna Fali NEGOTIATION
Arvin C FlosiJapanAmy Elsner QUALIFIED
David T FollerAustraliaIvan Magalhaes NEGOTIATION
Deepesh X SaylorsBrazilAnna Fali RENEWAL
Morrow V IturbideCanadaAnna Fali UNQUALIFIED
Leon M PaprockiAustraliaBernardo Dominic UNQUALIFIED
Greenwood C OldroydRussiaIvan Magalhaes UNQUALIFIED
Stacey J BriddickGermanyXuxue Feng RENEWAL
Jeanfrancois D BriddickBrazilStephen Shaw NEW
Emily Y BriddickBrazilStephen Shaw UNQUALIFIED
Cody A AmigonGermanyStephen Shaw RENEWAL
Antonio F ChuiGermanyStephen Shaw QUALIFIED
Juan R StockhamGermanyIoni Bowcher NEW
Chavez O StensethCanadaIvan Magalhaes QUALIFIED
Stacey K RulapaughRussiaAmy Elsner NEW
Sinclair L TollnerRussiaXuxue Feng NEW
Leon H GillianSpainAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro K DilliardIndiaStephen Shaw NEW
Arvin N KuskoItalyIvan Magalhaes RENEWAL
Salvatore B KuskoArgentinaAsiya Javayant NEW
Ricardo H ChuiSpainAsiya Javayant RENEWAL
David T KolmetzItalyIvan Magalhaes QUALIFIED
Mayumi Y SergiAustraliaAmy Elsner QUALIFIED
Johnson H KolmetzArgentinaAmy Elsner NEGOTIATION
Francesco O RutaJapanAsiya Javayant PROPOSAL
Leja D ButtItalyAmy Elsner NEW
Jeanfrancois F StockhamCanadaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens F SaylorsItaly2026-08-03Buckley Miller Wright NEW33Xuxue Feng
1001Jones Y RutaIndia2026-08-29Rangoni Of Florence NEGOTIATION9Anna Fali
1002Sinclair O IturbideBrazil2026-08-29Feltz Printing Service NEW75Ioni Bowcher
1003Adams F IturbideItaly2026-08-17Truhlar And Truhlar Attys UNQUALIFIED55Stephen Shaw
1004Darci S CaldareraJapan2026-08-27Commercial Press PROPOSAL39Bernardo Dominic
1005Jeanfrancois T DarakjyBrazil2026-08-30Benton, John B Jr NEGOTIATION78Stephen Shaw
1006Nicolas G MorascaBrazil2026-08-15Rangoni Of Florence UNQUALIFIED30Xuxue Feng
1007Maisha G KolmetzBrazil2026-08-03Rangoni Of Florence NEGOTIATION8Xuxue Feng
1008Izzy M MacleadJapan2026-08-17Commercial Press RENEWAL3Xuxue Feng
1009Mayumi Z BowleyItaly2026-08-08Commercial Press NEGOTIATION74Stephen Shaw
1010Misaki H CaudyRussia2026-08-07Chemel, James L Cpa PROPOSAL8Bernardo Dominic
1011Jennifer H OstroskyJapan2026-08-09Morlong Associates PROPOSAL6Stephen Shaw
1012Francesco Q MarrierIndia2026-08-23Feltz Printing Service PROPOSAL56Stephen Shaw
1013Greenwood S StockhamBrazil2026-08-29Commercial Press PROPOSAL44Elwin Sharvill
1014Kadeem G MarrierRussia2026-08-26Buckley Miller Wright PROPOSAL50Stephen Shaw
1015Julie N WhobreyGermany2026-08-07Feltz Printing Service RENEWAL53Anna Fali
1016Adams F NickaArgentina2026-08-16Feiner Bros UNQUALIFIED18Amy Elsner
1017Antonio V VenereFrance2026-08-15Dorl, James J Esq PROPOSAL68Ivan Magalhaes
1018Julie G IturbideGermany2026-08-30King, Christopher A Esq QUALIFIED67Asiya Javayant
1019Darci P RimFrance2026-08-31Printing Dimensions QUALIFIED70Xuxue Feng
1020Julie D PerinCanada2026-08-11Rangoni Of Florence PROPOSAL27Ioni Bowcher
1021Salvatore D MaletCanada2026-08-19Commercial Press RENEWAL14Xuxue Feng
1022Murillo P BriddickRussia2026-08-15Chemel, James L Cpa PROPOSAL26Onyama Limba
1023Aditya L SlusarskiItaly2026-08-10Chemel, James L Cpa QUALIFIED9Onyama Limba
1024Ashley S SchemmerUnited Kingdom2026-08-20King, Christopher A Esq PROPOSAL34Asiya Javayant
1025Kadeem P WieserSpain2026-08-19Buckley Miller Wright NEW68Bernardo Dominic
1026David I NestleAustralia2026-08-07Buckley Miller Wright NEW67Anna Fali
1027Emily X SlusarskiJapan2026-08-05Commercial Press PROPOSAL83Asiya Javayant
1028Claire L RulapaughBrazil2026-08-24Rangoni Of Florence RENEWAL0Amy Elsner
1029Ivar Y AlbaresIndia2026-08-11Chapman, Ross E Esq NEW40Ioni Bowcher
1030Mujtaba L VocelkaJapan2026-08-27Feiner Bros NEGOTIATION91Ioni Bowcher
1031David P TollnerCanada2026-08-21Feltz Printing Service RENEWAL36Ioni Bowcher
1032Ashley X OldroydRussia2026-08-20Benton, John B Jr NEW96Stephen Shaw
1033Mayumi R MorascaItaly2026-08-15Truhlar And Truhlar Attys PROPOSAL73Amy Elsner
1034Adams A OstroskyRussia2026-08-13Chanay, Jeffrey A Esq NEW96Ivan Magalhaes
1035Misaki G AmigonArgentina2026-08-10Feiner Bros PROPOSAL70Asiya Javayant
1036Silvio Y SchemmerJapan2026-08-22Feltz Printing Service QUALIFIED2Asiya Javayant
1037Arvin C DilliardItaly2026-08-03Chapman, Ross E Esq NEW13Xuxue Feng
1038Kaitlin K MarrierArgentina2026-08-08Buckley Miller Wright NEGOTIATION16Bernardo Dominic
1039Smith O RutaBrazil2026-08-18Dorl, James J Esq RENEWAL6Elwin Sharvill
1040Aruna F AmigonSpain2026-08-04Dorl, James J Esq UNQUALIFIED23Amy Elsner
1041Francesco F BologniaIndia2026-08-28Dorl, James J Esq UNQUALIFIED28Ioni Bowcher
1042Murillo W BowleyUnited Kingdom2026-08-06Feltz Printing Service PROPOSAL23Amy Elsner
1043Jefferson J MorascaCanada2026-08-26Commercial Press NEGOTIATION58Ivan Magalhaes
1044Tony G PerinFrance2026-08-07Chanay, Jeffrey A Esq PROPOSAL60Elwin Sharvill
1045Nicolas O SchemmerAustralia2026-08-19Chemel, James L Cpa NEW66Xuxue Feng
1046Faith U WieserArgentina2026-08-21Commercial Press RENEWAL19Ivan Magalhaes
1047Nicolas U SchemmerUnited Kingdom2026-08-15Commercial Press UNQUALIFIED68Amy Elsner
1048Leja D KuskoRussia2026-08-27Feltz Printing Service QUALIFIED50Stephen Shaw
1049Arvin V FlosiGermany2026-08-31Printing Dimensions NEGOTIATION50Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Julie N CampainRussiaBernardo Dominic UNQUALIFIED
Cody A VenereUnited KingdomStephen Shaw PROPOSAL
Izzy B FollerArgentinaBernardo Dominic NEGOTIATION
Izzy R OstroskyBrazilAnna Fali UNQUALIFIED
Misaki H SchemmerItalyOnyama Limba NEW
Leja X PoquetteIndiaAnna Fali PROPOSAL
Arvin V WaycottFranceStephen Shaw UNQUALIFIED
Jefferson Z MacleadGermanyXuxue Feng PROPOSAL
Aruna D DarakjyItalyXuxue Feng RENEWAL
Chavez E GarufiJapanIvan Magalhaes UNQUALIFIED
Claire N KuskoUnited KingdomIvan Magalhaes UNQUALIFIED
Emily R PoquetteJapanAnna Fali QUALIFIED
Ivar N DoeBrazilElwin Sharvill UNQUALIFIED
Aditya L WaycottCanadaStephen Shaw UNQUALIFIED
Faith S WaycottArgentinaIvan Magalhaes NEGOTIATION
Clifford F DoeArgentinaStephen Shaw NEW
Morrow B ButtJapanIvan Magalhaes NEW
Misaki G NestleFranceBernardo Dominic RENEWAL
Izzy A TollnerArgentinaXuxue Feng PROPOSAL
Cody E ShinkoIndiaIvan Magalhaes RENEWAL
Morrow K AlbaresIndiaIvan Magalhaes NEGOTIATION
Francesco R DarakjyCanadaOnyama Limba NEW
Rodrigues H RulapaughGermanyBernardo Dominic QUALIFIED
Murillo D NestleFranceElwin Sharvill PROPOSAL
Antonio G CaldareraBrazilIoni Bowcher NEW
Silvio I BowleyRussiaElwin Sharvill QUALIFIED
Tony X FlosiUnited KingdomBernardo Dominic NEW
Darci R OstroskyUnited KingdomOnyama Limba RENEWAL
Aditya L VocelkaCanadaElwin Sharvill UNQUALIFIED
Leja N ButtBrazilXuxue Feng NEW
Clifford N SchemmerCanadaStephen Shaw PROPOSAL
Clifford T FerenczIndiaBernardo Dominic NEGOTIATION
Arvin X ButtSpainXuxue Feng UNQUALIFIED
Octavia N SlusarskiGermanyOnyama Limba NEW
Claire X SchemmerAustraliaElwin Sharvill PROPOSAL
Murillo C WaycottGermanyAnna Fali QUALIFIED
Aruna Q DoeItalyXuxue Feng NEGOTIATION
Jones T MorascaFranceIoni Bowcher UNQUALIFIED
Salvatore F DarakjyItalyAsiya Javayant NEGOTIATION
Murillo L BologniaUnited KingdomIvan Magalhaes RENEWAL
Antonio N RoysterAustraliaStephen Shaw NEW
Jefferson Y WhobreyJapanIvan Magalhaes PROPOSAL
Faith G FlosiGermanyAmy Elsner QUALIFIED
Izzy Q GillianJapanAmy Elsner UNQUALIFIED
Leon Q FerenczAustraliaStephen Shaw NEW
Darci S MarrierFranceOnyama Limba NEGOTIATION
David A DarakjySpainAsiya Javayant NEW
Aruna A SchemmerFranceIoni Bowcher NEW
Kadeem Z GillianCanadaOnyama Limba PROPOSAL
Arvin A NickaIndiaAnna Fali QUALIFIED
Frozen Columns
Name
Deepesh B Iturbide
Murillo L Figeroa
Ricardo G Dilliard
Juan C Bolognia
Salvatore U Rim
Johnson I Gaucho
Francesco I Maclead
Darci I Inouye
Leja U Nicka
Kadeem Z Garufi
Salvatore G Malet
Wickens T Malet
Chavez W Stenseth
James C Poquette
Mujtaba O Whobrey
Clifford F Marrier
Izzy F Bolognia
Jefferson I Malet
Salvatore R Paprocki
Stacey K Kusko
David K Glick
Rodrigues M Kolmetz
Francesco J Maclead
Julie K Iturbide
Darci X Paprocki
Nicolas M Glick
Smith D Nestle
Nicolas I Oldroyd
Alejandro O Chui
Ashley L Venere
Cody A Darakjy
Aditya U Saylors
Faith Z Kolmetz
Costa G Maclead
Silvio W Nestle
Adams L Royster
Chavez G Darakjy
Salvatore C Figeroa
Murillo V Ferencz
Chavez S Rulapaugh
Darci O Morasca
Salvatore S Vocelka
Jefferson Q Perin
Johnson M Butt
David S Doe
Darci W Bolognia
Jones B Wieser
Wickens Z Dilliard
Stacey P Slusarski
Deepesh F Kolmetz
IdCountryDate
1000Russia2026-09-01
1001Argentina2026-08-05
1002Germany2026-08-13
1003Germany2026-08-19
1004Japan2026-08-24
1005Italy2026-08-15
1006Brazil2026-08-14
1007France2026-08-26
1008France2026-08-09
1009Russia2026-08-31
1010India2026-08-21
1011France2026-08-11
1012Australia2026-08-23
1013Spain2026-08-08
1014Italy2026-08-11
1015Spain2026-08-13
1016Russia2026-08-13
1017Canada2026-08-21
1018Australia2026-08-06
1019France2026-08-29
1020Australia2026-08-08
1021Germany2026-08-10
1022India2026-08-21
1023India2026-08-10
1024Russia2026-08-18
1025Italy2026-08-16
1026Brazil2026-08-19
1027Brazil2026-08-04
1028India2026-08-25
1029Italy2026-08-09
1030Australia2026-08-07
1031Italy2026-08-07
1032Australia2026-08-29
1033Australia2026-08-09
1034Australia2026-08-06
1035Japan2026-08-31
1036Australia2026-08-12
1037Brazil2026-08-23
1038Italy2026-08-18
1039India2026-08-19
1040Germany2026-08-11
1041Japan2026-08-11
1042Japan2026-08-19
1043Argentina2026-08-21
1044India2026-08-03
1045India2026-08-27
1046Canada2026-08-04
1047Russia2026-08-21
1048Germany2026-08-18
1049Russia2026-08-18

On-Demand Data

NameIdCountryDate
Kaitlin J Ferencz1000Argentina2026-08-18
Aruna C Waycott1001Australia2026-08-19
Sinclair J Caldarera1002Russia2026-08-17
Isabel F Doe1003France2026-08-23
Mujtaba D Rulapaugh1004United Kingdom2026-08-19
Munro F Poquette1005Argentina2026-08-18
Smith U Paprocki1006United Kingdom2026-08-23
Smith C Foller1007France2026-08-30
Jennifer X Shinko1008India2026-08-18
Leon T Bolognia1009Russia2026-08-16
Kadeem M Iturbide1010Brazil2026-08-27
Wickens M Foller1011Germany2026-08-04
Aika X Poquette1012United Kingdom2026-08-16
Ashley I Stockham1013United Kingdom2026-08-03
Arvin Y Amigon1014Italy2026-09-01
Jefferson K Rulapaugh1015Japan2026-08-11
Leja Z Gaucho1016Russia2026-08-20
Smith R Rulapaugh1017Spain2026-08-23
Ivar W Tollner1018Russia2026-08-08
Isabel H Paprocki1019Canada2026-08-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio K StockhamFranceElwin Sharvill PROPOSAL
James V GillianCanadaElwin Sharvill QUALIFIED
James N PaprockiAustraliaElwin Sharvill RENEWAL
Juan R SchemmerJapanAmy Elsner NEGOTIATION
Antonio V DoeJapanElwin Sharvill PROPOSAL
Kadeem R AmigonCanadaXuxue Feng NEW
Johnson A BologniaAustraliaIvan Magalhaes QUALIFIED
Izzy F PerinItalyAnna Fali QUALIFIED
Leon X DoeGermanyAnna Fali NEGOTIATION
Izzy T RulapaughAustraliaIoni Bowcher PROPOSAL
Francesco T PoquetteIndiaElwin Sharvill QUALIFIED
Sinclair Q StensethItalyAmy Elsner QUALIFIED
Clifford X NestleFranceBernardo Dominic PROPOSAL
Salvatore U VocelkaCanadaStephen Shaw PROPOSAL
David M BowleyJapanStephen Shaw NEGOTIATION
Aruna K PaprockiJapanStephen Shaw RENEWAL
Kaitlin A GarufiItalyXuxue Feng NEGOTIATION
Mayumi G GauchoJapanIvan Magalhaes NEGOTIATION
Juan J RulapaughRussiaStephen Shaw PROPOSAL
Darci D CaudyRussiaBernardo Dominic UNQUALIFIED
Nicolas L NickaArgentinaElwin Sharvill NEW
Chavez H InouyeItalyBernardo Dominic NEGOTIATION
Munro H MaletSpainIoni Bowcher NEW
Smith J WhobreyUnited KingdomAnna Fali PROPOSAL
Faith V CaldareraFranceAnna Fali NEW
Arvin F FigeroaFranceElwin Sharvill RENEWAL
Rodrigues R BologniaAustraliaElwin Sharvill UNQUALIFIED
Nicolas X MaletSpainAnna Fali QUALIFIED
Munro N GarufiIndiaElwin Sharvill NEW
Rodrigues V GlickItalyIoni Bowcher NEW
Johnson D SergiIndiaIvan Magalhaes NEW
Sinclair S GlickSpainIvan Magalhaes RENEWAL
Julie V PaprockiFranceElwin Sharvill PROPOSAL
Maria K WieserIndiaAmy Elsner NEW
Isabel E OldroydItalyAnna Fali QUALIFIED
Jennifer P StockhamAustraliaAmy Elsner NEGOTIATION
Kadeem F InouyeArgentinaElwin Sharvill PROPOSAL
Sinclair O StockhamCanadaAsiya Javayant NEGOTIATION
James M FlosiIndiaOnyama Limba RENEWAL
Aika I FlosiFranceXuxue Feng 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>