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
Stacey C RulapaughArgentinaOnyama Limba RENEWAL
Sinclair Y FollerJapanOnyama Limba NEW
Ivar H FollerIndiaAnna Fali PROPOSAL
Jones D KolmetzItalyAnna Fali NEGOTIATION
Mujtaba K BriddickRussiaOnyama Limba RENEWAL
Nicolas A BologniaUnited KingdomXuxue Feng UNQUALIFIED
Aika R SlusarskiUnited KingdomOnyama Limba UNQUALIFIED
David P CampainItalyIvan Magalhaes NEGOTIATION
Julie T MacleadAustraliaElwin Sharvill PROPOSAL
Chavez D VocelkaSpainAsiya Javayant NEGOTIATION
Claire Q PoquetteSpainAmy Elsner QUALIFIED
Munro M OldroydItalyOnyama Limba UNQUALIFIED
Arvin O MaletSpainStephen Shaw RENEWAL
Ivar R FerenczRussiaIoni Bowcher QUALIFIED
Leja L FigeroaRussiaBernardo Dominic UNQUALIFIED
Kaitlin N WhobreyRussiaBernardo Dominic NEW
Rodrigues O DilliardSpainElwin Sharvill PROPOSAL
Murillo H OstroskyUnited KingdomStephen Shaw UNQUALIFIED
Clifford S OldroydArgentinaStephen Shaw NEW
Claire E SaylorsAustraliaAnna Fali NEW
Maria Q KolmetzJapanXuxue Feng NEGOTIATION
James Q SergiBrazilIoni Bowcher NEW
Silvio O GlickItalyBernardo Dominic NEW
Darci V SlusarskiCanadaElwin Sharvill NEGOTIATION
Jones Z AmigonCanadaAmy Elsner NEW
Chavez C BowleyUnited KingdomAmy Elsner PROPOSAL
Claire T TollnerUnited KingdomBernardo Dominic UNQUALIFIED
Aika X KuskoUnited KingdomStephen Shaw RENEWAL
Salvatore F MarrierFranceIoni Bowcher UNQUALIFIED
Leja R WieserUnited KingdomIvan Magalhaes NEGOTIATION
Kadeem N BowleyFranceOnyama Limba QUALIFIED
Silvio R NestleBrazilAsiya Javayant NEGOTIATION
Kaitlin X FollerRussiaStephen Shaw NEW
Jennifer U TollnerArgentinaIoni Bowcher PROPOSAL
Emily V SlusarskiIndiaXuxue Feng UNQUALIFIED
Ashley O RoysterIndiaAmy Elsner QUALIFIED
Greenwood K VenereAustraliaAnna Fali RENEWAL
Tony K FerenczCanadaXuxue Feng UNQUALIFIED
Arvin K RimIndiaAnna Fali PROPOSAL
Jennifer X OstroskyBrazilIvan Magalhaes NEW
Ricardo T StockhamUnited KingdomXuxue Feng NEGOTIATION
Jefferson L PoquetteArgentinaIvan Magalhaes UNQUALIFIED
James C CaudySpainBernardo Dominic QUALIFIED
Cody B CampainBrazilStephen Shaw NEGOTIATION
Kadeem S KolmetzUnited KingdomAmy Elsner QUALIFIED
Octavia O MarrierBrazilStephen Shaw PROPOSAL
Ricardo L PaprockiGermanyAmy Elsner NEGOTIATION
Leja L ShinkoRussiaAsiya Javayant NEGOTIATION
Greenwood A CampainArgentinaOnyama Limba PROPOSAL
Jones R AmigonRussiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ivar D FigeroaFranceOnyama Limba NEW
Aika Y ShinkoArgentinaStephen Shaw NEW
Johnson R GarufiIndiaIoni Bowcher PROPOSAL
Ashley H FerenczGermanyIoni Bowcher QUALIFIED
Morrow F DoeArgentinaElwin Sharvill NEW
Chavez J WaycottRussiaIoni Bowcher NEGOTIATION
Silvio F ButtBrazilAnna Fali PROPOSAL
Faith M OldroydJapanAnna Fali UNQUALIFIED
Leja H SchemmerAustraliaStephen Shaw UNQUALIFIED
Alejandro D BriddickBrazilElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin B GlickIndia2024-04-14Feltz Printing Service QUALIFIED56Asiya Javayant
1001Silvio I FollerGermany2024-04-23Feltz Printing Service PROPOSAL43Asiya Javayant
1002Jennifer H GlickBrazil2024-04-07Feltz Printing Service QUALIFIED68Stephen Shaw
1003Antonio X MaletBrazil2024-04-23Truhlar And Truhlar Attys NEGOTIATION80Asiya Javayant
1004Ashley Z CampainJapan2024-04-04Chemel, James L Cpa UNQUALIFIED79Anna Fali
1005Aditya Z MaletItaly2024-04-11Rangoni Of Florence PROPOSAL61Onyama Limba
1006Ashley L MarrierUnited Kingdom2024-03-31Rangoni Of Florence PROPOSAL39Anna Fali
1007James V WhobreyUnited Kingdom2024-04-01Chanay, Jeffrey A Esq PROPOSAL86Stephen Shaw
1008James I StensethUnited Kingdom2024-04-14Commercial Press QUALIFIED74Onyama Limba
1009Murillo V VenereRussia2024-04-18Morlong Associates PROPOSAL65Onyama Limba
1010Murillo L MaletSpain2024-04-02Dorl, James J Esq NEW3Asiya Javayant
1011Jefferson J DarakjyJapan2024-04-25Chanay, Jeffrey A Esq NEGOTIATION72Elwin Sharvill
1012Leja Y CaudyCanada2024-04-20Chanay, Jeffrey A Esq UNQUALIFIED77Anna Fali
1013Isabel I SlusarskiFrance2024-04-04Rousseaux, Michael Esq NEW91Stephen Shaw
1014Aika J FollerFrance2024-04-01Morlong Associates RENEWAL69Ioni Bowcher
1015Faith Z RutaItaly2024-04-06Feltz Printing Service PROPOSAL49Ivan Magalhaes
1016Greenwood Y NickaItaly2024-03-29Rousseaux, Michael Esq NEW55Onyama Limba
1017Smith O FlosiUnited Kingdom2024-04-19King, Christopher A Esq UNQUALIFIED6Ioni Bowcher
1018Misaki S InouyeFrance2024-04-08King, Christopher A Esq NEGOTIATION32Asiya Javayant
1019Jefferson A WaycottJapan2024-04-08Feiner Bros UNQUALIFIED95Onyama Limba
1020Claire Q RimCanada2024-04-08Printing Dimensions PROPOSAL9Amy Elsner
1021Chavez F SaylorsBrazil2024-04-25Printing Dimensions NEGOTIATION11Asiya Javayant
1022Sinclair Y GlickUnited Kingdom2024-04-18Printing Dimensions NEW8Xuxue Feng
1023Adams Q FlosiCanada2024-04-26Feiner Bros RENEWAL4Onyama Limba
1024Octavia G RulapaughJapan2024-04-04King, Christopher A Esq UNQUALIFIED6Ioni Bowcher
1025Jennifer K PaprockiUnited Kingdom2024-04-10Printing Dimensions QUALIFIED29Anna Fali
1026Juan A CaudySpain2024-04-26Truhlar And Truhlar Attys NEGOTIATION78Elwin Sharvill
1027Jeanfrancois A KuskoGermany2024-04-13Feltz Printing Service PROPOSAL80Amy Elsner
1028Francesco U CaldareraAustralia2024-04-12Chemel, James L Cpa PROPOSAL7Onyama Limba
1029Leon F DoeBrazil2024-04-22Benton, John B Jr QUALIFIED27Bernardo Dominic
1030Leja L DarakjyJapan2024-04-03Morlong Associates UNQUALIFIED70Xuxue Feng
1031Arvin V KuskoGermany2024-03-30Chemel, James L Cpa NEGOTIATION35Asiya Javayant
1032Claire E PoquetteIndia2024-04-17Benton, John B Jr PROPOSAL86Ioni Bowcher
1033Rodrigues J MarrierItaly2024-04-18Feiner Bros RENEWAL24Elwin Sharvill
1034Clifford M DoeJapan2024-04-04Chemel, James L Cpa NEW2Xuxue Feng
1035Jefferson Q NestleCanada2024-04-19Benton, John B Jr RENEWAL58Asiya Javayant
1036Murillo B MorascaBrazil2024-04-27Chanay, Jeffrey A Esq PROPOSAL44Elwin Sharvill
1037Ivar H MacleadUnited Kingdom2024-04-20Chanay, Jeffrey A Esq RENEWAL41Asiya Javayant
1038Aditya F GarufiItaly2024-04-14Benton, John B Jr UNQUALIFIED66Ivan Magalhaes
1039Leja R PerinCanada2024-04-12Printing Dimensions QUALIFIED22Anna Fali
1040Clifford M FollerItaly2024-04-20Chanay, Jeffrey A Esq RENEWAL70Asiya Javayant
1041Ivar D KolmetzGermany2024-04-05Feiner Bros NEW10Bernardo Dominic
1042Arvin I WaycottIndia2024-04-21Rousseaux, Michael Esq NEW8Ioni Bowcher
1043Emily L PoquetteCanada2024-03-29Chemel, James L Cpa RENEWAL78Stephen Shaw
1044Rodrigues S NestleRussia2024-03-31Feltz Printing Service PROPOSAL67Ivan Magalhaes
1045Tony X DilliardSpain2024-04-05King, Christopher A Esq UNQUALIFIED17Elwin Sharvill
1046Silvio I PaprockiItaly2024-04-22Dorl, James J Esq RENEWAL39Stephen Shaw
1047Rodrigues W StockhamUnited Kingdom2024-04-04Morlong Associates NEW24Bernardo Dominic
1048Darci Z DoeBrazil2024-04-17Rangoni Of Florence UNQUALIFIED74Anna Fali
1049Ashley S PoquetteRussia2024-04-13Chapman, Ross E Esq NEW86Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Nicolas R KuskoFranceXuxue Feng NEW
Stacey F FerenczGermanyAnna Fali QUALIFIED
David Y SergiJapanAsiya Javayant QUALIFIED
Johnson S GauchoRussiaIoni Bowcher NEW
Tony D CaudyUnited KingdomAsiya Javayant QUALIFIED
Mayumi Y RoysterSpainBernardo Dominic PROPOSAL
Julie U RoysterBrazilAnna Fali NEW
Salvatore M DarakjyAustraliaBernardo Dominic NEGOTIATION
Jones C StensethIndiaStephen Shaw QUALIFIED
Maisha A MarrierFranceAsiya Javayant QUALIFIED
David T SchemmerJapanElwin Sharvill QUALIFIED
Jones X CaudyRussiaBernardo Dominic NEW
Aruna H InouyeItalyStephen Shaw UNQUALIFIED
Morrow P ShinkoGermanyStephen Shaw NEGOTIATION
Jones W GlickRussiaElwin Sharvill UNQUALIFIED
Morrow P GauchoItalyAmy Elsner UNQUALIFIED
Murillo J TollnerJapanAsiya Javayant RENEWAL
Ashley I RutaArgentinaOnyama Limba QUALIFIED
Ivar A GlickIndiaElwin Sharvill UNQUALIFIED
Nicolas V FlosiJapanBernardo Dominic UNQUALIFIED
Stacey X RulapaughAustraliaIvan Magalhaes NEGOTIATION
Nicolas W CaldareraCanadaAnna Fali RENEWAL
Stacey Q CaldareraCanadaElwin Sharvill NEGOTIATION
Aika H NestleCanadaXuxue Feng NEGOTIATION
David O MorascaIndiaElwin Sharvill NEW
Aika I KuskoAustraliaStephen Shaw RENEWAL
Ivar U SaylorsAustraliaIoni Bowcher QUALIFIED
Darci D NestleIndiaElwin Sharvill NEW
Ashley T DarakjyBrazilElwin Sharvill PROPOSAL
Deepesh B DarakjyRussiaBernardo Dominic UNQUALIFIED
Faith I NickaArgentinaAmy Elsner RENEWAL
Stacey H SergiSpainXuxue Feng RENEWAL
Misaki M GarufiGermanyIoni Bowcher UNQUALIFIED
Kadeem M FigeroaItalyAmy Elsner NEW
Mujtaba X RoysterItalyAmy Elsner PROPOSAL
Johnson N MacleadRussiaAsiya Javayant RENEWAL
Greenwood J WhobreyGermanyIoni Bowcher PROPOSAL
Isabel I NestleAustraliaAnna Fali RENEWAL
James Q DilliardArgentinaIoni Bowcher QUALIFIED
Arvin U FollerAustraliaXuxue Feng UNQUALIFIED
Rodrigues I ShinkoFranceStephen Shaw UNQUALIFIED
Izzy H CaldareraUnited KingdomAmy Elsner QUALIFIED
Salvatore L IturbideJapanXuxue Feng PROPOSAL
Ricardo D PaprockiArgentinaXuxue Feng NEW
Alejandro E CampainGermanyAmy Elsner UNQUALIFIED
Ashley R BologniaAustraliaOnyama Limba UNQUALIFIED
Aruna T StockhamIndiaBernardo Dominic UNQUALIFIED
Chavez S BowleyGermanyAmy Elsner PROPOSAL
Izzy B StensethRussiaAnna Fali PROPOSAL
Rodrigues X AmigonFranceStephen Shaw PROPOSAL
Frozen Columns
Name
Smith L Kolmetz
Francesco J Vocelka
Murillo G Poquette
Jeanfrancois R Caudy
Cody W Albares
Chavez R Ruta
Antonio J Stockham
Arvin U Whobrey
Deepesh E Royster
Leja G Gillian
Julie Y Rim
Aika G Ruta
Julie U Slusarski
David K Nicka
Aditya T Ruta
Adams A Nestle
Kadeem L Flosi
Morrow W Inouye
Maisha E Perin
Aruna E Rim
Faith X Bolognia
Emily N Morasca
Misaki P Stenseth
Faith J Rim
Aditya E Schemmer
Jeanfrancois Y Slusarski
Jeanfrancois X Campain
Greenwood F Malet
Wickens S Chui
Aruna T Saylors
Rodrigues S Schemmer
Jefferson D Ruta
Johnson O Oldroyd
Octavia L Butt
Kadeem M Wieser
Rodrigues I Amigon
Mayumi U Flosi
Smith P Ostrosky
David Y Nicka
Maisha N Vocelka
Johnson H Ruta
Jefferson I Kusko
Octavia E Oldroyd
Murillo M Malet
James Z Schemmer
Misaki S Chui
Juan W Flosi
Aika C Rim
Wickens H Doe
David A Flosi
IdCountryDate
1000Spain2024-04-06
1001Italy2024-03-31
1002India2024-04-16
1003Russia2024-04-25
1004Russia2024-04-21
1005Germany2024-04-08
1006Australia2024-04-15
1007Canada2024-04-08
1008Japan2024-04-10
1009Italy2024-04-19
1010Japan2024-04-26
1011Japan2024-04-13
1012Brazil2024-04-11
1013India2024-04-17
1014Spain2024-04-16
1015Russia2024-04-18
1016France2024-04-20
1017Russia2024-04-05
1018United Kingdom2024-04-09
1019Spain2024-04-07
1020Germany2024-04-18
1021Australia2024-03-30
1022Italy2024-04-24
1023India2024-04-04
1024Australia2024-04-26
1025United Kingdom2024-04-15
1026Germany2024-04-05
1027Spain2024-04-13
1028Russia2024-04-25
1029Australia2024-04-20
1030Japan2024-03-31
1031India2024-04-13
1032United Kingdom2024-04-11
1033Japan2024-04-08
1034Australia2024-04-08
1035Italy2024-04-05
1036United Kingdom2024-04-06
1037Italy2024-04-12
1038Brazil2024-04-16
1039Italy2024-04-12
1040Russia2024-04-04
1041Canada2024-04-10
1042Spain2024-04-15
1043Japan2024-04-21
1044United Kingdom2024-04-10
1045Italy2024-04-23
1046Germany2024-04-27
1047Australia2024-03-29
1048Japan2024-04-03
1049Russia2024-04-08

On-Demand Data

NameIdCountryDate
Mujtaba S Gaucho1000Brazil2024-03-31
Leon F Caudy1001Australia2024-04-20
Jennifer T Garufi1002Germany2024-04-16
Greenwood U Royster1003Germany2024-04-24
Munro R Ruta1004France2024-04-19
Sinclair I Garufi1005United Kingdom2024-03-31
Johnson B Dilliard1006Italy2024-04-12
Adams A Rulapaugh1007Italy2024-04-06
Munro A Maclead1008Canada2024-04-20
Stacey F Gillian1009India2024-04-14
Mujtaba J Bolognia1010Russia2024-04-08
Rodrigues C Kolmetz1011Italy2024-04-01
Silvio F Maclead1012Japan2024-03-29
Antonio M Vocelka1013Germany2024-03-31
Munro A Marrier1014Spain2024-04-01
Faith J Rulapaugh1015Japan2024-04-07
Jennifer M Poquette1016Russia2024-04-11
Costa S Perin1017Germany2024-04-26
Alejandro Y Gaucho1018Italy2024-04-11
Julie E Doe1019Canada2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha U SchemmerFranceStephen Shaw NEW
Greenwood M AlbaresIndiaIvan Magalhaes QUALIFIED
Jeanfrancois F WieserIndiaStephen Shaw RENEWAL
Morrow L SchemmerSpainAsiya Javayant UNQUALIFIED
Alejandro I ShinkoFranceAsiya Javayant PROPOSAL
Deepesh G IturbideArgentinaAsiya Javayant RENEWAL
Izzy J KolmetzRussiaOnyama Limba UNQUALIFIED
Darci E DilliardAustraliaXuxue Feng NEGOTIATION
Stacey S MarrierUnited KingdomAmy Elsner NEGOTIATION
Alejandro I PaprockiRussiaXuxue Feng QUALIFIED
Jeanfrancois A InouyeGermanyIvan Magalhaes UNQUALIFIED
Nicolas Q RulapaughCanadaBernardo Dominic UNQUALIFIED
Ashley J WaycottBrazilIoni Bowcher NEW
Mujtaba U FigeroaJapanIoni Bowcher NEGOTIATION
Deepesh A FollerFranceOnyama Limba RENEWAL
Morrow Z ShinkoBrazilXuxue Feng NEGOTIATION
Mayumi T AlbaresBrazilIvan Magalhaes QUALIFIED
Alejandro W BriddickRussiaAnna Fali NEW
Deepesh U StockhamGermanyBernardo Dominic NEW
Izzy X RimIndiaIoni Bowcher NEGOTIATION
Misaki D GauchoItalyXuxue Feng NEW
Silvio H IturbideGermanyOnyama Limba PROPOSAL
Claire T GauchoIndiaElwin Sharvill NEGOTIATION
Nicolas Y CampainCanadaAmy Elsner NEGOTIATION
Claire M VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Claire T SchemmerBrazilAmy Elsner NEGOTIATION
Mayumi I StockhamRussiaIvan Magalhaes NEW
Antonio K SergiCanadaIoni Bowcher NEGOTIATION
Ivar R BriddickBrazilXuxue Feng NEW
David U NickaArgentinaXuxue Feng NEW
Maisha Q WaycottUnited KingdomAmy Elsner NEW
Munro H RimRussiaIoni Bowcher NEW
Julie K PaprockiJapanIoni Bowcher NEW
Julie Q WhobreyUnited KingdomIvan Magalhaes QUALIFIED
Emily X BologniaAustraliaBernardo Dominic QUALIFIED
Emily I NickaJapanIoni Bowcher NEGOTIATION
Misaki A VenereSpainElwin Sharvill PROPOSAL
Maisha X GlickCanadaStephen Shaw NEW
Jones D MarrierCanadaAsiya Javayant QUALIFIED
Morrow E GauchoRussiaIoni Bowcher UNQUALIFIED

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