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
Jeanfrancois S OstroskyUnited KingdomXuxue Feng NEGOTIATION
Maisha E WieserRussiaAsiya Javayant UNQUALIFIED
Stacey Q MaletSpainElwin Sharvill NEW
Jones G InouyeIndiaAsiya Javayant NEGOTIATION
Antonio S GauchoCanadaAnna Fali RENEWAL
Chavez S KuskoItalyIoni Bowcher UNQUALIFIED
Jeanfrancois O MaletItalyAnna Fali PROPOSAL
Alejandro X PoquetteGermanyElwin Sharvill UNQUALIFIED
Greenwood H DilliardSpainStephen Shaw PROPOSAL
Alejandro Q KuskoGermanyElwin Sharvill NEW
Juan M RoysterRussiaStephen Shaw QUALIFIED
Jones X ChuiFranceAsiya Javayant NEGOTIATION
Mayumi P VenereFranceAmy Elsner NEGOTIATION
Smith S PerinSpainStephen Shaw NEW
Alejandro S FlosiIndiaAmy Elsner RENEWAL
Costa U ChuiArgentinaAmy Elsner PROPOSAL
Emily A GillianRussiaOnyama Limba NEW
Aika M ButtArgentinaIoni Bowcher PROPOSAL
Izzy C StensethArgentinaElwin Sharvill QUALIFIED
Julie H DoeJapanAsiya Javayant UNQUALIFIED
Aruna R SlusarskiFranceAnna Fali RENEWAL
Ricardo U AmigonIndiaAmy Elsner PROPOSAL
Julie C GarufiBrazilXuxue Feng NEGOTIATION
Isabel E MacleadArgentinaOnyama Limba NEW
David W PerinGermanyOnyama Limba NEW
Silvio O WaycottItalyIoni Bowcher NEW
Salvatore X PoquetteAustraliaAmy Elsner RENEWAL
Jennifer R MorascaGermanyStephen Shaw NEGOTIATION
Leon V RulapaughArgentinaOnyama Limba RENEWAL
Darci B GlickRussiaIoni Bowcher NEGOTIATION
Kadeem X TollnerAustraliaStephen Shaw PROPOSAL
Sinclair R GlickBrazilAsiya Javayant NEW
Octavia U BowleyFranceElwin Sharvill QUALIFIED
Sinclair W ChuiBrazilBernardo Dominic UNQUALIFIED
James Q SchemmerRussiaIoni Bowcher NEGOTIATION
Salvatore Y ShinkoAustraliaAmy Elsner UNQUALIFIED
Aditya Y DarakjyUnited KingdomOnyama Limba UNQUALIFIED
Maria S WaycottGermanyAnna Fali UNQUALIFIED
Jeanfrancois Q GarufiRussiaOnyama Limba UNQUALIFIED
Leja Q IturbideJapanAsiya Javayant NEGOTIATION
James V ShinkoIndiaStephen Shaw QUALIFIED
Adams U RoysterBrazilIvan Magalhaes RENEWAL
Stacey T BowleyBrazilAsiya Javayant UNQUALIFIED
James G FlosiCanadaXuxue Feng RENEWAL
Jeanfrancois X CampainSpainElwin Sharvill QUALIFIED
Izzy V DilliardArgentinaStephen Shaw RENEWAL
Kaitlin O DarakjyFranceXuxue Feng RENEWAL
Smith F DilliardJapanStephen Shaw PROPOSAL
Jones I AmigonUnited KingdomAsiya Javayant PROPOSAL
Isabel M GarufiIndiaAnna Fali UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel N NickaSpainElwin Sharvill NEGOTIATION
Aditya U RulapaughSpainAnna Fali NEW
Wickens E FigeroaGermanyIoni Bowcher PROPOSAL
Jennifer X KolmetzAustraliaIoni Bowcher NEGOTIATION
Ricardo F InouyeIndiaElwin Sharvill RENEWAL
Mujtaba R SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
Murillo R SlusarskiRussiaIoni Bowcher RENEWAL
Octavia O GillianGermanyOnyama Limba PROPOSAL
David Z FerenczRussiaXuxue Feng NEW
Aditya D IturbideSpainBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin H StockhamFrance2024-04-09Printing Dimensions PROPOSAL10Ivan Magalhaes
1001Jones B TollnerJapan2024-04-05Morlong Associates NEGOTIATION48Asiya Javayant
1002Francesco D KolmetzCanada2024-04-24Feltz Printing Service UNQUALIFIED3Onyama Limba
1003Ivar X ButtAustralia2024-04-17Truhlar And Truhlar Attys RENEWAL60Elwin Sharvill
1004Stacey F WhobreyGermany2024-04-18King, Christopher A Esq NEW49Bernardo Dominic
1005Greenwood J ChuiSpain2024-04-17Buckley Miller Wright RENEWAL15Anna Fali
1006Sinclair V SchemmerUnited Kingdom2024-04-15King, Christopher A Esq NEGOTIATION64Bernardo Dominic
1007Mayumi U TollnerItaly2024-04-15Truhlar And Truhlar Attys NEGOTIATION29Stephen Shaw
1008Mujtaba N BowleyAustralia2024-04-20King, Christopher A Esq PROPOSAL33Elwin Sharvill
1009Stacey W KuskoJapan2024-04-06Rangoni Of Florence UNQUALIFIED4Amy Elsner
1010Jones A StensethRussia2024-04-15Rousseaux, Michael Esq RENEWAL81Elwin Sharvill
1011Murillo N GauchoBrazil2024-04-28Benton, John B Jr QUALIFIED82Elwin Sharvill
1012Jefferson W WhobreyCanada2024-04-29Chapman, Ross E Esq RENEWAL97Amy Elsner
1013Emily M StensethBrazil2024-04-27King, Christopher A Esq QUALIFIED61Xuxue Feng
1014Mayumi I IturbideArgentina2024-04-24Commercial Press QUALIFIED20Onyama Limba
1015Silvio F GillianUnited Kingdom2024-04-14Benton, John B Jr PROPOSAL12Onyama Limba
1016Izzy J FerenczCanada2024-04-21Chapman, Ross E Esq PROPOSAL66Ivan Magalhaes
1017Mujtaba W MaletJapan2024-04-16Buckley Miller Wright RENEWAL24Onyama Limba
1018Ricardo E OldroydRussia2024-04-07Printing Dimensions PROPOSAL32Onyama Limba
1019Faith H AlbaresIndia2024-04-27Printing Dimensions QUALIFIED69Amy Elsner
1020Jones E RutaUnited Kingdom2024-04-07Dorl, James J Esq UNQUALIFIED49Onyama Limba
1021Emily P RutaAustralia2024-04-24Chemel, James L Cpa RENEWAL67Asiya Javayant
1022Isabel D FigeroaRussia2024-04-20Printing Dimensions RENEWAL83Amy Elsner
1023Morrow K FigeroaJapan2024-04-18Chemel, James L Cpa PROPOSAL7Ioni Bowcher
1024Morrow K BowleyJapan2024-04-29Commercial Press NEW44Amy Elsner
1025Juan R MacleadItaly2024-04-29Chanay, Jeffrey A Esq NEW15Xuxue Feng
1026Ashley Q ShinkoArgentina2024-04-04Rangoni Of Florence UNQUALIFIED33Elwin Sharvill
1027Antonio C MacleadUnited Kingdom2024-04-06Morlong Associates NEGOTIATION8Onyama Limba
1028Leon R RimJapan2024-04-11Truhlar And Truhlar Attys RENEWAL44Stephen Shaw
1029James R NestleBrazil2024-04-12Buckley Miller Wright PROPOSAL74Ivan Magalhaes
1030Tony N NickaIndia2024-04-15Truhlar And Truhlar Attys NEW98Elwin Sharvill
1031Octavia N BowleyIndia2024-04-17Chanay, Jeffrey A Esq QUALIFIED64Elwin Sharvill
1032Leon R MorascaIndia2024-04-18Chemel, James L Cpa QUALIFIED10Asiya Javayant
1033Aditya U MorascaFrance2024-04-02Feiner Bros NEW29Ioni Bowcher
1034James N FollerUnited Kingdom2024-04-12Buckley Miller Wright RENEWAL43Anna Fali
1035Adams D StensethGermany2024-04-17Chapman, Ross E Esq QUALIFIED2Stephen Shaw
1036Ivar R NickaFrance2024-04-12Feltz Printing Service NEGOTIATION62Ivan Magalhaes
1037Emily N MaletGermany2024-04-06Chapman, Ross E Esq UNQUALIFIED39Anna Fali
1038Alejandro Z PoquetteItaly2024-04-24King, Christopher A Esq NEW55Amy Elsner
1039Ashley O SlusarskiRussia2024-04-15Rousseaux, Michael Esq NEW8Ioni Bowcher
1040David E MarrierAustralia2024-04-05Dorl, James J Esq NEGOTIATION13Anna Fali
1041Jefferson P GillianArgentina2024-04-12Chemel, James L Cpa NEW98Elwin Sharvill
1042Juan L OstroskyIndia2024-05-01Chapman, Ross E Esq RENEWAL88Onyama Limba
1043Mayumi G MacleadBrazil2024-04-08Commercial Press UNQUALIFIED78Ivan Magalhaes
1044Julie S KolmetzCanada2024-04-21Feltz Printing Service UNQUALIFIED14Onyama Limba
1045Morrow D VenereSpain2024-04-18Truhlar And Truhlar Attys NEW62Xuxue Feng
1046Arvin P AlbaresFrance2024-04-27Printing Dimensions NEW55Ioni Bowcher
1047Emily Z RulapaughBrazil2024-05-01Printing Dimensions NEGOTIATION38Anna Fali
1048Munro E ChuiItaly2024-04-10Chemel, James L Cpa QUALIFIED43Asiya Javayant
1049Rodrigues G NickaItaly2024-04-08Buckley Miller Wright PROPOSAL95Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Maisha E WhobreyFranceXuxue Feng NEGOTIATION
Johnson H KolmetzRussiaAmy Elsner NEW
Mayumi G FerenczSpainXuxue Feng NEW
Francesco R FigeroaArgentinaOnyama Limba NEGOTIATION
Murillo H GauchoGermanyIvan Magalhaes RENEWAL
Maria S MarrierJapanBernardo Dominic NEW
Chavez P InouyeIndiaStephen Shaw PROPOSAL
Cody Z FlosiBrazilElwin Sharvill QUALIFIED
Wickens W AlbaresSpainAsiya Javayant NEW
Isabel W DilliardRussiaBernardo Dominic PROPOSAL
Julie F TollnerArgentinaAmy Elsner UNQUALIFIED
Mayumi C CaudyRussiaElwin Sharvill UNQUALIFIED
James H OldroydRussiaAnna Fali NEGOTIATION
Ricardo Z DilliardArgentinaOnyama Limba NEW
Aruna W ChuiJapanIvan Magalhaes PROPOSAL
Aruna S CaudyItalyStephen Shaw NEGOTIATION
Cody H StensethUnited KingdomBernardo Dominic QUALIFIED
Morrow N CaldareraArgentinaBernardo Dominic PROPOSAL
Francesco H FerenczFranceIvan Magalhaes RENEWAL
Leja X GarufiUnited KingdomAmy Elsner NEGOTIATION
Cody B SlusarskiCanadaAmy Elsner UNQUALIFIED
Salvatore H ShinkoUnited KingdomIoni Bowcher RENEWAL
Costa H BriddickIndiaIvan Magalhaes UNQUALIFIED
Ashley A PoquetteItalyAmy Elsner UNQUALIFIED
Wickens K OldroydBrazilBernardo Dominic QUALIFIED
Maria Z BriddickRussiaIvan Magalhaes NEGOTIATION
Ricardo F WieserFranceAnna Fali NEW
Murillo B ShinkoRussiaIoni Bowcher NEW
Darci Y OldroydBrazilAnna Fali RENEWAL
Francesco V CampainRussiaXuxue Feng QUALIFIED
Cody V NestleGermanyOnyama Limba PROPOSAL
Leon V KuskoCanadaIvan Magalhaes NEW
Leon H ChuiCanadaIoni Bowcher UNQUALIFIED
Emily U TollnerSpainElwin Sharvill NEGOTIATION
Clifford S SlusarskiArgentinaElwin Sharvill PROPOSAL
Emily B PerinCanadaOnyama Limba NEGOTIATION
Stacey N KuskoGermanyAmy Elsner RENEWAL
Wickens X DoeSpainOnyama Limba QUALIFIED
Clifford G WaycottFranceXuxue Feng UNQUALIFIED
Tony O GarufiFranceOnyama Limba QUALIFIED
Arvin X StockhamFranceAsiya Javayant UNQUALIFIED
Costa H BowleyUnited KingdomElwin Sharvill PROPOSAL
Jennifer A KuskoFranceAsiya Javayant NEGOTIATION
Mujtaba K BologniaBrazilAsiya Javayant PROPOSAL
Sinclair J CampainFranceOnyama Limba NEGOTIATION
Kaitlin A DilliardFranceIoni Bowcher PROPOSAL
Nicolas X GillianJapanStephen Shaw RENEWAL
Silvio X KolmetzItalyElwin Sharvill NEGOTIATION
Tony R PaprockiSpainIvan Magalhaes PROPOSAL
Clifford N RimItalyAmy Elsner NEGOTIATION
Frozen Columns
Name
James B Amigon
Jennifer K Tollner
Clifford K Butt
Aruna B Tollner
Maisha F Shinko
Aika E Royster
Chavez S Saylors
Jeanfrancois Z Bolognia
Stacey L Poquette
Francesco Q Caudy
Arvin Z Whobrey
Murillo S Perin
Faith F Caldarera
Silvio K Inouye
Jeanfrancois H Figeroa
Aika H Rulapaugh
Mujtaba H Doe
Misaki C Sergi
Murillo S Poquette
David I Slusarski
Maria D Marrier
Jefferson V Iturbide
Leon E Nestle
Izzy Z Poquette
Claire W Morasca
Jones S Bolognia
Aika R Briddick
Greenwood U Ostrosky
Aditya J Malet
Antonio T Amigon
Aditya E Darakjy
Aruna D Amigon
Isabel F Venere
Ricardo T Inouye
Rodrigues K Gillian
Aditya G Oldroyd
David Y Malet
Morrow S Iturbide
Silvio S Bolognia
Alejandro G Amigon
Darci F Rim
Julie A Caldarera
Costa X Stenseth
James J Briddick
Ashley D Albares
Darci Q Stockham
Nicolas U Caldarera
Clifford I Shinko
Stacey B Nestle
Murillo F Sergi
IdCountryDate
1000Australia2024-04-18
1001Australia2024-04-20
1002Japan2024-04-28
1003Germany2024-04-16
1004France2024-04-26
1005Germany2024-04-09
1006Germany2024-04-22
1007Canada2024-04-25
1008France2024-04-24
1009Australia2024-05-01
1010Canada2024-04-04
1011Canada2024-04-24
1012Brazil2024-04-02
1013Spain2024-04-20
1014Russia2024-04-13
1015United Kingdom2024-04-20
1016India2024-04-30
1017Argentina2024-04-04
1018Canada2024-04-26
1019Japan2024-04-29
1020Spain2024-04-28
1021Canada2024-04-07
1022France2024-04-29
1023Russia2024-04-03
1024Argentina2024-04-26
1025Canada2024-04-17
1026Australia2024-04-17
1027Brazil2024-04-28
1028United Kingdom2024-04-13
1029France2024-04-25
1030India2024-04-22
1031Canada2024-04-10
1032France2024-04-03
1033France2024-04-08
1034Canada2024-04-23
1035India2024-04-22
1036Spain2024-04-20
1037France2024-04-11
1038Russia2024-04-05
1039Canada2024-04-19
1040Russia2024-04-18
1041Italy2024-04-08
1042India2024-04-09
1043Russia2024-04-18
1044Canada2024-04-13
1045Spain2024-04-25
1046Russia2024-04-27
1047Germany2024-04-23
1048Germany2024-04-04
1049France2024-04-25

On-Demand Data

NameIdCountryDate
Maisha O Darakjy1000Japan2024-04-17
Juan U Bolognia1001Spain2024-04-19
Jefferson R Marrier1002India2024-04-19
Jefferson C Caldarera1003Germany2024-04-04
Mujtaba S Perin1004Australia2024-04-24
Isabel X Ruta1005Brazil2024-04-18
Morrow I Nicka1006India2024-04-23
Izzy A Ruta1007Australia2024-04-15
Jones Z Rim1008Canada2024-04-30
Kadeem D Tollner1009United Kingdom2024-04-02
Darci Y Kolmetz1010Australia2024-04-17
Tony Z Sergi1011Canada2024-04-06
Murillo O Kolmetz1012Spain2024-04-23
Murillo J Caudy1013France2024-04-13
David J Stenseth1014Australia2024-04-14
Arvin A Campain1015Brazil2024-05-01
Wickens I Ruta1016Spain2024-04-27
Claire U Ostrosky1017Germany2024-04-19
Kadeem L Dilliard1018Canada2024-05-01
Wickens G Inouye1019Canada2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley V NickaArgentinaStephen Shaw QUALIFIED
Francesco O StockhamCanadaAsiya Javayant NEGOTIATION
Leja G MorascaItalyStephen Shaw NEGOTIATION
Mujtaba M RoysterFranceBernardo Dominic UNQUALIFIED
Darci F RimGermanyIvan Magalhaes QUALIFIED
Kadeem V BriddickGermanyIoni Bowcher QUALIFIED
Claire M WaycottRussiaIvan Magalhaes UNQUALIFIED
Sinclair J RoysterArgentinaIvan Magalhaes UNQUALIFIED
Aruna T TollnerUnited KingdomIoni Bowcher NEGOTIATION
Silvio A GillianIndiaElwin Sharvill NEW
Johnson J DarakjyUnited KingdomElwin Sharvill QUALIFIED
Nicolas O StensethItalyAmy Elsner NEGOTIATION
Morrow L MarrierSpainIvan Magalhaes NEW
Nicolas B KolmetzCanadaAsiya Javayant NEGOTIATION
Maisha P SergiSpainAmy Elsner NEW
Johnson E MorascaAustraliaIvan Magalhaes UNQUALIFIED
Octavia G TollnerRussiaAnna Fali UNQUALIFIED
Leja I GarufiAustraliaOnyama Limba NEW
Aruna U ChuiGermanyXuxue Feng RENEWAL
Aika K WhobreyJapanOnyama Limba PROPOSAL
Jennifer Q FerenczJapanIoni Bowcher PROPOSAL
Arvin K KuskoSpainIoni Bowcher UNQUALIFIED
Arvin A FollerRussiaAsiya Javayant PROPOSAL
Nicolas X WaycottItalyElwin Sharvill QUALIFIED
Faith U NickaSpainElwin Sharvill PROPOSAL
Jennifer A MorascaBrazilAmy Elsner QUALIFIED
Jeanfrancois Z MaletItalyAnna Fali NEW
Adams K SaylorsJapanAnna Fali PROPOSAL
Mujtaba L WaycottIndiaStephen Shaw NEGOTIATION
Emily H AlbaresSpainOnyama Limba PROPOSAL
Francesco Q PoquetteUnited KingdomIoni Bowcher RENEWAL
Faith R NestleGermanyOnyama Limba NEW
Greenwood D CaldareraItalyElwin Sharvill NEW
Antonio Y AlbaresAustraliaAmy Elsner UNQUALIFIED
Aditya K StensethArgentinaIvan Magalhaes NEGOTIATION
Misaki R OstroskyBrazilAmy Elsner PROPOSAL
Kadeem N AmigonGermanyIoni Bowcher NEGOTIATION
Sinclair C NestleAustraliaIvan Magalhaes PROPOSAL
Ashley L CaldareraRussiaElwin Sharvill NEW
Nicolas S RutaFranceAsiya Javayant PROPOSAL

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