Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
French
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Czech
Greek
Persian
Hindi
Indonesian
Croatian
Japanese
Hungarian
Hebrew
Georgian
Lithuanian
Latvian
Norwegian
Polish
Romanian
Russian
Slovak
Slovenian
Serbian
Swedish
Turkish
Ukrainian
Vietnamese
Chinese
Chinese

Input Style

Free Themes

Built-in component themes created by the PrimeFaces Theme Designer.

PrimeOne Design

Saga Saga
Vela Vela
Arya Arya

Premium Themes

Premium themes are only available exclusively for PrimeFaces Theme Designer subscribers and therefore not included in PrimeFaces core.

Bootstrap light blue and dark blue themes are also included in PrimeFaces 10.x builds for Elite subscribers.

bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple

Legacy Free Themes

Luna Amber Luna Amber
Luna Blue Luna Blue
Luna Green Luna Green
Luna Pink Luna Pink
Nova Nova
Nova Nova Alt
Nova Nova Accent

PREMIUM TEMPLATES

Create awesome applications in no time using the premium templates and impress your users.

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Kadeem D FlosiItalyAnna Fali NEGOTIATION
Silvio Z PaprockiAustraliaAsiya Javayant PROPOSAL
Francesco I GlickGermanyBernardo Dominic UNQUALIFIED
Morrow R PaprockiSpainIvan Magalhaes RENEWAL
Nicolas L OldroydItalyAnna Fali RENEWAL
Jefferson L FigeroaBrazilAmy Elsner UNQUALIFIED
Isabel W WieserIndiaAsiya Javayant RENEWAL
Wickens T MacleadFranceIoni Bowcher NEGOTIATION
Cody L IturbideIndiaXuxue Feng PROPOSAL
Jones S VocelkaSpainXuxue Feng NEGOTIATION
Darci L RulapaughSpainOnyama Limba QUALIFIED
Chavez W GlickCanadaElwin Sharvill UNQUALIFIED
Deepesh C MorascaBrazilAsiya Javayant RENEWAL
Aruna C WhobreyGermanyBernardo Dominic NEW
Arvin H FerenczIndiaStephen Shaw PROPOSAL
Greenwood X GillianSpainOnyama Limba NEGOTIATION
Smith Q FlosiFranceAmy Elsner UNQUALIFIED
Cody U AmigonJapanStephen Shaw PROPOSAL
Maria J DilliardItalyXuxue Feng QUALIFIED
Deepesh Z PerinCanadaIvan Magalhaes PROPOSAL
Faith W FlosiArgentinaStephen Shaw PROPOSAL
Wickens O OstroskyUnited KingdomOnyama Limba NEGOTIATION
Rodrigues M FlosiUnited KingdomBernardo Dominic UNQUALIFIED
Deepesh W GauchoRussiaXuxue Feng PROPOSAL
Aruna C ChuiJapanOnyama Limba NEW
Isabel R StensethCanadaAnna Fali QUALIFIED
Kadeem Q DoeRussiaStephen Shaw PROPOSAL
Costa Z CaudyArgentinaXuxue Feng QUALIFIED
Chavez T WaycottRussiaXuxue Feng RENEWAL
Munro H DarakjyGermanyBernardo Dominic UNQUALIFIED
Costa Y IturbideItalyOnyama Limba RENEWAL
Faith M KuskoRussiaAnna Fali NEW
Clifford A RutaRussiaAnna Fali NEW
Faith R DilliardSpainOnyama Limba PROPOSAL
Maisha H InouyeUnited KingdomAsiya Javayant NEW
Kaitlin J FigeroaIndiaAnna Fali UNQUALIFIED
Cody M SergiIndiaElwin Sharvill QUALIFIED
Ashley F MorascaUnited KingdomBernardo Dominic NEW
Morrow G WieserCanadaElwin Sharvill UNQUALIFIED
Jeanfrancois F KuskoBrazilIvan Magalhaes PROPOSAL
Kadeem C StensethArgentinaIvan Magalhaes PROPOSAL
Costa L MarrierItalyAmy Elsner UNQUALIFIED
Wickens Y GlickGermanyAsiya Javayant UNQUALIFIED
Stacey A RoysterAustraliaElwin Sharvill NEW
Leon M GarufiArgentinaIoni Bowcher QUALIFIED
Murillo Z RoysterBrazilAmy Elsner RENEWAL
Leon U OldroydUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois G FlosiBrazilBernardo Dominic UNQUALIFIED
Sinclair Z FigeroaSpainAnna Fali NEGOTIATION
Nicolas Y AmigonSpainXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
James F MorascaAustraliaElwin Sharvill PROPOSAL
Maisha F GauchoRussiaIoni Bowcher NEGOTIATION
Morrow H MaletJapanElwin Sharvill UNQUALIFIED
Jennifer Y StensethArgentinaAnna Fali RENEWAL
Faith Z MaletBrazilAmy Elsner RENEWAL
Aika G RimFranceIvan Magalhaes NEW
Jeanfrancois H NickaArgentinaIoni Bowcher NEW
Smith X VocelkaArgentinaElwin Sharvill RENEWAL
Francesco K FollerRussiaElwin Sharvill UNQUALIFIED
Kadeem G RulapaughAustraliaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy P MaletUnited Kingdom2024-04-06Benton, John B Jr UNQUALIFIED22Onyama Limba
1001Claire B MaletItaly2024-04-14Printing Dimensions RENEWAL3Amy Elsner
1002Clifford L FigeroaIndia2024-03-29Feiner Bros RENEWAL25Stephen Shaw
1003Smith D VocelkaUnited Kingdom2024-04-08Truhlar And Truhlar Attys NEGOTIATION69Bernardo Dominic
1004Chavez K BriddickArgentina2024-04-26Chapman, Ross E Esq PROPOSAL73Anna Fali
1005Clifford Y DarakjyCanada2024-04-05Truhlar And Truhlar Attys NEGOTIATION47Onyama Limba
1006Ashley H InouyeGermany2024-04-06King, Christopher A Esq PROPOSAL96Onyama Limba
1007Salvatore T IturbideItaly2024-04-20Feltz Printing Service NEW71Stephen Shaw
1008Darci U FigeroaAustralia2024-04-18Dorl, James J Esq PROPOSAL58Ioni Bowcher
1009Leja L SergiGermany2024-04-14Feltz Printing Service PROPOSAL30Ivan Magalhaes
1010Kaitlin G MaletRussia2024-04-08Benton, John B Jr NEGOTIATION72Bernardo Dominic
1011Aditya T MaletSpain2024-04-12Feltz Printing Service NEGOTIATION6Elwin Sharvill
1012Jeanfrancois A SergiGermany2024-04-14Benton, John B Jr NEW72Asiya Javayant
1013Jefferson M MarrierItaly2024-03-28Rousseaux, Michael Esq NEGOTIATION34Anna Fali
1014Faith Q PerinRussia2024-04-20Printing Dimensions RENEWAL54Asiya Javayant
1015Wickens D PerinIndia2024-04-20Benton, John B Jr UNQUALIFIED1Bernardo Dominic
1016Kaitlin J FigeroaCanada2024-03-28Dorl, James J Esq PROPOSAL79Ivan Magalhaes
1017Aditya H GauchoBrazil2024-04-05Rousseaux, Michael Esq UNQUALIFIED2Stephen Shaw
1018Leja E CaldareraRussia2024-04-06Chemel, James L Cpa PROPOSAL55Onyama Limba
1019Maisha Z SergiFrance2024-04-10Rangoni Of Florence NEGOTIATION75Asiya Javayant
1020Misaki M MarrierIndia2024-03-31Truhlar And Truhlar Attys RENEWAL16Bernardo Dominic
1021Jefferson E WieserUnited Kingdom2024-04-25Morlong Associates PROPOSAL1Stephen Shaw
1022Francesco E RimSpain2024-04-20Buckley Miller Wright NEGOTIATION95Elwin Sharvill
1023Smith P GarufiUnited Kingdom2024-04-11Chemel, James L Cpa RENEWAL17Onyama Limba
1024Ricardo Q BowleyAustralia2024-04-05Commercial Press RENEWAL3Asiya Javayant
1025Juan L WaycottFrance2024-04-08Chapman, Ross E Esq NEGOTIATION46Bernardo Dominic
1026Stacey L KolmetzUnited Kingdom2024-04-05Dorl, James J Esq NEW1Amy Elsner
1027Murillo H AlbaresUnited Kingdom2024-04-25Buckley Miller Wright NEGOTIATION1Asiya Javayant
1028Smith Z StockhamItaly2024-04-06Commercial Press UNQUALIFIED24Elwin Sharvill
1029Aika H PoquetteGermany2024-04-21Rangoni Of Florence UNQUALIFIED29Ivan Magalhaes
1030Munro E StockhamAustralia2024-03-31Chanay, Jeffrey A Esq UNQUALIFIED58Ioni Bowcher
1031Ivar V VenereRussia2024-04-20Benton, John B Jr RENEWAL34Anna Fali
1032Juan X GlickSpain2024-04-26Chanay, Jeffrey A Esq NEW91Xuxue Feng
1033Chavez I StensethArgentina2024-04-04Feltz Printing Service QUALIFIED25Anna Fali
1034Maisha R WhobreyCanada2024-04-16Commercial Press UNQUALIFIED52Stephen Shaw
1035Deepesh C BowleyItaly2024-04-06Morlong Associates RENEWAL30Ivan Magalhaes
1036Emily U NestleCanada2024-04-22Feltz Printing Service UNQUALIFIED45Ioni Bowcher
1037Isabel M MacleadGermany2024-04-18Buckley Miller Wright NEW91Bernardo Dominic
1038Faith R DoeBrazil2024-04-24Chapman, Ross E Esq QUALIFIED29Xuxue Feng
1039Maisha X PerinSpain2024-04-26Commercial Press QUALIFIED18Stephen Shaw
1040Salvatore L ChuiIndia2024-04-16Chemel, James L Cpa NEW3Ioni Bowcher
1041Jennifer Q GarufiGermany2024-04-18Chemel, James L Cpa UNQUALIFIED63Amy Elsner
1042Stacey D WhobreyRussia2024-04-08Chanay, Jeffrey A Esq NEW32Onyama Limba
1043Maisha E BowleyGermany2024-04-11Chanay, Jeffrey A Esq NEW92Ioni Bowcher
1044Johnson X RimCanada2024-04-14Chemel, James L Cpa UNQUALIFIED90Ioni Bowcher
1045Clifford Q KuskoBrazil2024-04-24Rangoni Of Florence NEGOTIATION36Xuxue Feng
1046Emily L GlickItaly2024-04-01Chapman, Ross E Esq RENEWAL17Bernardo Dominic
1047Jones T SergiFrance2024-04-26Benton, John B Jr NEGOTIATION14Stephen Shaw
1048Julie A GlickJapan2024-04-04Chapman, Ross E Esq UNQUALIFIED52Ivan Magalhaes
1049Stacey S SergiUnited Kingdom2024-04-07King, Christopher A Esq QUALIFIED90Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Julie G VocelkaSpainAsiya Javayant UNQUALIFIED
Mayumi Z KuskoFranceAnna Fali NEGOTIATION
Tony C DilliardItalyAnna Fali RENEWAL
Claire P PerinCanadaElwin Sharvill NEGOTIATION
Faith B InouyeAustraliaBernardo Dominic QUALIFIED
Adams R MaletGermanyIvan Magalhaes RENEWAL
Ivar B RulapaughUnited KingdomAsiya Javayant RENEWAL
Emily R CampainRussiaStephen Shaw PROPOSAL
Maria Z VenereCanadaOnyama Limba RENEWAL
Greenwood D RulapaughItalyIvan Magalhaes NEGOTIATION
Nicolas P IturbideJapanIoni Bowcher UNQUALIFIED
Rodrigues X TollnerIndiaOnyama Limba RENEWAL
Rodrigues K VocelkaFranceElwin Sharvill NEGOTIATION
Aditya A BriddickSpainAsiya Javayant UNQUALIFIED
Silvio V MarrierGermanyXuxue Feng QUALIFIED
Munro I SaylorsAustraliaIoni Bowcher NEGOTIATION
Aditya V RutaSpainStephen Shaw PROPOSAL
Alejandro O KuskoSpainXuxue Feng NEGOTIATION
Leon Z GauchoGermanyIvan Magalhaes NEW
Clifford A MarrierIndiaAnna Fali QUALIFIED
Maisha J GarufiAustraliaStephen Shaw NEGOTIATION
Julie P NestleBrazilOnyama Limba RENEWAL
Izzy Z ShinkoArgentinaXuxue Feng QUALIFIED
Adams B DarakjyBrazilAmy Elsner PROPOSAL
Murillo O IturbideAustraliaElwin Sharvill UNQUALIFIED
Cody S GarufiItalyStephen Shaw PROPOSAL
Wickens H RutaFranceOnyama Limba NEGOTIATION
Deepesh N RutaGermanyElwin Sharvill PROPOSAL
Silvio E WhobreyCanadaOnyama Limba NEW
Maisha P InouyeJapanIvan Magalhaes PROPOSAL
Maisha O PoquetteUnited KingdomAmy Elsner PROPOSAL
Silvio O StockhamBrazilBernardo Dominic QUALIFIED
Mayumi O RutaBrazilXuxue Feng QUALIFIED
Nicolas V DoeArgentinaAmy Elsner RENEWAL
Nicolas X ButtCanadaXuxue Feng PROPOSAL
Mujtaba A TollnerAustraliaOnyama Limba QUALIFIED
Jones X SlusarskiItalyIoni Bowcher QUALIFIED
Leon T MacleadRussiaBernardo Dominic PROPOSAL
Darci R RimBrazilIoni Bowcher NEGOTIATION
Ivar A KolmetzArgentinaOnyama Limba QUALIFIED
Francesco A PaprockiUnited KingdomAsiya Javayant QUALIFIED
Tony D GillianItalyElwin Sharvill QUALIFIED
Adams X ChuiCanadaStephen Shaw NEGOTIATION
Morrow W KolmetzGermanyAsiya Javayant QUALIFIED
Costa T VenereJapanBernardo Dominic UNQUALIFIED
Murillo M StockhamArgentinaAsiya Javayant UNQUALIFIED
Leon X SaylorsFranceIvan Magalhaes QUALIFIED
Aika U RoysterSpainOnyama Limba RENEWAL
Nicolas A TollnerFranceIvan Magalhaes NEGOTIATION
Sinclair A DoeRussiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Antonio D Caldarera
Mayumi S Flosi
Costa R Wieser
Smith R Schemmer
Jones N Perin
Morrow E Poquette
Sinclair C Caudy
Silvio P Caudy
Tony E Saylors
Octavia H Gillian
Francesco B Butt
Greenwood L Bolognia
Costa D Gaucho
Arvin N Oldroyd
Tony T Morasca
Aruna Z Gillian
Nicolas T Caudy
Aika Y Caudy
Ashley Y Caudy
Antonio R Ostrosky
David R Shinko
Sinclair K Butt
Morrow C Waycott
Leon V Briddick
Darci H Slusarski
Tony C Saylors
Alejandro Q Briddick
Deepesh X Gaucho
Ricardo I Glick
Maisha F Foller
Arvin X Vocelka
Cody V Royster
Darci K Foller
Mujtaba G Morasca
Ivar S Morasca
Adams I Dilliard
Ashley S Campain
Chavez Z Wieser
Cody A Glick
Jefferson Q Darakjy
Kaitlin Y Darakjy
Juan O Schemmer
Costa T Dilliard
Jeanfrancois W Poquette
Munro C Tollner
Jeanfrancois N Albares
Deepesh K Glick
Smith B Sergi
Nicolas P Amigon
David M Tollner
IdCountryDate
1000Germany2024-04-09
1001Germany2024-04-21
1002Russia2024-04-08
1003Argentina2024-04-19
1004Argentina2024-04-06
1005France2024-04-26
1006Japan2024-04-11
1007Spain2024-04-23
1008Japan2024-04-15
1009Japan2024-04-06
1010Russia2024-04-18
1011India2024-04-09
1012Japan2024-04-03
1013Canada2024-04-25
1014France2024-04-16
1015United Kingdom2024-04-04
1016Australia2024-03-30
1017Argentina2024-04-20
1018Australia2024-04-08
1019India2024-03-28
1020Argentina2024-03-29
1021Spain2024-03-29
1022France2024-04-07
1023Spain2024-04-14
1024India2024-03-30
1025United Kingdom2024-04-08
1026United Kingdom2024-04-21
1027India2024-04-12
1028United Kingdom2024-04-12
1029Germany2024-04-21
1030Germany2024-04-12
1031India2024-04-02
1032Russia2024-04-07
1033France2024-04-21
1034Italy2024-04-03
1035Australia2024-04-12
1036Canada2024-03-31
1037Japan2024-04-02
1038Germany2024-04-13
1039Japan2024-04-22
1040Australia2024-04-02
1041Argentina2024-04-09
1042India2024-04-17
1043Germany2024-03-28
1044Russia2024-04-21
1045India2024-04-26
1046Brazil2024-04-22
1047Italy2024-04-23
1048Japan2024-04-02
1049Russia2024-03-30

On-Demand Data

NameIdCountryDate
Octavia R Slusarski1000France2024-04-23
Tony L Gillian1001India2024-04-04
Maisha R Dilliard1002Canada2024-03-31
Octavia R Morasca1003Germany2024-04-13
Claire K Morasca1004France2024-04-05
Julie N Doe1005Japan2024-04-23
Antonio F Stockham1006Argentina2024-04-07
Faith J Morasca1007Japan2024-04-14
Juan O Kusko1008Argentina2024-04-10
Munro L Caldarera1009Canada2024-04-12
Greenwood I Marrier1010Canada2024-04-01
Aika A Shinko1011France2024-04-01
Nicolas L Vocelka1012Italy2024-04-14
Ricardo R Slusarski1013India2024-03-28
Maisha E Oldroyd1014Brazil2024-03-29
Salvatore L Maclead1015Japan2024-04-06
Nicolas D Caudy1016Spain2024-04-06
Morrow B Poquette1017Japan2024-04-11
Aditya V Rim1018India2024-04-21
Leon J Gaucho1019Italy2024-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo U StockhamUnited KingdomElwin Sharvill NEGOTIATION
Alejandro K KolmetzAustraliaOnyama Limba QUALIFIED
Chavez Y DoeRussiaAnna Fali PROPOSAL
Tony S GlickRussiaAnna Fali RENEWAL
Octavia E AmigonIndiaBernardo Dominic QUALIFIED
Silvio D SchemmerSpainIoni Bowcher NEW
Arvin J WaycottUnited KingdomAsiya Javayant PROPOSAL
Julie I NickaIndiaStephen Shaw NEGOTIATION
Deepesh G SlusarskiIndiaAsiya Javayant NEGOTIATION
Nicolas U AmigonRussiaAmy Elsner QUALIFIED
Izzy I ButtUnited KingdomOnyama Limba QUALIFIED
Izzy Z MaletIndiaXuxue Feng NEGOTIATION
Smith Z KuskoCanadaAnna Fali NEW
Ricardo J WieserFranceAnna Fali PROPOSAL
Nicolas B CampainSpainIoni Bowcher NEGOTIATION
Claire V RulapaughCanadaAnna Fali NEGOTIATION
Aditya I GauchoIndiaXuxue Feng NEW
Emily H FlosiItalyBernardo Dominic PROPOSAL
Ricardo S MarrierGermanyIoni Bowcher NEGOTIATION
Faith N KuskoRussiaStephen Shaw NEGOTIATION
Aika R WaycottArgentinaBernardo Dominic NEGOTIATION
Juan U GarufiFranceElwin Sharvill NEGOTIATION
Octavia Z FerenczGermanyOnyama Limba NEGOTIATION
Octavia L NestleCanadaAmy Elsner UNQUALIFIED
Jones R StensethArgentinaBernardo Dominic QUALIFIED
Misaki S PerinJapanAmy Elsner UNQUALIFIED
Jeanfrancois M DilliardGermanyAnna Fali PROPOSAL
Ivar D SergiItalyIvan Magalhaes QUALIFIED
Jennifer U FlosiAustraliaBernardo Dominic QUALIFIED
Wickens A SlusarskiItalyOnyama Limba NEW
Maria N GillianUnited KingdomElwin Sharvill RENEWAL
Maisha I CampainFranceBernardo Dominic NEW
Claire R BologniaAustraliaOnyama Limba RENEWAL
Ricardo G FigeroaIndiaXuxue Feng NEW
Mujtaba S SergiSpainAsiya Javayant QUALIFIED
Morrow O CampainFranceXuxue Feng NEW
Misaki Z PerinUnited KingdomXuxue Feng PROPOSAL
Jefferson J FigeroaUnited KingdomAnna Fali PROPOSAL
Aika V DilliardFranceElwin Sharvill PROPOSAL
Isabel J KuskoItalyStephen Shaw 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>