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
Aika X BowleyArgentinaXuxue Feng QUALIFIED
Claire K DoeAustraliaAmy Elsner NEGOTIATION
Jones O GarufiCanadaStephen Shaw NEW
Izzy E GillianArgentinaAnna Fali NEGOTIATION
Morrow B KuskoGermanyAsiya Javayant QUALIFIED
Tony B PerinGermanyBernardo Dominic UNQUALIFIED
Darci N GauchoItalyAmy Elsner NEGOTIATION
Claire Z BologniaItalyStephen Shaw NEW
Adams K MaletSpainXuxue Feng RENEWAL
Alejandro K MaletBrazilAmy Elsner NEGOTIATION
Maria U DilliardFranceAsiya Javayant RENEWAL
Smith N StockhamSpainAmy Elsner QUALIFIED
David Y ShinkoAustraliaAmy Elsner NEGOTIATION
Mayumi O CaldareraRussiaOnyama Limba QUALIFIED
Izzy S SergiFranceAsiya Javayant NEGOTIATION
Izzy J SaylorsItalyAsiya Javayant NEGOTIATION
Darci L MarrierGermanyStephen Shaw NEGOTIATION
Octavia Z NickaUnited KingdomElwin Sharvill UNQUALIFIED
Johnson K MarrierUnited KingdomBernardo Dominic PROPOSAL
Costa U DoeItalyStephen Shaw RENEWAL
Aruna F CampainJapanIoni Bowcher NEGOTIATION
Kaitlin U StensethFranceBernardo Dominic NEGOTIATION
Isabel P RoysterItalyAnna Fali PROPOSAL
Emily K VocelkaIndiaAnna Fali UNQUALIFIED
Stacey F AmigonGermanyAmy Elsner UNQUALIFIED
Smith S NestleAustraliaBernardo Dominic QUALIFIED
Stacey T MaletItalyAmy Elsner NEGOTIATION
Aruna M RulapaughJapanIoni Bowcher NEW
Leja D PaprockiArgentinaStephen Shaw NEW
Aditya R RoysterJapanXuxue Feng RENEWAL
Leon O PaprockiIndiaBernardo Dominic RENEWAL
Greenwood M GarufiItalyIvan Magalhaes PROPOSAL
Maria U FigeroaJapanOnyama Limba NEGOTIATION
Tony Z NestleGermanyIvan Magalhaes NEGOTIATION
Mujtaba U KuskoArgentinaOnyama Limba NEGOTIATION
Sinclair H CaldareraUnited KingdomAnna Fali NEW
Kadeem J InouyeCanadaAmy Elsner NEW
Alejandro I SergiAustraliaStephen Shaw UNQUALIFIED
Izzy J CampainJapanStephen Shaw QUALIFIED
Sinclair V RimGermanyElwin Sharvill QUALIFIED
Sinclair T GlickIndiaStephen Shaw NEGOTIATION
Cody N RulapaughBrazilXuxue Feng NEGOTIATION
Francesco N RoysterFranceXuxue Feng NEW
Aika U MacleadAustraliaXuxue Feng RENEWAL
Alejandro O StockhamCanadaAmy Elsner PROPOSAL
Tony T RulapaughIndiaAsiya Javayant NEGOTIATION
Octavia H AlbaresUnited KingdomIoni Bowcher NEW
Darci A CampainIndiaStephen Shaw QUALIFIED
Aruna R OstroskyItalyIvan Magalhaes RENEWAL
Mujtaba R SchemmerRussiaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Jefferson W RulapaughBrazilIoni Bowcher NEW
Leon X RutaUnited KingdomIoni Bowcher QUALIFIED
Leon Q WieserSpainIoni Bowcher PROPOSAL
Mayumi V KuskoGermanyStephen Shaw RENEWAL
Rodrigues R MarrierUnited KingdomAmy Elsner NEGOTIATION
Arvin Q PaprockiJapanAnna Fali QUALIFIED
Faith Y BowleyIndiaIoni Bowcher RENEWAL
Isabel Q InouyeIndiaIvan Magalhaes NEGOTIATION
Maria N GarufiItalyStephen Shaw RENEWAL
Kaitlin U GauchoSpainOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez D OldroydRussia2026-06-25Printing Dimensions PROPOSAL65Xuxue Feng
1001Julie V MorascaRussia2026-07-01King, Christopher A Esq RENEWAL64Anna Fali
1002Jefferson W FlosiItaly2026-06-24Feiner Bros NEW7Onyama Limba
1003Nicolas B RutaIndia2026-06-29Chanay, Jeffrey A Esq NEGOTIATION26Stephen Shaw
1004Adams T WieserJapan2026-06-17Benton, John B Jr NEW9Ivan Magalhaes
1005Octavia Z PoquetteCanada2026-06-23Rousseaux, Michael Esq NEGOTIATION14Asiya Javayant
1006Aditya A VenereUnited Kingdom2026-06-22Feltz Printing Service PROPOSAL78Ioni Bowcher
1007Mayumi J SaylorsUnited Kingdom2026-06-26Morlong Associates QUALIFIED22Ioni Bowcher
1008Wickens S SlusarskiRussia2026-06-07Buckley Miller Wright NEGOTIATION42Asiya Javayant
1009Stacey T GillianRussia2026-06-22Chapman, Ross E Esq RENEWAL11Ioni Bowcher
1010Isabel Q OldroydArgentina2026-06-18Printing Dimensions QUALIFIED99Onyama Limba
1011Stacey Q VocelkaSpain2026-06-19Truhlar And Truhlar Attys UNQUALIFIED15Onyama Limba
1012Murillo O VenereUnited Kingdom2026-06-23Morlong Associates QUALIFIED95Onyama Limba
1013Rodrigues O DarakjySpain2026-06-27Morlong Associates RENEWAL62Asiya Javayant
1014Costa O ChuiArgentina2026-06-26Commercial Press RENEWAL33Anna Fali
1015Aruna T PoquetteCanada2026-06-26Printing Dimensions NEW30Ioni Bowcher
1016Mayumi M PoquetteGermany2026-06-19Chanay, Jeffrey A Esq PROPOSAL70Ivan Magalhaes
1017Johnson J PerinGermany2026-06-21Morlong Associates UNQUALIFIED12Ivan Magalhaes
1018Faith L ButtBrazil2026-06-19Printing Dimensions NEW45Xuxue Feng
1019Leja X GillianIndia2026-06-07King, Christopher A Esq PROPOSAL77Amy Elsner
1020Morrow Y StockhamArgentina2026-06-10Buckley Miller Wright NEW0Elwin Sharvill
1021Nicolas B BriddickGermany2026-06-17Benton, John B Jr UNQUALIFIED68Amy Elsner
1022Jeanfrancois U AmigonRussia2026-06-26Commercial Press PROPOSAL40Anna Fali
1023Maisha Z RulapaughItaly2026-06-08Rangoni Of Florence NEW20Anna Fali
1024Octavia Q RimGermany2026-06-26Commercial Press NEW64Ivan Magalhaes
1025Darci S RutaCanada2026-07-05Rousseaux, Michael Esq RENEWAL99Anna Fali
1026Mujtaba A SchemmerSpain2026-06-30Feiner Bros NEW24Asiya Javayant
1027Jeanfrancois K GauchoAustralia2026-06-15Benton, John B Jr UNQUALIFIED51Asiya Javayant
1028Smith O BowleyBrazil2026-06-25Truhlar And Truhlar Attys PROPOSAL99Bernardo Dominic
1029Arvin L RoysterSpain2026-07-04Benton, John B Jr NEGOTIATION14Stephen Shaw
1030Jeanfrancois R DilliardFrance2026-06-06King, Christopher A Esq RENEWAL19Asiya Javayant
1031Aditya J IturbideRussia2026-06-16Truhlar And Truhlar Attys RENEWAL18Amy Elsner
1032Nicolas F GauchoJapan2026-06-26Truhlar And Truhlar Attys NEW44Xuxue Feng
1033Arvin W InouyeUnited Kingdom2026-06-24King, Christopher A Esq UNQUALIFIED16Anna Fali
1034Kaitlin G WhobreyGermany2026-06-23King, Christopher A Esq NEW27Amy Elsner
1035Salvatore A GarufiJapan2026-06-25Rangoni Of Florence NEW70Stephen Shaw
1036Emily O FollerRussia2026-06-08Feiner Bros UNQUALIFIED82Amy Elsner
1037Aditya W BologniaJapan2026-06-17Morlong Associates QUALIFIED76Ivan Magalhaes
1038Mujtaba Y SergiBrazil2026-07-03Chanay, Jeffrey A Esq RENEWAL2Asiya Javayant
1039Izzy V VenereArgentina2026-06-13Benton, John B Jr NEW33Elwin Sharvill
1040Jefferson X ChuiCanada2026-06-29Printing Dimensions RENEWAL96Amy Elsner
1041Morrow R GauchoGermany2026-07-04King, Christopher A Esq NEGOTIATION58Xuxue Feng
1042Nicolas T RulapaughJapan2026-06-06Feltz Printing Service NEGOTIATION77Elwin Sharvill
1043Misaki N BologniaBrazil2026-06-25Feiner Bros NEGOTIATION53Onyama Limba
1044Francesco F NickaFrance2026-06-20Rangoni Of Florence QUALIFIED4Onyama Limba
1045Octavia H WieserCanada2026-06-27Chemel, James L Cpa UNQUALIFIED9Elwin Sharvill
1046Arvin G BowleyFrance2026-06-25Buckley Miller Wright QUALIFIED82Ivan Magalhaes
1047Greenwood L AmigonCanada2026-07-05Commercial Press NEW91Anna Fali
1048Misaki V VenereSpain2026-06-23Printing Dimensions NEGOTIATION40Ioni Bowcher
1049Rodrigues L DilliardItaly2026-06-26Feltz Printing Service RENEWAL74Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Alejandro M RutaJapanXuxue Feng NEW
Mayumi O SergiArgentinaAnna Fali NEGOTIATION
Octavia W NickaUnited KingdomAnna Fali NEGOTIATION
Francesco N BowleyJapanBernardo Dominic PROPOSAL
Smith O VocelkaJapanAmy Elsner PROPOSAL
Murillo Q WhobreySpainIoni Bowcher NEGOTIATION
Isabel B MorascaArgentinaAmy Elsner NEW
Sinclair G VenereFranceAsiya Javayant UNQUALIFIED
Alejandro Z RulapaughIndiaIvan Magalhaes NEGOTIATION
Darci U WieserIndiaIoni Bowcher NEW
Morrow O FigeroaJapanAmy Elsner PROPOSAL
David G BologniaItalyIoni Bowcher RENEWAL
Leja I VenereGermanyIvan Magalhaes NEW
Silvio L SaylorsSpainBernardo Dominic NEGOTIATION
Morrow Z PoquetteJapanStephen Shaw RENEWAL
Johnson G GauchoSpainAmy Elsner NEGOTIATION
Deepesh E GlickBrazilIvan Magalhaes QUALIFIED
Jennifer Q GauchoCanadaIoni Bowcher QUALIFIED
Murillo U ButtArgentinaAnna Fali UNQUALIFIED
Kadeem U SchemmerJapanAsiya Javayant NEGOTIATION
Salvatore R OldroydFranceAnna Fali NEGOTIATION
Darci H SergiGermanyAmy Elsner QUALIFIED
Chavez P NickaCanadaAmy Elsner PROPOSAL
James F GillianAustraliaIoni Bowcher UNQUALIFIED
Tony Y SchemmerFranceElwin Sharvill NEGOTIATION
Jennifer U FlosiRussiaElwin Sharvill NEW
Jones E RoysterRussiaAsiya Javayant NEW
Juan A BowleyItalyOnyama Limba PROPOSAL
Aruna O BriddickIndiaAsiya Javayant NEW
Chavez S OldroydCanadaElwin Sharvill PROPOSAL
Mayumi G InouyeIndiaStephen Shaw RENEWAL
Darci Q FlosiArgentinaOnyama Limba NEGOTIATION
Antonio R IturbideIndiaAsiya Javayant QUALIFIED
Rodrigues Y MarrierBrazilBernardo Dominic NEGOTIATION
Adams G VocelkaFranceStephen Shaw RENEWAL
Arvin N AlbaresUnited KingdomBernardo Dominic RENEWAL
Misaki L BriddickJapanAnna Fali PROPOSAL
Juan V CaudyArgentinaIvan Magalhaes PROPOSAL
Antonio C VocelkaFranceIoni Bowcher NEGOTIATION
Kaitlin L TollnerBrazilElwin Sharvill UNQUALIFIED
Aruna L BriddickCanadaStephen Shaw NEW
Murillo S WaycottBrazilElwin Sharvill PROPOSAL
Leon P PaprockiGermanyStephen Shaw PROPOSAL
Leja D SlusarskiAustraliaAsiya Javayant NEW
Tony L VocelkaFranceAsiya Javayant UNQUALIFIED
Faith X CaudySpainElwin Sharvill UNQUALIFIED
Stacey M DoeGermanyAnna Fali UNQUALIFIED
Julie X StockhamCanadaElwin Sharvill QUALIFIED
David Y GlickAustraliaAmy Elsner NEW
Mayumi F BowleyFranceBernardo Dominic QUALIFIED
Frozen Columns
Name
Cody R Tollner
Cody P Ruta
Munro Z Paprocki
Cody H Malet
Kaitlin W Nestle
Antonio W Ostrosky
Alejandro D Glick
Smith U Garufi
Arvin Z Kolmetz
Clifford M Slusarski
Chavez O Nicka
James W Dilliard
Claire Y Maclead
Isabel P Slusarski
Jeanfrancois U Caldarera
Adams G Poquette
Maria C Rulapaugh
Salvatore E Foller
Nicolas O Waycott
Leon J Inouye
Jefferson R Gillian
Kadeem B Dilliard
Greenwood U Glick
Murillo G Figeroa
Francesco U Vocelka
Julie T Ferencz
Clifford Z Glick
Kadeem W Paprocki
Arvin M Whobrey
Smith K Perin
Alejandro F Nicka
Ivar U Wieser
Aditya C Maclead
Ivar Q Poquette
Octavia D Vocelka
Leja F Ostrosky
Izzy Y Dilliard
Maria Q Doe
Darci Z Venere
Aditya I Chui
Claire N Rulapaugh
Jones V Gillian
Arvin Q Whobrey
Jeanfrancois U Caudy
Murillo H Whobrey
Isabel X Wieser
Cody K Venere
Misaki K Royster
Jones V Amigon
Darci J Waycott
IdCountryDate
1000Spain2026-06-16
1001France2026-06-07
1002Russia2026-06-28
1003India2026-06-17
1004India2026-06-16
1005Germany2026-06-08
1006United Kingdom2026-06-12
1007France2026-07-03
1008Brazil2026-06-26
1009United Kingdom2026-06-22
1010United Kingdom2026-06-10
1011Italy2026-06-16
1012United Kingdom2026-06-15
1013Argentina2026-06-30
1014France2026-07-04
1015Italy2026-06-30
1016Spain2026-07-01
1017India2026-06-28
1018France2026-06-06
1019Spain2026-06-09
1020Japan2026-06-25
1021Canada2026-06-21
1022Russia2026-06-11
1023Argentina2026-06-19
1024Germany2026-06-10
1025Canada2026-06-08
1026France2026-06-12
1027Japan2026-06-09
1028Russia2026-06-27
1029Australia2026-06-26
1030Japan2026-06-28
1031Canada2026-06-27
1032Argentina2026-06-26
1033Germany2026-07-05
1034Australia2026-06-11
1035Argentina2026-06-26
1036Russia2026-06-20
1037Spain2026-06-27
1038Canada2026-07-01
1039Russia2026-06-30
1040Spain2026-06-25
1041Russia2026-07-04
1042Japan2026-06-23
1043Japan2026-06-10
1044Russia2026-06-15
1045Spain2026-06-21
1046France2026-06-10
1047Spain2026-06-15
1048Russia2026-06-27
1049Australia2026-06-12

On-Demand Data

NameIdCountryDate
Ricardo I Morasca1000Italy2026-06-29
Aika K Iturbide1001Brazil2026-06-11
Leon K Saylors1002India2026-06-07
Stacey E Poquette1003Argentina2026-06-13
Deepesh B Shinko1004Argentina2026-06-13
Faith C Schemmer1005Australia2026-06-26
Clifford K Royster1006France2026-06-08
Aika J Nestle1007Brazil2026-06-20
Johnson Z Ruta1008Australia2026-06-28
Jefferson K Rulapaugh1009Canada2026-07-05
Adams V Garufi1010France2026-06-22
Faith Y Wieser1011United Kingdom2026-06-08
Julie X Sergi1012Italy2026-06-30
Emily N Ruta1013Japan2026-06-12
Juan H Vocelka1014Canada2026-06-10
Octavia J Stockham1015France2026-07-04
David W Foller1016Australia2026-06-11
Aditya F Stockham1017Brazil2026-06-22
Stacey X Caldarera1018United Kingdom2026-06-26
Leja P Morasca1019Russia2026-06-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens O CampainAustraliaIoni Bowcher UNQUALIFIED
Wickens G SlusarskiBrazilAsiya Javayant PROPOSAL
Aika K IturbideGermanyStephen Shaw RENEWAL
Johnson N GillianSpainOnyama Limba QUALIFIED
Ivar L StockhamSpainOnyama Limba NEW
Faith Y SergiIndiaStephen Shaw PROPOSAL
Mujtaba P StockhamGermanyOnyama Limba NEGOTIATION
Rodrigues B BowleyUnited KingdomStephen Shaw QUALIFIED
Faith Q DoeBrazilIvan Magalhaes NEGOTIATION
Alejandro W IturbideSpainAsiya Javayant NEW
Jones U BriddickBrazilIoni Bowcher QUALIFIED
Wickens C NestleGermanyAsiya Javayant RENEWAL
Misaki K SchemmerFranceAnna Fali NEW
Misaki D WaycottUnited KingdomBernardo Dominic NEGOTIATION
Alejandro Y CaudyUnited KingdomBernardo Dominic RENEWAL
David I SlusarskiJapanIvan Magalhaes QUALIFIED
Deepesh I FlosiItalyAsiya Javayant QUALIFIED
Mujtaba O ButtSpainAmy Elsner UNQUALIFIED
James L AmigonRussiaBernardo Dominic RENEWAL
Antonio D WhobreyIndiaXuxue Feng NEW
Deepesh F GarufiAustraliaStephen Shaw NEW
Juan I CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Morrow P SaylorsItalyBernardo Dominic NEW
Rodrigues W MaletGermanyBernardo Dominic NEW
Stacey L CampainGermanyBernardo Dominic RENEWAL
Emily N DilliardCanadaAnna Fali PROPOSAL
Leon S AmigonRussiaAmy Elsner UNQUALIFIED
Morrow W MaletSpainIoni Bowcher PROPOSAL
Tony M SchemmerBrazilAnna Fali PROPOSAL
Arvin U VenereBrazilAnna Fali UNQUALIFIED
Costa O SchemmerCanadaBernardo Dominic PROPOSAL
Deepesh M DarakjyJapanXuxue Feng NEGOTIATION
Smith O SchemmerFranceIvan Magalhaes UNQUALIFIED
Octavia M ButtArgentinaStephen Shaw NEW
James P VenereJapanBernardo Dominic NEGOTIATION
Ricardo V KolmetzBrazilIvan Magalhaes UNQUALIFIED
Emily H VocelkaBrazilIoni Bowcher PROPOSAL
Johnson U GarufiRussiaIvan Magalhaes PROPOSAL
Munro U MarrierFranceStephen Shaw NEGOTIATION
Leja I IturbideSpainStephen Shaw 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>