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
Juan R ButtIndiaAsiya Javayant NEW
Maisha J FlosiFranceOnyama Limba NEGOTIATION
Aika O TollnerGermanyBernardo Dominic PROPOSAL
Jones W CampainItalyElwin Sharvill NEW
Ashley R NickaJapanElwin Sharvill UNQUALIFIED
Rodrigues S MarrierAustraliaBernardo Dominic NEW
Mujtaba D SchemmerGermanyElwin Sharvill NEGOTIATION
Jefferson S RulapaughUnited KingdomAsiya Javayant QUALIFIED
Isabel G FerenczBrazilIvan Magalhaes RENEWAL
Leon F SergiBrazilOnyama Limba RENEWAL
Jeanfrancois B WaycottIndiaAsiya Javayant UNQUALIFIED
Misaki F WieserCanadaStephen Shaw PROPOSAL
Clifford I FigeroaRussiaXuxue Feng PROPOSAL
Rodrigues M SaylorsItalyIvan Magalhaes NEGOTIATION
Johnson V OldroydFranceIoni Bowcher QUALIFIED
Aika V DoeCanadaStephen Shaw RENEWAL
Faith W FigeroaArgentinaAsiya Javayant PROPOSAL
Emily Q VenereBrazilAsiya Javayant NEGOTIATION
Kaitlin J DarakjyJapanIoni Bowcher UNQUALIFIED
Arvin W BologniaJapanAmy Elsner QUALIFIED
Sinclair A ButtSpainIoni Bowcher UNQUALIFIED
Sinclair F NickaFranceBernardo Dominic UNQUALIFIED
Aruna N ShinkoJapanIoni Bowcher PROPOSAL
Juan B RutaGermanyAnna Fali QUALIFIED
Munro X StensethRussiaStephen Shaw NEGOTIATION
Jennifer F BowleyIndiaStephen Shaw PROPOSAL
Deepesh K CaudyFranceElwin Sharvill NEW
Jones H VocelkaArgentinaIvan Magalhaes UNQUALIFIED
Chavez T KolmetzRussiaXuxue Feng QUALIFIED
Octavia L FigeroaSpainOnyama Limba QUALIFIED
Octavia V PoquetteUnited KingdomXuxue Feng NEGOTIATION
Johnson H NestleSpainAmy Elsner QUALIFIED
Adams P ButtRussiaAnna Fali PROPOSAL
Octavia U GillianItalyElwin Sharvill QUALIFIED
Jefferson N VocelkaUnited KingdomIoni Bowcher QUALIFIED
Morrow S OstroskyItalyAmy Elsner PROPOSAL
Johnson B RoysterGermanyAsiya Javayant NEGOTIATION
Aruna R SergiGermanyBernardo Dominic UNQUALIFIED
Clifford E FollerIndiaAnna Fali QUALIFIED
Morrow B PaprockiCanadaStephen Shaw RENEWAL
Arvin H CaldareraIndiaBernardo Dominic NEGOTIATION
Julie Z AlbaresJapanIoni Bowcher PROPOSAL
Aditya P PoquetteAustraliaXuxue Feng PROPOSAL
Murillo I BowleyArgentinaXuxue Feng NEGOTIATION
Adams R VenereArgentinaXuxue Feng UNQUALIFIED
Adams O NestleCanadaAnna Fali PROPOSAL
Mayumi E WhobreyIndiaIoni Bowcher UNQUALIFIED
Smith B WhobreyAustraliaIoni Bowcher RENEWAL
Costa P IturbideFranceAmy Elsner UNQUALIFIED
Costa O KolmetzSpainXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues N MaletRussiaXuxue Feng UNQUALIFIED
Clifford D VocelkaUnited KingdomAsiya Javayant PROPOSAL
Maria T PaprockiIndiaOnyama Limba UNQUALIFIED
Rodrigues F GauchoRussiaOnyama Limba QUALIFIED
Salvatore R DarakjyJapanAsiya Javayant PROPOSAL
Jefferson R SchemmerUnited KingdomAsiya Javayant RENEWAL
Jefferson A DarakjyAustraliaBernardo Dominic RENEWAL
Murillo K GillianCanadaIoni Bowcher RENEWAL
Johnson H DoeItalyBernardo Dominic NEW
Smith A FollerUnited KingdomBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony Y MarrierItaly2026-07-29Feiner Bros PROPOSAL75Amy Elsner
1001Rodrigues E KolmetzGermany2026-08-16Truhlar And Truhlar Attys QUALIFIED31Ivan Magalhaes
1002Clifford C TollnerJapan2026-08-05Benton, John B Jr PROPOSAL82Ioni Bowcher
1003Costa I MorascaRussia2026-07-30Benton, John B Jr PROPOSAL53Xuxue Feng
1004Clifford L RoysterRussia2026-08-04Buckley Miller Wright QUALIFIED78Asiya Javayant
1005Murillo B MorascaFrance2026-07-27Chemel, James L Cpa QUALIFIED58Elwin Sharvill
1006Johnson K ShinkoArgentina2026-07-28Printing Dimensions NEGOTIATION62Ivan Magalhaes
1007Adams V InouyeBrazil2026-08-11Feiner Bros UNQUALIFIED21Ioni Bowcher
1008Ricardo E ChuiSpain2026-08-16Dorl, James J Esq RENEWAL81Amy Elsner
1009Maria U AlbaresUnited Kingdom2026-08-07Benton, John B Jr UNQUALIFIED75Onyama Limba
1010Tony P AmigonFrance2026-08-13Rangoni Of Florence QUALIFIED61Elwin Sharvill
1011Rodrigues I KolmetzItaly2026-08-02Commercial Press UNQUALIFIED18Ioni Bowcher
1012Salvatore C DilliardItaly2026-08-06Benton, John B Jr NEGOTIATION80Elwin Sharvill
1013Clifford B InouyeItaly2026-07-19Chapman, Ross E Esq PROPOSAL55Onyama Limba
1014Jeanfrancois D RutaRussia2026-08-01Dorl, James J Esq NEGOTIATION1Ivan Magalhaes
1015Alejandro E KuskoFrance2026-08-17King, Christopher A Esq RENEWAL74Stephen Shaw
1016Claire G CaldareraItaly2026-07-28Morlong Associates RENEWAL51Elwin Sharvill
1017Misaki P RulapaughSpain2026-07-23Dorl, James J Esq UNQUALIFIED3Stephen Shaw
1018Maria S BologniaRussia2026-07-29Printing Dimensions PROPOSAL66Ioni Bowcher
1019Emily F FigeroaUnited Kingdom2026-08-01Rangoni Of Florence RENEWAL60Xuxue Feng
1020James D ChuiSpain2026-08-14Chapman, Ross E Esq PROPOSAL65Anna Fali
1021Aditya R WieserCanada2026-08-09Rangoni Of Florence NEGOTIATION23Asiya Javayant
1022Smith F VenereGermany2026-07-30Printing Dimensions RENEWAL71Stephen Shaw
1023Adams Y InouyeCanada2026-07-22Buckley Miller Wright NEGOTIATION72Ivan Magalhaes
1024Johnson T CampainUnited Kingdom2026-07-31Rousseaux, Michael Esq NEW32Bernardo Dominic
1025Julie A DilliardUnited Kingdom2026-08-04Buckley Miller Wright QUALIFIED14Onyama Limba
1026Antonio H WhobreyRussia2026-08-07Chemel, James L Cpa RENEWAL57Asiya Javayant
1027Kadeem Z NestleAustralia2026-08-10Rousseaux, Michael Esq NEGOTIATION60Onyama Limba
1028Claire B FollerAustralia2026-08-14Commercial Press NEW34Asiya Javayant
1029Kaitlin Z CampainItaly2026-08-08Chanay, Jeffrey A Esq UNQUALIFIED20Ivan Magalhaes
1030Aditya B MarrierAustralia2026-08-07Chapman, Ross E Esq UNQUALIFIED6Amy Elsner
1031Octavia M CaudyRussia2026-08-10Chapman, Ross E Esq UNQUALIFIED54Onyama Limba
1032Clifford N SlusarskiIndia2026-07-24Commercial Press UNQUALIFIED90Ivan Magalhaes
1033Deepesh G StockhamItaly2026-07-30Rousseaux, Michael Esq NEW56Ivan Magalhaes
1034Aditya E NestleJapan2026-07-29Morlong Associates NEGOTIATION80Anna Fali
1035Chavez G RulapaughSpain2026-07-27King, Christopher A Esq QUALIFIED11Elwin Sharvill
1036Misaki B BologniaJapan2026-07-26Rousseaux, Michael Esq NEW17Ivan Magalhaes
1037Claire Y MacleadSpain2026-08-10Morlong Associates NEGOTIATION64Elwin Sharvill
1038Nicolas P CaudyUnited Kingdom2026-07-31Feiner Bros NEW8Asiya Javayant
1039Mujtaba R SaylorsIndia2026-08-07Rousseaux, Michael Esq QUALIFIED9Anna Fali
1040Mujtaba E RulapaughCanada2026-07-19Truhlar And Truhlar Attys NEGOTIATION0Stephen Shaw
1041Jefferson Z BologniaArgentina2026-08-10Morlong Associates UNQUALIFIED58Stephen Shaw
1042Tony W SergiGermany2026-08-14Chanay, Jeffrey A Esq QUALIFIED61Elwin Sharvill
1043Ivar Z PaprockiFrance2026-08-07Dorl, James J Esq NEGOTIATION74Xuxue Feng
1044Jennifer O RulapaughUnited Kingdom2026-07-20Feiner Bros NEGOTIATION8Elwin Sharvill
1045James D FigeroaRussia2026-08-03Chapman, Ross E Esq NEW61Elwin Sharvill
1046Johnson J TollnerCanada2026-07-23Chanay, Jeffrey A Esq NEW13Elwin Sharvill
1047Faith X GlickCanada2026-08-13Feiner Bros NEGOTIATION70Ioni Bowcher
1048Izzy A CaudyJapan2026-08-13Rangoni Of Florence NEW7Elwin Sharvill
1049Silvio Q BriddickUnited Kingdom2026-08-05Chemel, James L Cpa NEGOTIATION83Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Leja D FlosiItalyAnna Fali NEGOTIATION
Leon M MorascaIndiaBernardo Dominic RENEWAL
Kaitlin S BowleyItalyXuxue Feng NEGOTIATION
Izzy G NestleBrazilOnyama Limba QUALIFIED
Jefferson P ShinkoItalyIoni Bowcher NEW
James L GlickItalyAnna Fali PROPOSAL
Costa N WaycottGermanyOnyama Limba UNQUALIFIED
Aruna J StensethItalyXuxue Feng RENEWAL
Alejandro D MorascaFranceAmy Elsner UNQUALIFIED
Cody E KuskoFranceStephen Shaw NEGOTIATION
Morrow L DoeIndiaAnna Fali QUALIFIED
Maisha K MaletBrazilAsiya Javayant UNQUALIFIED
Ricardo N GauchoBrazilAmy Elsner PROPOSAL
Misaki L PoquetteFranceOnyama Limba QUALIFIED
Aruna C WieserJapanAsiya Javayant QUALIFIED
Stacey V VocelkaItalyOnyama Limba RENEWAL
Mujtaba D DilliardGermanyAsiya Javayant QUALIFIED
Octavia M WaycottGermanyIvan Magalhaes QUALIFIED
Tony N CaldareraAustraliaIvan Magalhaes QUALIFIED
Salvatore Q PerinGermanyAnna Fali NEW
Nicolas T MaletArgentinaElwin Sharvill NEGOTIATION
Mayumi J RulapaughRussiaAsiya Javayant NEGOTIATION
Silvio P PoquetteRussiaXuxue Feng NEW
Salvatore X CaudyRussiaIvan Magalhaes UNQUALIFIED
Francesco F StensethUnited KingdomElwin Sharvill RENEWAL
Maria I NestleRussiaIvan Magalhaes QUALIFIED
Sinclair D FerenczGermanyStephen Shaw NEW
Maisha J FollerAustraliaAmy Elsner UNQUALIFIED
Juan D BowleyAustraliaStephen Shaw NEGOTIATION
Isabel Z SaylorsIndiaAmy Elsner NEW
Aruna P SaylorsCanadaAmy Elsner NEGOTIATION
Kaitlin O ChuiCanadaBernardo Dominic RENEWAL
Stacey T FigeroaAustraliaIoni Bowcher RENEWAL
Faith K PaprockiUnited KingdomStephen Shaw RENEWAL
Kaitlin Z PaprockiUnited KingdomBernardo Dominic NEGOTIATION
Darci G MacleadGermanyStephen Shaw UNQUALIFIED
Salvatore O SlusarskiArgentinaIvan Magalhaes NEGOTIATION
Adams O SchemmerAustraliaOnyama Limba QUALIFIED
Costa C OldroydRussiaElwin Sharvill QUALIFIED
Isabel R RimBrazilXuxue Feng UNQUALIFIED
Johnson U RutaRussiaAsiya Javayant UNQUALIFIED
Aditya T MorascaJapanIoni Bowcher PROPOSAL
Adams E GlickCanadaAnna Fali NEW
Izzy O ButtFranceIoni Bowcher RENEWAL
Mayumi S NickaFranceElwin Sharvill NEGOTIATION
Salvatore E WaycottIndiaIoni Bowcher NEW
Julie V OstroskyFranceXuxue Feng PROPOSAL
Chavez E CampainAustraliaAnna Fali RENEWAL
Aditya P RutaAustraliaAnna Fali UNQUALIFIED
Octavia D MorascaBrazilAmy Elsner NEGOTIATION
Frozen Columns
Name
Morrow T Kolmetz
Murillo V Rulapaugh
Arvin K Ruta
Aruna X Gillian
Aika T Marrier
Tony A Malet
Kaitlin V Glick
Misaki N Paprocki
Arvin C Rulapaugh
Silvio V Royster
Maria D Iturbide
Stacey B Saylors
James C Ruta
Juan X Caldarera
Sinclair Y Schemmer
Kadeem O Briddick
Arvin E Butt
Deepesh E Dilliard
Sinclair T Perin
Kaitlin T Royster
Deepesh M Butt
Octavia Y Perin
Kaitlin A Caldarera
Stacey S Maclead
Maria X Nicka
Kadeem U Oldroyd
Munro Z Tollner
Claire P Morasca
Sinclair I Venere
Leja V Figeroa
Munro M Malet
Clifford F Glick
Maria K Caudy
Chavez G Shinko
David J Malet
Chavez A Kolmetz
Salvatore N Tollner
Cody S Amigon
Maisha P Royster
Smith N Tollner
Jennifer U Malet
Aika S Figeroa
Ivar R Campain
Jones H Nicka
Isabel G Ruta
Ricardo N Vocelka
Leon X Marrier
Jefferson B Venere
Mayumi G Ruta
Maria Z Vocelka
IdCountryDate
1000United Kingdom2026-08-13
1001Argentina2026-08-03
1002Italy2026-07-25
1003Australia2026-07-27
1004Italy2026-07-26
1005India2026-08-15
1006Argentina2026-08-12
1007Russia2026-08-01
1008Argentina2026-07-31
1009Canada2026-08-09
1010Japan2026-08-14
1011Russia2026-08-06
1012Japan2026-08-11
1013Spain2026-08-01
1014United Kingdom2026-07-30
1015Russia2026-07-24
1016Canada2026-08-17
1017Germany2026-07-27
1018Germany2026-07-31
1019Russia2026-07-24
1020Germany2026-07-25
1021Spain2026-08-17
1022Spain2026-07-28
1023United Kingdom2026-07-20
1024Australia2026-08-14
1025India2026-08-02
1026Russia2026-08-03
1027Italy2026-07-22
1028Italy2026-08-10
1029Canada2026-08-07
1030Japan2026-08-09
1031India2026-08-08
1032United Kingdom2026-07-22
1033Japan2026-07-27
1034Spain2026-07-25
1035Russia2026-07-20
1036India2026-07-20
1037Australia2026-07-30
1038Japan2026-07-28
1039United Kingdom2026-08-17
1040Germany2026-08-09
1041Argentina2026-07-27
1042Germany2026-07-19
1043Germany2026-07-26
1044Canada2026-08-02
1045Australia2026-08-03
1046United Kingdom2026-08-04
1047Argentina2026-07-25
1048Canada2026-08-05
1049Spain2026-07-23

On-Demand Data

NameIdCountryDate
Jefferson M Bolognia1000Japan2026-08-06
Aditya M Marrier1001Brazil2026-07-22
Kadeem J Oldroyd1002India2026-07-31
James O Whobrey1003Russia2026-07-20
Darci T Iturbide1004United Kingdom2026-08-03
Octavia G Nestle1005Italy2026-07-30
Chavez U Wieser1006Brazil2026-08-04
Rodrigues R Maclead1007India2026-08-09
Kaitlin H Bowley1008India2026-07-25
Mayumi T Wieser1009Spain2026-08-01
Maria N Kolmetz1010Canada2026-07-26
Deepesh O Iturbide1011Canada2026-08-04
Kaitlin V Amigon1012Argentina2026-08-03
Francesco F Caudy1013Spain2026-08-10
Emily A Shinko1014Australia2026-08-12
Munro U Glick1015Spain2026-07-28
Kadeem W Poquette1016United Kingdom2026-07-29
Aditya N Inouye1017Argentina2026-08-03
Ricardo S Foller1018Argentina2026-07-25
Munro Y Bolognia1019Germany2026-08-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily L NestleItalyIoni Bowcher QUALIFIED
Greenwood U FlosiSpainAnna Fali RENEWAL
Stacey I SchemmerUnited KingdomAsiya Javayant QUALIFIED
Murillo H VocelkaItalyAsiya Javayant NEGOTIATION
Nicolas C AlbaresCanadaAnna Fali QUALIFIED
Deepesh R PaprockiFranceAnna Fali RENEWAL
Adams K DarakjyFranceOnyama Limba PROPOSAL
Kadeem U TollnerAustraliaIvan Magalhaes NEW
Jeanfrancois B RulapaughUnited KingdomIoni Bowcher PROPOSAL
Ricardo B ButtItalyIvan Magalhaes RENEWAL
Julie S VenereSpainElwin Sharvill RENEWAL
Chavez V MaletUnited KingdomIoni Bowcher NEW
David L KuskoJapanElwin Sharvill NEW
Leja C KolmetzUnited KingdomElwin Sharvill RENEWAL
Aruna F ButtUnited KingdomXuxue Feng PROPOSAL
Stacey G CaudyRussiaStephen Shaw UNQUALIFIED
Alejandro I SaylorsBrazilXuxue Feng NEW
Maria Z MaletIndiaIvan Magalhaes UNQUALIFIED
Mujtaba A DarakjyRussiaAsiya Javayant QUALIFIED
Leja O ChuiJapanAsiya Javayant RENEWAL
Johnson B DilliardItalyAsiya Javayant RENEWAL
Nicolas K StensethItalyBernardo Dominic UNQUALIFIED
Misaki X AlbaresUnited KingdomStephen Shaw RENEWAL
Munro Q VocelkaJapanBernardo Dominic QUALIFIED
James O BowleyCanadaAnna Fali PROPOSAL
Adams C ButtAustraliaIoni Bowcher PROPOSAL
David M RulapaughJapanStephen Shaw UNQUALIFIED
Salvatore F WieserGermanyStephen Shaw UNQUALIFIED
Aika O StensethItalyAnna Fali NEW
Munro Q AlbaresGermanyAnna Fali NEGOTIATION
Adams D SaylorsCanadaAsiya Javayant UNQUALIFIED
Tony X RimAustraliaAsiya Javayant NEGOTIATION
Rodrigues T OldroydRussiaXuxue Feng RENEWAL
Kaitlin U InouyeRussiaElwin Sharvill UNQUALIFIED
Ashley Z WieserUnited KingdomStephen Shaw RENEWAL
David V CaldareraBrazilAnna Fali PROPOSAL
Tony F StockhamGermanyElwin Sharvill QUALIFIED
Misaki P WaycottCanadaIoni Bowcher QUALIFIED
Aruna M RimJapanAmy Elsner NEGOTIATION
Munro Y RoysterBrazilAmy Elsner 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>