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
Tony V VenereSpainAmy Elsner NEGOTIATION
Izzy D AlbaresCanadaStephen Shaw PROPOSAL
Maria N GauchoSpainAnna Fali QUALIFIED
Alejandro C GillianSpainBernardo Dominic QUALIFIED
Maisha S ChuiUnited KingdomBernardo Dominic PROPOSAL
Francesco P GlickFranceAmy Elsner PROPOSAL
Deepesh Y FlosiFranceBernardo Dominic NEGOTIATION
Faith W RulapaughAustraliaBernardo Dominic RENEWAL
Julie V PoquetteCanadaIoni Bowcher RENEWAL
Tony W FigeroaRussiaAnna Fali NEW
Rodrigues J AlbaresRussiaAmy Elsner UNQUALIFIED
David P KuskoJapanStephen Shaw QUALIFIED
Jennifer J GarufiIndiaAsiya Javayant QUALIFIED
Salvatore P NestleAustraliaOnyama Limba NEGOTIATION
Ivar K DarakjyBrazilStephen Shaw UNQUALIFIED
Maria A RutaFranceAsiya Javayant NEW
Isabel C OldroydAustraliaBernardo Dominic UNQUALIFIED
Stacey T MaletSpainBernardo Dominic RENEWAL
Jones S CampainGermanyXuxue Feng QUALIFIED
Ashley R CampainArgentinaXuxue Feng NEGOTIATION
Izzy E NestleCanadaAnna Fali RENEWAL
Costa K SaylorsJapanBernardo Dominic NEGOTIATION
Leja N MaletBrazilXuxue Feng NEGOTIATION
Kadeem K RimFranceStephen Shaw UNQUALIFIED
Mujtaba E FigeroaArgentinaBernardo Dominic NEGOTIATION
Francesco H OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
Ricardo T WieserArgentinaElwin Sharvill NEGOTIATION
Misaki L BologniaCanadaIvan Magalhaes PROPOSAL
Francesco Z AmigonArgentinaOnyama Limba NEW
Munro L RutaGermanyBernardo Dominic UNQUALIFIED
Johnson Q GauchoFranceIoni Bowcher UNQUALIFIED
Jones G WaycottJapanXuxue Feng NEGOTIATION
Adams A NickaArgentinaIoni Bowcher QUALIFIED
Mujtaba S TollnerFranceIvan Magalhaes RENEWAL
James O ChuiItalyXuxue Feng PROPOSAL
Nicolas L DarakjyAustraliaAnna Fali UNQUALIFIED
Silvio D SaylorsBrazilIoni Bowcher UNQUALIFIED
David A DoeUnited KingdomAsiya Javayant RENEWAL
Sinclair N BowleyAustraliaAsiya Javayant QUALIFIED
Wickens P StockhamUnited KingdomOnyama Limba UNQUALIFIED
Adams J RulapaughUnited KingdomAsiya Javayant NEW
Morrow W DoeBrazilXuxue Feng PROPOSAL
Morrow G PerinUnited KingdomStephen Shaw PROPOSAL
Clifford E DilliardCanadaAmy Elsner UNQUALIFIED
Silvio F ButtGermanyAmy Elsner UNQUALIFIED
Julie X GarufiUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues Y PerinIndiaOnyama Limba RENEWAL
Tony Y KolmetzSpainAmy Elsner PROPOSAL
Jones N RutaAustraliaAsiya Javayant NEW
Mayumi R KuskoIndiaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Sinclair L FlosiJapanAsiya Javayant NEW
David X AlbaresItalyElwin Sharvill NEGOTIATION
Darci Z VenereItalyXuxue Feng RENEWAL
Tony O PaprockiSpainIvan Magalhaes RENEWAL
Silvio U RoysterSpainAsiya Javayant RENEWAL
Jeanfrancois R DoeSpainBernardo Dominic NEGOTIATION
Murillo F FlosiUnited KingdomIoni Bowcher RENEWAL
Alejandro Y ButtUnited KingdomAmy Elsner UNQUALIFIED
Nicolas X BowleyUnited KingdomAsiya Javayant NEW
Francesco O FollerGermanyOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith Y AmigonIndia2026-07-21Rousseaux, Michael Esq RENEWAL13Ivan Magalhaes
1001Aditya E BowleyJapan2026-07-11Feltz Printing Service QUALIFIED74Asiya Javayant
1002Morrow K NickaIndia2026-08-04Chemel, James L Cpa QUALIFIED30Elwin Sharvill
1003Salvatore C MaletAustralia2026-07-13Rousseaux, Michael Esq UNQUALIFIED2Onyama Limba
1004Chavez B ButtItaly2026-07-22Rangoni Of Florence NEW49Ioni Bowcher
1005Smith T MarrierUnited Kingdom2026-07-25Printing Dimensions PROPOSAL50Ioni Bowcher
1006Greenwood J SaylorsFrance2026-07-18Benton, John B Jr RENEWAL49Ivan Magalhaes
1007Leon O BologniaIndia2026-07-12Rangoni Of Florence NEW17Xuxue Feng
1008Tony R KuskoItaly2026-08-04Feltz Printing Service UNQUALIFIED73Onyama Limba
1009Murillo T MarrierItaly2026-07-26Benton, John B Jr NEGOTIATION4Ivan Magalhaes
1010Tony U MaletBrazil2026-07-10Feiner Bros NEGOTIATION29Elwin Sharvill
1011Jennifer K RutaFrance2026-07-18Truhlar And Truhlar Attys NEGOTIATION42Amy Elsner
1012Francesco T TollnerIndia2026-07-25Chanay, Jeffrey A Esq RENEWAL69Amy Elsner
1013Claire T OstroskyItaly2026-07-30Rangoni Of Florence RENEWAL33Bernardo Dominic
1014Sinclair C ChuiCanada2026-07-09King, Christopher A Esq UNQUALIFIED80Amy Elsner
1015Faith A ShinkoRussia2026-07-30King, Christopher A Esq PROPOSAL11Stephen Shaw
1016Smith S SaylorsBrazil2026-07-25Commercial Press QUALIFIED56Elwin Sharvill
1017Morrow T StockhamArgentina2026-07-22Chanay, Jeffrey A Esq PROPOSAL81Asiya Javayant
1018Chavez S FlosiJapan2026-07-11Feiner Bros NEW34Stephen Shaw
1019Faith V PerinCanada2026-07-09Benton, John B Jr QUALIFIED1Stephen Shaw
1020Jefferson L VocelkaItaly2026-08-02Feiner Bros PROPOSAL81Onyama Limba
1021Ashley F RimIndia2026-07-28Feiner Bros PROPOSAL71Amy Elsner
1022Johnson V WieserIndia2026-08-05Printing Dimensions PROPOSAL70Ivan Magalhaes
1023Sinclair T SlusarskiItaly2026-08-06Morlong Associates NEW28Bernardo Dominic
1024Mujtaba W RoysterCanada2026-08-02Commercial Press QUALIFIED31Bernardo Dominic
1025Leon R RutaUnited Kingdom2026-07-17Benton, John B Jr PROPOSAL1Ioni Bowcher
1026Kaitlin O AlbaresBrazil2026-07-19Rousseaux, Michael Esq UNQUALIFIED85Xuxue Feng
1027Johnson E RulapaughItaly2026-07-18Dorl, James J Esq QUALIFIED96Stephen Shaw
1028Jefferson D FigeroaRussia2026-08-06King, Christopher A Esq QUALIFIED0Amy Elsner
1029Claire C PaprockiGermany2026-08-03Truhlar And Truhlar Attys UNQUALIFIED10Xuxue Feng
1030Kadeem Z KolmetzBrazil2026-08-05Benton, John B Jr NEGOTIATION67Anna Fali
1031Francesco D AlbaresBrazil2026-07-31Rousseaux, Michael Esq QUALIFIED40Ivan Magalhaes
1032Kaitlin E RulapaughJapan2026-07-15Morlong Associates QUALIFIED43Anna Fali
1033Adams E DilliardRussia2026-08-06Feltz Printing Service RENEWAL48Ioni Bowcher
1034Silvio P DoeRussia2026-07-27Rousseaux, Michael Esq NEGOTIATION74Ivan Magalhaes
1035Deepesh J DoeSpain2026-07-15Printing Dimensions NEW67Onyama Limba
1036James D AmigonItaly2026-07-23Chemel, James L Cpa UNQUALIFIED84Ioni Bowcher
1037Adams W DoeUnited Kingdom2026-07-25Chapman, Ross E Esq NEW89Ivan Magalhaes
1038Rodrigues K MorascaAustralia2026-08-04Feiner Bros NEGOTIATION55Anna Fali
1039James C WhobreyRussia2026-07-26Rousseaux, Michael Esq PROPOSAL99Xuxue Feng
1040Johnson G SaylorsAustralia2026-07-31Feltz Printing Service UNQUALIFIED56Onyama Limba
1041Aruna U KolmetzBrazil2026-07-27Commercial Press QUALIFIED98Ivan Magalhaes
1042Chavez O PerinGermany2026-07-12Chapman, Ross E Esq NEGOTIATION85Ivan Magalhaes
1043Jefferson X NestleItaly2026-07-09King, Christopher A Esq NEGOTIATION72Xuxue Feng
1044Murillo J PaprockiFrance2026-07-16Feiner Bros PROPOSAL94Ivan Magalhaes
1045Aika I GlickRussia2026-07-23Benton, John B Jr NEW41Elwin Sharvill
1046Alejandro U NestleRussia2026-07-13Rousseaux, Michael Esq NEGOTIATION24Amy Elsner
1047Greenwood F RimArgentina2026-07-22Chemel, James L Cpa PROPOSAL42Bernardo Dominic
1048Adams R OldroydSpain2026-07-31Chanay, Jeffrey A Esq QUALIFIED66Anna Fali
1049Deepesh R WhobreyRussia2026-07-30Chanay, Jeffrey A Esq UNQUALIFIED81Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Claire Y WieserRussiaXuxue Feng PROPOSAL
Aditya H RulapaughArgentinaElwin Sharvill QUALIFIED
Leja K CaudyJapanAnna Fali NEGOTIATION
Salvatore O ShinkoIndiaIoni Bowcher UNQUALIFIED
Silvio Z KuskoItalyAmy Elsner UNQUALIFIED
Julie L StensethFranceAnna Fali PROPOSAL
Juan L PoquetteSpainAnna Fali RENEWAL
Munro J SchemmerGermanyAmy Elsner NEW
Salvatore X BowleyUnited KingdomIoni Bowcher NEW
Greenwood F BowleyCanadaIoni Bowcher UNQUALIFIED
Faith L OldroydItalyStephen Shaw QUALIFIED
Smith G WaycottGermanyAmy Elsner UNQUALIFIED
Octavia P GlickRussiaBernardo Dominic QUALIFIED
Stacey O GarufiBrazilXuxue Feng PROPOSAL
Clifford E OstroskyCanadaAnna Fali QUALIFIED
Claire H NestleJapanOnyama Limba QUALIFIED
Salvatore I MorascaGermanyElwin Sharvill QUALIFIED
Alejandro P MacleadIndiaXuxue Feng NEW
Ricardo B BowleyIndiaAsiya Javayant NEW
Faith Z FerenczSpainIoni Bowcher PROPOSAL
James C MacleadFranceIoni Bowcher UNQUALIFIED
Ivar K MarrierJapanStephen Shaw QUALIFIED
Leon Q StockhamIndiaAnna Fali PROPOSAL
Arvin N ShinkoCanadaBernardo Dominic RENEWAL
Cody M GillianBrazilStephen Shaw QUALIFIED
Jefferson J RulapaughUnited KingdomAsiya Javayant RENEWAL
Wickens N OldroydGermanyElwin Sharvill PROPOSAL
Murillo B MacleadRussiaAnna Fali PROPOSAL
Jones Z RutaAustraliaXuxue Feng RENEWAL
Morrow D MaletIndiaXuxue Feng NEW
Misaki H WieserIndiaAsiya Javayant RENEWAL
Maisha W DoeCanadaElwin Sharvill RENEWAL
Juan L BologniaArgentinaAmy Elsner RENEWAL
Smith T CaldareraUnited KingdomXuxue Feng PROPOSAL
Jennifer X ChuiIndiaAmy Elsner UNQUALIFIED
Alejandro Q GlickAustraliaXuxue Feng UNQUALIFIED
Antonio Z ButtArgentinaAmy Elsner RENEWAL
Rodrigues N KolmetzSpainAsiya Javayant PROPOSAL
Izzy R StockhamIndiaXuxue Feng NEGOTIATION
Nicolas E RimCanadaXuxue Feng UNQUALIFIED
Tony S BowleyFranceStephen Shaw QUALIFIED
Maisha U RoysterFranceAnna Fali UNQUALIFIED
Jeanfrancois J FerenczUnited KingdomIvan Magalhaes QUALIFIED
Jefferson V OstroskySpainXuxue Feng UNQUALIFIED
Francesco E InouyeItalyXuxue Feng PROPOSAL
Ricardo O SchemmerIndiaAmy Elsner QUALIFIED
Jennifer Y FigeroaAustraliaAnna Fali RENEWAL
Stacey U GlickGermanyElwin Sharvill NEW
Aika B RutaUnited KingdomOnyama Limba QUALIFIED
Smith T BologniaArgentinaXuxue Feng PROPOSAL
Frozen Columns
Name
Clifford D Caudy
Deepesh J Marrier
Munro R Caudy
Sinclair M Nestle
Maria M Nicka
Wickens N Vocelka
Julie F Glick
Arvin Z Maclead
Stacey C Butt
Antonio Q Amigon
Leja E Dilliard
Juan Y Shinko
Emily R Tollner
Kadeem A Oldroyd
Darci N Garufi
Antonio G Malet
Faith V Schemmer
Munro Z Sergi
Jones K Albares
Greenwood I Ruta
Ivar T Whobrey
Morrow H Marrier
Kaitlin V Figeroa
Deepesh W Chui
Jones O Caudy
Smith N Morasca
Alejandro Z Foller
Alejandro H Garufi
Silvio M Briddick
Stacey Y Bowley
Deepesh H Kolmetz
Munro E Gaucho
Arvin E Gaucho
Ricardo A Kolmetz
Kadeem R Gaucho
Izzy E Whobrey
Tony Q Stenseth
Leon T Caldarera
Leon B Stenseth
James Y Flosi
Faith W Figeroa
Silvio Z Foller
Greenwood H Morasca
Emily L Morasca
Adams G Stenseth
Rodrigues R Caldarera
Leon T Chui
Wickens E Glick
Deepesh Q Rulapaugh
Salvatore U Amigon
IdCountryDate
1000India2026-07-19
1001Italy2026-07-26
1002United Kingdom2026-08-03
1003France2026-07-25
1004Australia2026-07-17
1005France2026-07-29
1006Canada2026-07-21
1007Japan2026-07-30
1008India2026-07-25
1009Australia2026-07-27
1010Italy2026-08-01
1011Australia2026-07-15
1012Argentina2026-08-04
1013Brazil2026-08-03
1014Argentina2026-08-07
1015France2026-07-31
1016Russia2026-07-11
1017Japan2026-07-12
1018Italy2026-07-25
1019Canada2026-07-24
1020India2026-07-28
1021Spain2026-07-25
1022Japan2026-07-19
1023Germany2026-07-16
1024Germany2026-07-18
1025Spain2026-08-04
1026United Kingdom2026-08-01
1027Spain2026-07-21
1028Canada2026-07-26
1029Germany2026-07-28
1030Argentina2026-07-21
1031India2026-08-03
1032United Kingdom2026-07-24
1033Russia2026-07-26
1034Japan2026-08-07
1035Argentina2026-07-26
1036United Kingdom2026-08-01
1037Argentina2026-07-14
1038Spain2026-07-12
1039Germany2026-07-29
1040Spain2026-08-01
1041Germany2026-07-27
1042Italy2026-07-14
1043Australia2026-07-15
1044Australia2026-07-18
1045Brazil2026-08-02
1046Spain2026-07-13
1047Spain2026-07-27
1048Argentina2026-07-16
1049India2026-07-13

On-Demand Data

NameIdCountryDate
James G Vocelka1000Australia2026-07-27
Morrow F Schemmer1001Brazil2026-07-12
Arvin A Schemmer1002Russia2026-07-23
Isabel D Caldarera1003Russia2026-07-10
Clifford P Foller1004Russia2026-07-17
Faith E Campain1005Argentina2026-07-17
Costa F Poquette1006Japan2026-07-17
Mayumi D Figeroa1007Australia2026-07-19
Smith H Inouye1008Australia2026-07-14
Francesco M Malet1009Canada2026-07-23
Munro A Ruta1010Germany2026-07-28
Mujtaba M Albares1011Italy2026-08-06
Ashley E Marrier1012Japan2026-07-24
Juan S Rim1013Italy2026-07-15
Adams F Caldarera1014France2026-07-25
Adams C Nestle1015India2026-07-31
Kaitlin H Paprocki1016United Kingdom2026-07-18
Greenwood F Garufi1017Germany2026-07-10
Ivar Y Stenseth1018Australia2026-07-27
Kadeem L Garufi1019Brazil2026-07-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo X RimRussiaAmy Elsner QUALIFIED
Johnson L BriddickArgentinaElwin Sharvill RENEWAL
Murillo I ChuiIndiaAsiya Javayant QUALIFIED
James M RoysterArgentinaAmy Elsner PROPOSAL
Maisha M MorascaRussiaIvan Magalhaes NEGOTIATION
Kaitlin Q BowleySpainIvan Magalhaes PROPOSAL
Nicolas I VocelkaIndiaStephen Shaw NEGOTIATION
Jones Q SaylorsItalyAnna Fali RENEWAL
Francesco Q RimRussiaIoni Bowcher PROPOSAL
Maisha H StensethAustraliaIvan Magalhaes QUALIFIED
Sinclair F RulapaughJapanIoni Bowcher NEW
Deepesh T IturbideArgentinaIvan Magalhaes QUALIFIED
Izzy V SaylorsUnited KingdomOnyama Limba PROPOSAL
Claire T DarakjyIndiaXuxue Feng PROPOSAL
Darci K SlusarskiAustraliaOnyama Limba PROPOSAL
Tony W FerenczFranceAnna Fali QUALIFIED
Ashley Q RulapaughCanadaIvan Magalhaes PROPOSAL
Jennifer H PerinUnited KingdomXuxue Feng NEGOTIATION
Claire Z MaletCanadaStephen Shaw NEW
Isabel Y NickaRussiaBernardo Dominic NEW
Isabel H CampainAustraliaIoni Bowcher NEW
Izzy P FigeroaBrazilStephen Shaw RENEWAL
Wickens S TollnerUnited KingdomBernardo Dominic QUALIFIED
Johnson V AlbaresIndiaElwin Sharvill NEGOTIATION
Jefferson S KolmetzAustraliaIvan Magalhaes QUALIFIED
Emily Q StockhamItalyAsiya Javayant UNQUALIFIED
Chavez K GauchoFranceStephen Shaw UNQUALIFIED
Jeanfrancois E KolmetzUnited KingdomBernardo Dominic PROPOSAL
Ricardo Z FollerAustraliaAnna Fali NEGOTIATION
Cody H MaletRussiaIvan Magalhaes NEGOTIATION
Clifford K GillianSpainAnna Fali QUALIFIED
Ashley X MorascaSpainIvan Magalhaes NEGOTIATION
Antonio E InouyeGermanyAnna Fali PROPOSAL
Jennifer H PoquetteRussiaIvan Magalhaes NEGOTIATION
Jennifer I AlbaresUnited KingdomXuxue Feng NEGOTIATION
Adams B BriddickGermanyAnna Fali NEGOTIATION
Julie Q DoeArgentinaBernardo Dominic PROPOSAL
David O MaletSpainIvan Magalhaes QUALIFIED
Leon A DoeRussiaXuxue Feng QUALIFIED
Smith A GauchoArgentinaIvan Magalhaes NEGOTIATION

<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>