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
Izzy K CaldareraRussiaAsiya Javayant UNQUALIFIED
Aika L CaudyItalyAnna Fali NEGOTIATION
Clifford J GlickAustraliaAnna Fali UNQUALIFIED
Rodrigues W FigeroaUnited KingdomBernardo Dominic NEW
Antonio Q VenereBrazilStephen Shaw NEGOTIATION
Emily A RutaItalyStephen Shaw QUALIFIED
Jennifer U TollnerArgentinaIvan Magalhaes QUALIFIED
Jeanfrancois F OldroydJapanElwin Sharvill NEW
Ricardo U VenereArgentinaAmy Elsner RENEWAL
Juan O GauchoUnited KingdomOnyama Limba QUALIFIED
Munro E BriddickGermanyIoni Bowcher PROPOSAL
Julie F StockhamBrazilAsiya Javayant NEW
Juan D SchemmerAustraliaOnyama Limba RENEWAL
Ivar S MarrierCanadaStephen Shaw RENEWAL
Arvin X PaprockiSpainXuxue Feng NEGOTIATION
Isabel V SaylorsUnited KingdomBernardo Dominic QUALIFIED
Aika A WhobreyFranceOnyama Limba NEGOTIATION
Kadeem X NickaAustraliaBernardo Dominic NEW
Leon G AlbaresGermanyAnna Fali NEGOTIATION
Aika C ShinkoArgentinaOnyama Limba NEGOTIATION
Julie G GlickArgentinaOnyama Limba NEW
Antonio D DoeSpainBernardo Dominic NEGOTIATION
Arvin Q GarufiArgentinaAmy Elsner NEW
Juan J NestleFranceIoni Bowcher NEGOTIATION
Sinclair X BologniaIndiaOnyama Limba RENEWAL
Juan E GlickItalyAsiya Javayant PROPOSAL
Chavez J MaletSpainElwin Sharvill NEGOTIATION
James S AmigonItalyAsiya Javayant QUALIFIED
Ivar D BriddickBrazilAmy Elsner NEW
Jones N SchemmerArgentinaBernardo Dominic QUALIFIED
Wickens T BriddickArgentinaAnna Fali NEW
Darci K IturbideUnited KingdomAnna Fali NEGOTIATION
Adams D NickaRussiaAmy Elsner UNQUALIFIED
Smith X MacleadGermanyOnyama Limba QUALIFIED
Munro J PaprockiUnited KingdomAnna Fali QUALIFIED
Aika M NestleRussiaIvan Magalhaes RENEWAL
Morrow S OstroskyBrazilIoni Bowcher RENEWAL
Isabel S OldroydBrazilIoni Bowcher NEGOTIATION
Sinclair W BowleyFranceAsiya Javayant NEGOTIATION
Salvatore R DarakjyFranceIvan Magalhaes RENEWAL
Jones H WieserFranceOnyama Limba RENEWAL
Costa V OldroydItalyAmy Elsner UNQUALIFIED
Izzy I FollerUnited KingdomAsiya Javayant RENEWAL
Aditya I MacleadRussiaXuxue Feng RENEWAL
Aika W TollnerIndiaElwin Sharvill PROPOSAL
Smith U BowleyRussiaIoni Bowcher UNQUALIFIED
Kadeem V StockhamUnited KingdomAsiya Javayant NEGOTIATION
Deepesh U SaylorsBrazilAsiya Javayant NEW
Wickens C SergiCanadaAmy Elsner NEW
Isabel P DilliardAustraliaAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Darci A CampainItalyOnyama Limba NEW
Ashley N CaudyArgentinaAmy Elsner RENEWAL
Darci C RimBrazilIvan Magalhaes NEGOTIATION
Ricardo S OstroskyGermanyAnna Fali NEW
Aditya I MaletAustraliaBernardo Dominic NEW
Alejandro Q BologniaUnited KingdomIoni Bowcher RENEWAL
Octavia M WaycottJapanElwin Sharvill NEW
Maisha P PerinAustraliaIvan Magalhaes RENEWAL
Tony F FigeroaJapanIvan Magalhaes QUALIFIED
Sinclair F RimFranceAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas P KuskoItaly2024-04-28Buckley Miller Wright UNQUALIFIED71Elwin Sharvill
1001Murillo Y NickaSpain2024-04-15Buckley Miller Wright UNQUALIFIED52Elwin Sharvill
1002Munro R StockhamGermany2024-04-05Feiner Bros QUALIFIED24Bernardo Dominic
1003Francesco H BowleyBrazil2024-04-06Benton, John B Jr NEW6Asiya Javayant
1004Ivar S ChuiItaly2024-04-20Rousseaux, Michael Esq NEW20Xuxue Feng
1005Kaitlin A TollnerSpain2024-04-12Chapman, Ross E Esq RENEWAL4Onyama Limba
1006Deepesh G TollnerArgentina2024-04-13Rousseaux, Michael Esq NEW93Bernardo Dominic
1007Murillo G MarrierJapan2024-04-14Commercial Press RENEWAL7Anna Fali
1008Darci I MarrierAustralia2024-04-22Feltz Printing Service PROPOSAL34Elwin Sharvill
1009Aditya O GarufiItaly2024-04-22King, Christopher A Esq NEGOTIATION62Xuxue Feng
1010Adams F GillianAustralia2024-04-19Buckley Miller Wright NEGOTIATION50Elwin Sharvill
1011Costa G MacleadItaly2024-04-05Chanay, Jeffrey A Esq PROPOSAL99Elwin Sharvill
1012Juan R OstroskyGermany2024-04-16Benton, John B Jr PROPOSAL80Asiya Javayant
1013Salvatore P SlusarskiFrance2024-04-24Chemel, James L Cpa UNQUALIFIED43Stephen Shaw
1014Clifford H MaletBrazil2024-04-24Chapman, Ross E Esq PROPOSAL15Amy Elsner
1015Chavez M CaudyUnited Kingdom2024-04-24Feiner Bros NEW4Elwin Sharvill
1016Alejandro N VocelkaItaly2024-04-18Morlong Associates QUALIFIED34Elwin Sharvill
1017Stacey S GarufiIndia2024-04-07Chapman, Ross E Esq NEGOTIATION14Anna Fali
1018Maria Q KuskoGermany2024-04-12Benton, John B Jr RENEWAL71Ioni Bowcher
1019Juan T CaudyUnited Kingdom2024-04-28Feiner Bros QUALIFIED87Onyama Limba
1020Octavia K SlusarskiFrance2024-04-23Truhlar And Truhlar Attys NEW48Asiya Javayant
1021Morrow N BowleyGermany2024-04-05Commercial Press QUALIFIED99Amy Elsner
1022Cody K AlbaresUnited Kingdom2024-04-20Feiner Bros PROPOSAL44Xuxue Feng
1023Mayumi V GlickFrance2024-04-03King, Christopher A Esq QUALIFIED64Ivan Magalhaes
1024Julie F GauchoAustralia2024-04-15Feltz Printing Service QUALIFIED82Xuxue Feng
1025Misaki B PaprockiJapan2024-04-09Feltz Printing Service QUALIFIED61Elwin Sharvill
1026Jefferson C OstroskySpain2024-04-05Rousseaux, Michael Esq UNQUALIFIED40Elwin Sharvill
1027Salvatore N InouyeSpain2024-04-15Feiner Bros NEGOTIATION92Ioni Bowcher
1028Misaki W MaletAustralia2024-04-01Feiner Bros UNQUALIFIED71Bernardo Dominic
1029Ashley Y IturbideJapan2024-04-18Buckley Miller Wright UNQUALIFIED64Bernardo Dominic
1030Julie C VocelkaAustralia2024-04-21Rousseaux, Michael Esq NEW46Ioni Bowcher
1031Aika V RimCanada2024-03-31Morlong Associates RENEWAL16Ioni Bowcher
1032Smith C AmigonUnited Kingdom2024-03-30Chapman, Ross E Esq RENEWAL0Elwin Sharvill
1033Leja K NickaGermany2024-04-25Feltz Printing Service QUALIFIED87Onyama Limba
1034Deepesh B MorascaSpain2024-04-26Morlong Associates QUALIFIED31Amy Elsner
1035Murillo H StensethAustralia2024-04-09Rangoni Of Florence NEW38Xuxue Feng
1036Murillo Q WhobreyUnited Kingdom2024-04-15Rangoni Of Florence RENEWAL33Xuxue Feng
1037Jennifer L BriddickRussia2024-04-26Rangoni Of Florence NEW77Anna Fali
1038Stacey Y BriddickJapan2024-04-01Dorl, James J Esq QUALIFIED93Elwin Sharvill
1039James V BriddickFrance2024-04-25Feiner Bros QUALIFIED34Elwin Sharvill
1040Julie B WieserRussia2024-04-09King, Christopher A Esq PROPOSAL52Amy Elsner
1041Nicolas Z SaylorsFrance2024-04-11Feiner Bros QUALIFIED92Amy Elsner
1042Jennifer E AmigonGermany2024-04-25Morlong Associates PROPOSAL19Amy Elsner
1043Morrow J RulapaughUnited Kingdom2024-04-04Commercial Press NEGOTIATION7Onyama Limba
1044Emily P SaylorsSpain2024-04-13Buckley Miller Wright UNQUALIFIED79Amy Elsner
1045Julie P MarrierArgentina2024-04-17Buckley Miller Wright RENEWAL46Stephen Shaw
1046Antonio I KuskoAustralia2024-04-14Feltz Printing Service NEGOTIATION77Onyama Limba
1047Chavez F VocelkaJapan2024-04-11Dorl, James J Esq RENEWAL1Elwin Sharvill
1048Morrow T NestleUnited Kingdom2024-04-27Morlong Associates RENEWAL30Bernardo Dominic
1049Jennifer Z SergiJapan2024-03-31Morlong Associates PROPOSAL9Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Wickens T BologniaItalyIvan Magalhaes NEGOTIATION
Murillo B ButtFranceIvan Magalhaes NEGOTIATION
Morrow E VenereGermanyAnna Fali PROPOSAL
Jennifer Q VocelkaIndiaIvan Magalhaes RENEWAL
Jeanfrancois A IturbideSpainOnyama Limba PROPOSAL
Maria X AmigonArgentinaIoni Bowcher QUALIFIED
Leon L SergiRussiaAsiya Javayant UNQUALIFIED
Maisha S CampainCanadaAnna Fali NEGOTIATION
Deepesh M AlbaresJapanXuxue Feng NEW
Morrow R DoeGermanyOnyama Limba NEGOTIATION
Antonio C KuskoBrazilStephen Shaw RENEWAL
Chavez D MarrierFranceIvan Magalhaes RENEWAL
Kaitlin O ButtIndiaElwin Sharvill QUALIFIED
Mayumi P FigeroaAustraliaIoni Bowcher NEGOTIATION
Leja M BowleyRussiaIoni Bowcher NEW
Antonio G MaletCanadaOnyama Limba RENEWAL
Maisha V GauchoGermanyOnyama Limba NEW
Salvatore F IturbideSpainBernardo Dominic UNQUALIFIED
Emily X GauchoCanadaAsiya Javayant NEW
Octavia G GillianCanadaAmy Elsner PROPOSAL
Aditya Q FlosiRussiaElwin Sharvill PROPOSAL
Arvin J StockhamAustraliaIoni Bowcher PROPOSAL
Aditya C SchemmerJapanStephen Shaw NEGOTIATION
Maisha Q SaylorsBrazilElwin Sharvill PROPOSAL
Jeanfrancois K RimItalyXuxue Feng RENEWAL
Jefferson O SchemmerItalyElwin Sharvill NEW
Tony R GlickGermanyElwin Sharvill QUALIFIED
Kaitlin P PerinBrazilOnyama Limba RENEWAL
Clifford C AlbaresArgentinaXuxue Feng QUALIFIED
Smith R SchemmerAustraliaStephen Shaw UNQUALIFIED
Jennifer B OldroydUnited KingdomXuxue Feng QUALIFIED
Stacey P TollnerAustraliaIvan Magalhaes PROPOSAL
Juan P SlusarskiIndiaAnna Fali RENEWAL
Maisha S SlusarskiCanadaBernardo Dominic NEW
Adams J ShinkoCanadaXuxue Feng NEGOTIATION
Jeanfrancois V CaudyFranceXuxue Feng QUALIFIED
Silvio L RutaUnited KingdomBernardo Dominic RENEWAL
Francesco N NickaBrazilAsiya Javayant QUALIFIED
Greenwood P SaylorsUnited KingdomStephen Shaw NEGOTIATION
Jones P FigeroaItalyBernardo Dominic QUALIFIED
Claire Z ButtIndiaBernardo Dominic NEW
Smith K StockhamGermanyIoni Bowcher NEGOTIATION
Clifford O RutaBrazilXuxue Feng NEGOTIATION
Izzy B DilliardCanadaStephen Shaw QUALIFIED
Wickens L ButtJapanOnyama Limba UNQUALIFIED
Jeanfrancois Z GlickJapanAmy Elsner RENEWAL
Munro M ChuiCanadaStephen Shaw PROPOSAL
Maria Y FerenczRussiaElwin Sharvill NEGOTIATION
Clifford I MaletFranceIvan Magalhaes PROPOSAL
Alejandro B RoysterGermanyElwin Sharvill QUALIFIED
Frozen Columns
Name
Antonio W Oldroyd
Deepesh P Slusarski
Kadeem H Foller
Greenwood X Iturbide
Silvio K Royster
Costa G Bolognia
Clifford E Nicka
Morrow B Ruta
Salvatore M Waycott
Maria V Venere
Izzy E Whobrey
Maria X Shinko
Francesco I Perin
James A Waycott
Clifford M Morasca
Smith E Ruta
Chavez K Flosi
Johnson R Doe
Misaki A Doe
Leja D Poquette
Clifford L Schemmer
Rodrigues R Doe
Adams J Kolmetz
Antonio U Malet
Kaitlin U Perin
Greenwood H Tollner
Jefferson J Vocelka
Munro K Campain
Smith S Albares
Tony R Shinko
Ivar C Kolmetz
Emily P Vocelka
Jennifer N Schemmer
Misaki W Stenseth
Maisha V Butt
Greenwood C Waycott
Emily R Poquette
Aruna H Dilliard
Jones Q Royster
Isabel J Caldarera
Aruna B Rim
Darci N Chui
Ashley P Gillian
Cody L Albares
Sinclair Z Bolognia
David Y Royster
Chavez I Amigon
Arvin M Vocelka
Morrow M Waycott
Isabel B Inouye
IdCountryDate
1000India2024-04-24
1001Argentina2024-04-06
1002India2024-03-31
1003France2024-04-10
1004Russia2024-04-14
1005Spain2024-04-17
1006France2024-04-11
1007Spain2024-04-11
1008Spain2024-04-12
1009Argentina2024-04-24
1010Russia2024-04-11
1011Brazil2024-04-02
1012France2024-04-05
1013Japan2024-04-20
1014United Kingdom2024-04-10
1015Australia2024-03-30
1016Germany2024-04-04
1017Argentina2024-04-05
1018Argentina2024-04-05
1019Canada2024-04-24
1020France2024-04-22
1021Brazil2024-04-26
1022Spain2024-04-15
1023Russia2024-04-14
1024Italy2024-04-02
1025Argentina2024-04-01
1026Brazil2024-03-31
1027Italy2024-04-15
1028Italy2024-04-08
1029France2024-04-24
1030Japan2024-04-27
1031Brazil2024-04-19
1032United Kingdom2024-04-28
1033Russia2024-04-04
1034Argentina2024-04-26
1035Canada2024-04-22
1036Germany2024-04-16
1037Germany2024-04-28
1038Australia2024-04-10
1039Italy2024-04-26
1040France2024-04-02
1041Brazil2024-04-19
1042United Kingdom2024-03-30
1043Brazil2024-04-02
1044Italy2024-04-04
1045Japan2024-04-13
1046Japan2024-04-27
1047Germany2024-04-06
1048Argentina2024-04-10
1049Germany2024-04-14

On-Demand Data

NameIdCountryDate
Faith C Flosi1000India2024-04-20
Munro J Flosi1001United Kingdom2024-04-05
Aditya Q Maclead1002Brazil2024-04-20
Deepesh B Ostrosky1003Italy2024-04-04
Rodrigues A Ostrosky1004France2024-04-11
Wickens M Albares1005Spain2024-04-21
Cody C Campain1006Brazil2024-04-06
Aditya K Caudy1007France2024-04-20
Murillo S Waycott1008India2024-04-07
Octavia W Foller1009Japan2024-03-30
Greenwood Q Slusarski1010France2024-04-24
Stacey S Shinko1011Australia2024-04-17
Wickens E Iturbide1012India2024-04-14
Emily I Nicka1013Australia2024-04-17
Isabel F Iturbide1014India2024-04-20
Murillo R Figeroa1015Canada2024-04-13
David E Schemmer1016United Kingdom2024-04-16
Tony S Sergi1017Russia2024-04-18
Aruna J Venere1018Japan2024-03-31
Arvin N Wieser1019Canada2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna N RimBrazilIvan Magalhaes NEGOTIATION
Alejandro M ButtRussiaBernardo Dominic NEW
Rodrigues L GauchoAustraliaAsiya Javayant PROPOSAL
Izzy W MorascaIndiaAsiya Javayant UNQUALIFIED
Antonio E MacleadJapanXuxue Feng RENEWAL
Jeanfrancois N SaylorsItalyBernardo Dominic UNQUALIFIED
Munro T StockhamGermanyAmy Elsner NEW
Leja V ButtFranceElwin Sharvill NEW
Aruna U CaldareraJapanIoni Bowcher NEGOTIATION
Ricardo H AlbaresCanadaAmy Elsner NEW
Juan C FollerUnited KingdomXuxue Feng NEW
Aditya W FollerItalyAsiya Javayant UNQUALIFIED
Juan R StockhamItalyAsiya Javayant RENEWAL
Jeanfrancois D NestleJapanBernardo Dominic NEGOTIATION
Jones T NestleIndiaElwin Sharvill NEGOTIATION
Nicolas I KolmetzGermanyOnyama Limba NEGOTIATION
Chavez X DoeFranceAsiya Javayant QUALIFIED
Kadeem Q SlusarskiIndiaStephen Shaw QUALIFIED
Salvatore U SergiSpainXuxue Feng UNQUALIFIED
Maria R RimJapanAnna Fali PROPOSAL
Isabel L StensethUnited KingdomAmy Elsner NEGOTIATION
Maisha D IturbideFranceAnna Fali NEGOTIATION
Sinclair C MarrierArgentinaIvan Magalhaes QUALIFIED
Nicolas P MacleadJapanAsiya Javayant UNQUALIFIED
Tony Z StensethJapanBernardo Dominic RENEWAL
Smith L SchemmerAustraliaXuxue Feng UNQUALIFIED
Isabel D PoquetteRussiaIoni Bowcher PROPOSAL
Claire T FollerRussiaAmy Elsner PROPOSAL
Antonio S KolmetzRussiaElwin Sharvill NEW
Maisha Y GlickFranceIvan Magalhaes PROPOSAL
Misaki Z MacleadFranceXuxue Feng QUALIFIED
David Y KolmetzGermanyXuxue Feng NEGOTIATION
Jennifer R MacleadIndiaAnna Fali PROPOSAL
Ivar D NestleAustraliaElwin Sharvill UNQUALIFIED
Stacey U GillianFranceAsiya Javayant QUALIFIED
Stacey E CaldareraRussiaOnyama Limba PROPOSAL
Silvio W MaletFranceBernardo Dominic NEGOTIATION
James Y AlbaresSpainXuxue Feng NEW
Darci K WhobreyUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues D DilliardArgentinaOnyama Limba 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>