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
Francesco H SergiGermanyElwin Sharvill NEW
Francesco Y RimRussiaBernardo Dominic NEW
Jeanfrancois O MorascaItalyStephen Shaw NEGOTIATION
Izzy K NestleIndiaElwin Sharvill PROPOSAL
Costa Z PoquetteUnited KingdomElwin Sharvill NEGOTIATION
Murillo W CaudyItalyIoni Bowcher RENEWAL
Cody Q OstroskyCanadaOnyama Limba NEGOTIATION
Jefferson Y CaudyAustraliaBernardo Dominic PROPOSAL
Jefferson D PerinItalyBernardo Dominic NEW
Jennifer W NickaBrazilOnyama Limba UNQUALIFIED
Stacey K MorascaArgentinaXuxue Feng NEGOTIATION
Tony A OldroydRussiaElwin Sharvill UNQUALIFIED
Munro O GarufiSpainBernardo Dominic UNQUALIFIED
Mujtaba R FlosiIndiaIvan Magalhaes NEGOTIATION
Jefferson Y AlbaresIndiaOnyama Limba QUALIFIED
Ashley E ChuiAustraliaBernardo Dominic RENEWAL
Cody B WieserCanadaIoni Bowcher QUALIFIED
Mujtaba W DoeArgentinaBernardo Dominic NEW
David H FollerBrazilAsiya Javayant QUALIFIED
Clifford E BologniaSpainXuxue Feng NEGOTIATION
James O VenereGermanyAnna Fali QUALIFIED
Chavez B DoeAustraliaAsiya Javayant QUALIFIED
Johnson Y MacleadCanadaBernardo Dominic QUALIFIED
Adams Y FigeroaRussiaAnna Fali PROPOSAL
Aruna T MacleadItalyBernardo Dominic NEW
Stacey E SaylorsJapanAsiya Javayant NEW
Deepesh L WhobreyItalyOnyama Limba QUALIFIED
Jones O WhobreyCanadaAnna Fali PROPOSAL
Leja M GillianArgentinaXuxue Feng NEGOTIATION
Ivar X BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Arvin I PerinIndiaIoni Bowcher PROPOSAL
Jennifer V NestleCanadaIvan Magalhaes RENEWAL
Claire L OstroskyBrazilElwin Sharvill NEW
Aditya S BriddickGermanyBernardo Dominic NEW
Leja A WaycottFranceXuxue Feng NEGOTIATION
Misaki E ButtAustraliaBernardo Dominic NEGOTIATION
Maisha U WaycottUnited KingdomIoni Bowcher UNQUALIFIED
Jeanfrancois J FollerIndiaXuxue Feng QUALIFIED
Murillo E VocelkaCanadaElwin Sharvill NEGOTIATION
Mujtaba B StockhamUnited KingdomBernardo Dominic NEW
Ashley B MacleadGermanyXuxue Feng PROPOSAL
Misaki T CaudyBrazilBernardo Dominic PROPOSAL
Johnson U ChuiUnited KingdomBernardo Dominic NEW
Leja M BriddickRussiaAnna Fali NEW
Murillo E BriddickArgentinaAmy Elsner NEGOTIATION
Morrow I BologniaJapanStephen Shaw NEGOTIATION
Deepesh B VenereArgentinaIvan Magalhaes RENEWAL
Arvin T FigeroaSpainStephen Shaw NEW
Claire R MaletIndiaAsiya Javayant NEGOTIATION
Silvio K ShinkoBrazilXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez Q ChuiRussiaIoni Bowcher QUALIFIED
Tony I VenereUnited KingdomIvan Magalhaes NEW
Izzy N GlickSpainElwin Sharvill RENEWAL
Smith G CampainRussiaAmy Elsner PROPOSAL
Smith B OldroydUnited KingdomIoni Bowcher UNQUALIFIED
Leja Y WaycottAustraliaStephen Shaw QUALIFIED
Johnson C FigeroaJapanIoni Bowcher NEW
Emily V ChuiItalyAmy Elsner NEGOTIATION
Kaitlin P StensethGermanyXuxue Feng QUALIFIED
Mayumi Y GlickFranceElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody M GauchoFrance2024-03-20Chanay, Jeffrey A Esq PROPOSAL14Amy Elsner
1001James Z RulapaughItaly2024-03-21Rousseaux, Michael Esq UNQUALIFIED38Xuxue Feng
1002Claire A WhobreyIndia2024-03-05Chemel, James L Cpa NEGOTIATION78Asiya Javayant
1003Kadeem Y ChuiItaly2024-03-21Morlong Associates NEGOTIATION86Bernardo Dominic
1004Salvatore D StockhamIndia2024-03-13Chapman, Ross E Esq QUALIFIED65Ivan Magalhaes
1005Morrow Q MarrierJapan2024-03-16Truhlar And Truhlar Attys NEGOTIATION7Elwin Sharvill
1006Tony B MorascaFrance2024-03-03Truhlar And Truhlar Attys RENEWAL88Onyama Limba
1007Arvin F GlickJapan2024-03-08Chemel, James L Cpa RENEWAL67Xuxue Feng
1008Leon Y NickaBrazil2024-03-20King, Christopher A Esq QUALIFIED22Ivan Magalhaes
1009Leon L SaylorsItaly2024-03-02Rangoni Of Florence NEW16Anna Fali
1010Johnson F GarufiUnited Kingdom2024-03-20Morlong Associates RENEWAL64Elwin Sharvill
1011Kaitlin M ChuiAustralia2024-03-15Dorl, James J Esq RENEWAL64Asiya Javayant
1012Faith D GlickArgentina2024-03-13Truhlar And Truhlar Attys PROPOSAL3Ioni Bowcher
1013Arvin M OldroydRussia2024-03-13Rangoni Of Florence RENEWAL5Ivan Magalhaes
1014Juan K BologniaJapan2024-03-13Chapman, Ross E Esq NEW98Xuxue Feng
1015Mujtaba B RulapaughGermany2024-03-04Chapman, Ross E Esq UNQUALIFIED80Elwin Sharvill
1016Sinclair Q RoysterArgentina2024-03-10Printing Dimensions NEW81Elwin Sharvill
1017Clifford B VocelkaCanada2024-03-04Chapman, Ross E Esq RENEWAL30Onyama Limba
1018Leon D ShinkoJapan2024-03-04Rangoni Of Florence NEGOTIATION8Asiya Javayant
1019Maria G RoysterFrance2024-03-26Commercial Press UNQUALIFIED41Anna Fali
1020Kaitlin B KolmetzSpain2024-03-21Dorl, James J Esq PROPOSAL81Amy Elsner
1021Smith Q ShinkoSpain2024-03-10Chapman, Ross E Esq UNQUALIFIED75Amy Elsner
1022Francesco T KolmetzJapan2024-03-22Rousseaux, Michael Esq NEGOTIATION60Ivan Magalhaes
1023Rodrigues G MarrierCanada2024-03-27Morlong Associates QUALIFIED92Ivan Magalhaes
1024Ashley Z AmigonCanada2024-03-08Chapman, Ross E Esq PROPOSAL34Xuxue Feng
1025Leon Y PaprockiArgentina2024-03-21Buckley Miller Wright QUALIFIED19Bernardo Dominic
1026Sinclair W TollnerItaly2024-02-29Benton, John B Jr PROPOSAL97Elwin Sharvill
1027Emily R PoquetteSpain2024-03-15Rousseaux, Michael Esq PROPOSAL49Amy Elsner
1028Johnson T PaprockiCanada2024-03-04Morlong Associates NEW20Asiya Javayant
1029Mayumi Z NestleIndia2024-03-12Commercial Press UNQUALIFIED63Bernardo Dominic
1030Salvatore A NestleAustralia2024-03-26Chapman, Ross E Esq NEW34Anna Fali
1031Isabel H FigeroaCanada2024-03-23Benton, John B Jr PROPOSAL17Anna Fali
1032Maria Y VenereItaly2024-03-08Morlong Associates NEGOTIATION61Anna Fali
1033Aditya A CaudyItaly2024-03-15Morlong Associates RENEWAL82Ioni Bowcher
1034Murillo D WhobreyCanada2024-03-15Rangoni Of Florence PROPOSAL76Ivan Magalhaes
1035Kaitlin U VocelkaItaly2024-03-20Chemel, James L Cpa NEGOTIATION3Ioni Bowcher
1036Leon O TollnerGermany2024-03-09Printing Dimensions PROPOSAL66Xuxue Feng
1037Isabel D FerenczAustralia2024-02-29Chanay, Jeffrey A Esq NEGOTIATION64Asiya Javayant
1038Mayumi S StensethAustralia2024-03-20Printing Dimensions RENEWAL90Anna Fali
1039Arvin R FlosiJapan2024-03-07King, Christopher A Esq NEW44Onyama Limba
1040Alejandro B DarakjyRussia2024-03-20King, Christopher A Esq PROPOSAL58Xuxue Feng
1041Smith Q RoysterSpain2024-03-02Truhlar And Truhlar Attys RENEWAL65Onyama Limba
1042Aditya A SaylorsUnited Kingdom2024-03-09Feltz Printing Service PROPOSAL8Ioni Bowcher
1043Rodrigues K AlbaresGermany2024-03-22King, Christopher A Esq RENEWAL51Amy Elsner
1044Ivar H SergiAustralia2024-03-20Rousseaux, Michael Esq QUALIFIED11Ivan Magalhaes
1045Silvio D KolmetzGermany2024-03-16Chemel, James L Cpa PROPOSAL7Bernardo Dominic
1046Kadeem L StockhamGermany2024-03-12Chapman, Ross E Esq RENEWAL97Xuxue Feng
1047Aika V DilliardUnited Kingdom2024-03-22Commercial Press RENEWAL18Ivan Magalhaes
1048Maria V MarrierCanada2024-03-03Rangoni Of Florence PROPOSAL99Amy Elsner
1049Salvatore F GarufiUnited Kingdom2024-03-10Rangoni Of Florence NEGOTIATION82Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Smith O IturbideCanadaStephen Shaw NEW
Johnson P GillianAustraliaElwin Sharvill PROPOSAL
Cody B InouyeUnited KingdomIvan Magalhaes NEW
Julie V PerinIndiaBernardo Dominic NEW
Sinclair X DilliardUnited KingdomAnna Fali UNQUALIFIED
Francesco I SlusarskiRussiaElwin Sharvill PROPOSAL
Wickens R ButtRussiaAmy Elsner NEGOTIATION
Murillo Q BologniaJapanAmy Elsner NEGOTIATION
Antonio X RimFranceOnyama Limba QUALIFIED
Jennifer L IturbideUnited KingdomAmy Elsner NEGOTIATION
Juan Q OstroskyRussiaAsiya Javayant UNQUALIFIED
Julie A FigeroaSpainAnna Fali UNQUALIFIED
Maria D SchemmerGermanyXuxue Feng PROPOSAL
Maisha J RutaBrazilAsiya Javayant RENEWAL
Octavia Y NestleGermanyAnna Fali NEGOTIATION
Jefferson D FollerUnited KingdomOnyama Limba NEGOTIATION
Ricardo M AlbaresJapanXuxue Feng RENEWAL
Murillo O StensethItalyBernardo Dominic NEW
Emily H WhobreyAustraliaIvan Magalhaes QUALIFIED
Julie H NickaFranceOnyama Limba PROPOSAL
Sinclair N KuskoCanadaElwin Sharvill NEGOTIATION
Antonio J StockhamJapanStephen Shaw UNQUALIFIED
Maisha B VenereIndiaAsiya Javayant PROPOSAL
Faith L WaycottRussiaAsiya Javayant NEW
Misaki H SchemmerArgentinaXuxue Feng QUALIFIED
Aika H IturbideBrazilBernardo Dominic QUALIFIED
Faith Y PaprockiAustraliaStephen Shaw QUALIFIED
Chavez Y GarufiIndiaIvan Magalhaes RENEWAL
Arvin H SlusarskiJapanIvan Magalhaes NEGOTIATION
Maria U OstroskyArgentinaOnyama Limba RENEWAL
Leja T KolmetzIndiaAsiya Javayant PROPOSAL
Aruna H FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Faith K RulapaughIndiaAsiya Javayant NEW
Munro M DoeUnited KingdomOnyama Limba PROPOSAL
Antonio D WaycottAustraliaIvan Magalhaes NEGOTIATION
Leja Y MorascaSpainAnna Fali UNQUALIFIED
Claire B DilliardArgentinaIoni Bowcher QUALIFIED
Jennifer L SaylorsGermanyAnna Fali RENEWAL
Mujtaba V NestleBrazilElwin Sharvill RENEWAL
Jeanfrancois U VenereSpainAsiya Javayant RENEWAL
Wickens Q MorascaSpainAsiya Javayant UNQUALIFIED
Darci P CaudyArgentinaAmy Elsner PROPOSAL
Misaki R WieserGermanyAnna Fali UNQUALIFIED
Smith R StockhamUnited KingdomXuxue Feng PROPOSAL
Juan M SergiBrazilStephen Shaw NEGOTIATION
Adams F DoeBrazilAnna Fali RENEWAL
Morrow O MarrierCanadaAnna Fali NEW
Arvin G CaldareraBrazilStephen Shaw NEGOTIATION
Johnson N RutaSpainAsiya Javayant QUALIFIED
Chavez T GauchoItalyXuxue Feng QUALIFIED
Frozen Columns
Name
Mayumi D Caldarera
Jones B Vocelka
Claire N Amigon
Izzy G Vocelka
Julie U Inouye
Stacey B Maclead
Rodrigues M Maclead
Rodrigues U Malet
Francesco I Chui
Johnson W Slusarski
Tony L Tollner
Munro N Caldarera
Sinclair B Foller
Kaitlin V Slusarski
Kadeem P Iturbide
Jennifer U Malet
Clifford L Dilliard
Aruna N Schemmer
David Q Caudy
Faith U Iturbide
Julie U Albares
Faith K Malet
Clifford O Schemmer
Maisha X Paprocki
Clifford J Kolmetz
David I Campain
Octavia G Butt
Jennifer R Ruta
Kaitlin L Foller
Antonio W Poquette
Claire X Foller
Leja Q Amigon
Darci Z Ruta
Clifford O Iturbide
Stacey W Dilliard
Leja J Perin
Mayumi N Malet
Kaitlin D Stenseth
Ivar Q Ferencz
Mujtaba B Garufi
Leja C Malet
Costa V Rim
Antonio C Caldarera
Misaki R Ruta
Nicolas V Stockham
Isabel H Foller
Smith H Ostrosky
Costa A Flosi
James X Schemmer
Juan V Nicka
IdCountryDate
1000Australia2024-03-25
1001Australia2024-02-28
1002India2024-03-11
1003India2024-03-13
1004India2024-03-08
1005Italy2024-02-28
1006Canada2024-02-28
1007Germany2024-03-04
1008United Kingdom2024-03-19
1009United Kingdom2024-03-13
1010Brazil2024-03-05
1011Argentina2024-03-18
1012United Kingdom2024-03-22
1013Canada2024-03-17
1014Germany2024-03-17
1015Spain2024-03-14
1016India2024-03-11
1017Germany2024-03-14
1018Spain2024-02-28
1019Argentina2024-03-03
1020Australia2024-03-16
1021Germany2024-03-20
1022Russia2024-03-27
1023Italy2024-03-14
1024India2024-03-03
1025France2024-03-05
1026India2024-03-25
1027India2024-03-19
1028Germany2024-03-01
1029Argentina2024-03-08
1030Canada2024-03-03
1031France2024-03-19
1032Germany2024-03-13
1033Spain2024-03-14
1034Canada2024-03-11
1035Canada2024-02-28
1036Italy2024-03-18
1037Russia2024-03-14
1038Brazil2024-03-17
1039Argentina2024-03-19
1040India2024-03-11
1041Russia2024-03-27
1042Spain2024-02-29
1043Argentina2024-03-22
1044Germany2024-03-07
1045France2024-02-28
1046Argentina2024-03-27
1047Spain2024-03-15
1048India2024-03-06
1049Canada2024-03-09

On-Demand Data

NameIdCountryDate
Alejandro J Campain1000Germany2024-03-08
Mujtaba Q Caudy1001Canada2024-03-06
Kaitlin Q Doe1002France2024-03-22
Isabel V Nestle1003India2024-03-26
Maria Y Kolmetz1004Germany2024-03-02
Leon R Marrier1005India2024-03-15
Leja A Tollner1006France2024-03-26
Maria M Rim1007Germany2024-03-02
Costa A Kolmetz1008United Kingdom2024-03-21
Ricardo E Morasca1009Canada2024-03-03
Silvio R Campain1010Argentina2024-03-18
Murillo L Kusko1011France2024-02-28
Mayumi Y Tollner1012Italy2024-03-15
Mujtaba V Nestle1013India2024-03-19
Costa M Saylors1014Italy2024-03-04
Maria R Caldarera1015Spain2024-03-15
Greenwood P Oldroyd1016Argentina2024-03-22
Leon C Venere1017Russia2024-03-17
Clifford J Slusarski1018Australia2024-03-26
Rodrigues X Inouye1019Canada2024-03-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar A FollerGermanyIoni Bowcher UNQUALIFIED
Murillo O CaldareraItalyOnyama Limba RENEWAL
Francesco M MarrierJapanElwin Sharvill QUALIFIED
Rodrigues X FollerJapanAmy Elsner NEW
Wickens N ChuiGermanyIvan Magalhaes RENEWAL
Stacey K CampainBrazilAsiya Javayant UNQUALIFIED
Tony B ChuiItalyAnna Fali PROPOSAL
Alejandro T BriddickUnited KingdomIoni Bowcher QUALIFIED
Izzy B VenereBrazilAmy Elsner PROPOSAL
Ashley Q TollnerAustraliaBernardo Dominic UNQUALIFIED
Izzy X NestleRussiaElwin Sharvill NEGOTIATION
Sinclair L FlosiItalyAmy Elsner QUALIFIED
Smith Y RutaFranceAsiya Javayant QUALIFIED
Ashley C StensethArgentinaAnna Fali UNQUALIFIED
Arvin L ShinkoGermanyOnyama Limba NEGOTIATION
Jeanfrancois V FollerAustraliaIvan Magalhaes NEGOTIATION
Octavia I ShinkoCanadaElwin Sharvill QUALIFIED
Maisha E InouyeItalyElwin Sharvill RENEWAL
Clifford D OstroskyItalyIoni Bowcher NEW
Murillo M FlosiBrazilBernardo Dominic NEGOTIATION
Ashley G TollnerBrazilIvan Magalhaes NEW
Arvin W SaylorsGermanyAnna Fali QUALIFIED
Mujtaba T MarrierSpainBernardo Dominic QUALIFIED
Faith K KuskoIndiaOnyama Limba QUALIFIED
Salvatore U FigeroaUnited KingdomXuxue Feng QUALIFIED
Claire X GillianCanadaElwin Sharvill PROPOSAL
Clifford K PoquetteRussiaIvan Magalhaes NEW
Isabel M TollnerRussiaIoni Bowcher NEGOTIATION
Chavez Z SlusarskiIndiaAnna Fali NEW
Costa P CaldareraFranceElwin Sharvill PROPOSAL
Cody C GarufiUnited KingdomAsiya Javayant NEGOTIATION
Murillo P KolmetzIndiaStephen Shaw PROPOSAL
Ivar Y StockhamUnited KingdomAmy Elsner PROPOSAL
Julie K CaudyArgentinaXuxue Feng UNQUALIFIED
Munro M SaylorsBrazilXuxue Feng PROPOSAL
Isabel C BowleyArgentinaBernardo Dominic RENEWAL
Costa B RoysterRussiaIoni Bowcher QUALIFIED
Nicolas Q VocelkaBrazilXuxue Feng NEW
Aruna H MaletItalyElwin Sharvill RENEWAL
Aditya X VocelkaSpainElwin Sharvill QUALIFIED

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