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
Alejandro F FerenczUnited KingdomOnyama Limba QUALIFIED
Murillo N MacleadCanadaIvan Magalhaes NEW
Smith F TollnerItalyXuxue Feng RENEWAL
Tony G FollerGermanyBernardo Dominic UNQUALIFIED
Costa O PoquetteArgentinaBernardo Dominic PROPOSAL
James A GarufiUnited KingdomIvan Magalhaes RENEWAL
Leon A DarakjyArgentinaAsiya Javayant NEGOTIATION
Kadeem R KolmetzBrazilElwin Sharvill RENEWAL
Ivar T AlbaresIndiaAnna Fali NEGOTIATION
Murillo N GillianBrazilAmy Elsner NEW
Sinclair W BologniaSpainAmy Elsner QUALIFIED
Adams N VenereItalyAmy Elsner RENEWAL
Jeanfrancois E FlosiIndiaOnyama Limba UNQUALIFIED
Munro U MacleadGermanyXuxue Feng PROPOSAL
Wickens V ChuiUnited KingdomIvan Magalhaes PROPOSAL
Aika A GauchoArgentinaElwin Sharvill NEW
Jennifer J FigeroaItalyAsiya Javayant UNQUALIFIED
Aditya B RimUnited KingdomAsiya Javayant QUALIFIED
Aika R CampainAustraliaBernardo Dominic PROPOSAL
Emily R SchemmerIndiaXuxue Feng NEW
Salvatore E FollerIndiaAmy Elsner PROPOSAL
Kadeem S StensethIndiaBernardo Dominic PROPOSAL
Ivar L MacleadGermanyIoni Bowcher NEGOTIATION
Juan B CaudyArgentinaOnyama Limba RENEWAL
Mayumi B ShinkoRussiaIvan Magalhaes QUALIFIED
Ivar Z DilliardAustraliaAnna Fali NEGOTIATION
Arvin L GarufiRussiaAnna Fali QUALIFIED
Aruna M WieserUnited KingdomAmy Elsner PROPOSAL
Julie I StensethIndiaAmy Elsner UNQUALIFIED
Ricardo K RulapaughCanadaIoni Bowcher PROPOSAL
Greenwood U VenereItalyBernardo Dominic RENEWAL
Deepesh H CampainUnited KingdomIoni Bowcher PROPOSAL
Aditya L NickaGermanyIvan Magalhaes UNQUALIFIED
Jeanfrancois U FigeroaBrazilStephen Shaw RENEWAL
Jones A FollerBrazilBernardo Dominic NEGOTIATION
Murillo I MaletBrazilOnyama Limba QUALIFIED
Costa M AmigonFranceIoni Bowcher UNQUALIFIED
Arvin X DarakjyFranceIvan Magalhaes QUALIFIED
Wickens W CaldareraRussiaBernardo Dominic QUALIFIED
Morrow C SergiBrazilElwin Sharvill NEGOTIATION
Izzy J RoysterFranceAnna Fali NEW
Alejandro I CaldareraItalyXuxue Feng NEGOTIATION
Tony Q MaletRussiaBernardo Dominic NEGOTIATION
Kadeem M DoeItalyAsiya Javayant RENEWAL
Kadeem C ShinkoFranceBernardo Dominic PROPOSAL
Ricardo T SlusarskiJapanAmy Elsner RENEWAL
Clifford Q CampainRussiaOnyama Limba NEW
Arvin K StensethCanadaBernardo Dominic QUALIFIED
Cody U PoquetteAustraliaOnyama Limba QUALIFIED
Nicolas R SaylorsItalyStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Wickens I NestleAustraliaAsiya Javayant RENEWAL
Izzy J GauchoSpainIvan Magalhaes NEW
Misaki U PaprockiBrazilAnna Fali NEW
Jeanfrancois F ChuiUnited KingdomAsiya Javayant UNQUALIFIED
Murillo P GillianIndiaElwin Sharvill QUALIFIED
Isabel O CaldareraIndiaAsiya Javayant NEGOTIATION
Jones H GarufiIndiaBernardo Dominic NEW
Cody K RimGermanyStephen Shaw RENEWAL
James I RoysterSpainOnyama Limba PROPOSAL
Isabel N GlickJapanOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Claire G GauchoFrance2024-04-15King, Christopher A Esq NEGOTIATION12Anna Fali
1001Wickens W MaletSpain2024-05-03Rangoni Of Florence NEW97Amy Elsner
1002Morrow Z RoysterRussia2024-04-10Dorl, James J Esq NEW12Asiya Javayant
1003Murillo U RimIndia2024-04-12Chemel, James L Cpa QUALIFIED15Ioni Bowcher
1004Ricardo R SergiRussia2024-04-20Chemel, James L Cpa NEGOTIATION29Onyama Limba
1005Leja M PaprockiJapan2024-04-12Rangoni Of Florence NEW88Onyama Limba
1006Silvio A CaudyJapan2024-04-11Rousseaux, Michael Esq PROPOSAL40Asiya Javayant
1007Clifford Y SaylorsArgentina2024-04-22Rangoni Of Florence NEW80Asiya Javayant
1008Aditya G BriddickCanada2024-04-13King, Christopher A Esq UNQUALIFIED72Onyama Limba
1009Aditya F RutaFrance2024-04-23Commercial Press RENEWAL31Anna Fali
1010Misaki N CaudyCanada2024-04-12Feltz Printing Service NEGOTIATION6Xuxue Feng
1011Chavez X CaudyBrazil2024-04-22Benton, John B Jr NEW83Anna Fali
1012Antonio Y AlbaresGermany2024-04-27Morlong Associates NEW38Onyama Limba
1013Arvin C InouyeUnited Kingdom2024-04-21Chemel, James L Cpa NEW71Anna Fali
1014Arvin S PerinArgentina2024-04-26Printing Dimensions QUALIFIED32Asiya Javayant
1015Stacey G SlusarskiUnited Kingdom2024-04-18Commercial Press RENEWAL90Xuxue Feng
1016Julie X OstroskyItaly2024-04-27Feltz Printing Service UNQUALIFIED41Anna Fali
1017Arvin N FerenczSpain2024-04-16Rangoni Of Florence PROPOSAL57Elwin Sharvill
1018Maria G ShinkoArgentina2024-05-02Chemel, James L Cpa RENEWAL61Anna Fali
1019Aika Q DilliardItaly2024-04-28Printing Dimensions NEGOTIATION74Ioni Bowcher
1020Mujtaba U StensethItaly2024-04-05Benton, John B Jr NEGOTIATION52Elwin Sharvill
1021Ashley M FlosiBrazil2024-04-04Chanay, Jeffrey A Esq UNQUALIFIED64Amy Elsner
1022Emily R OstroskyItaly2024-04-17Printing Dimensions PROPOSAL88Ioni Bowcher
1023Morrow P DoeBrazil2024-04-08Chapman, Ross E Esq UNQUALIFIED22Stephen Shaw
1024Greenwood N GauchoCanada2024-04-21Buckley Miller Wright RENEWAL76Elwin Sharvill
1025Smith H WhobreyRussia2024-04-06Truhlar And Truhlar Attys NEW4Ioni Bowcher
1026Morrow D PoquetteBrazil2024-04-21Dorl, James J Esq NEGOTIATION85Elwin Sharvill
1027Faith Y FerenczRussia2024-04-26Printing Dimensions NEGOTIATION57Onyama Limba
1028Clifford R PerinIndia2024-04-12King, Christopher A Esq NEGOTIATION18Xuxue Feng
1029Munro K FlosiBrazil2024-05-01Rousseaux, Michael Esq NEGOTIATION79Onyama Limba
1030Aika T CampainItaly2024-04-29Chanay, Jeffrey A Esq NEGOTIATION70Ioni Bowcher
1031Ivar T NickaJapan2024-04-10Rangoni Of Florence PROPOSAL63Ivan Magalhaes
1032Maisha D BowleyItaly2024-04-19Chapman, Ross E Esq QUALIFIED12Bernardo Dominic
1033Wickens B NestleAustralia2024-05-02Feiner Bros NEGOTIATION51Ivan Magalhaes
1034Morrow R ButtBrazil2024-04-27Rangoni Of Florence UNQUALIFIED88Onyama Limba
1035Ashley S ShinkoArgentina2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED67Bernardo Dominic
1036Jennifer P MaletBrazil2024-04-19Chapman, Ross E Esq RENEWAL66Asiya Javayant
1037Stacey Y GauchoGermany2024-04-07Rousseaux, Michael Esq QUALIFIED79Onyama Limba
1038Aditya U WieserBrazil2024-04-08Chanay, Jeffrey A Esq PROPOSAL3Xuxue Feng
1039Octavia G GillianCanada2024-05-02Chemel, James L Cpa RENEWAL41Ivan Magalhaes
1040Ricardo V OldroydSpain2024-04-07Feiner Bros NEGOTIATION64Stephen Shaw
1041Mujtaba H NestleArgentina2024-04-14Rangoni Of Florence NEGOTIATION75Xuxue Feng
1042Nicolas H MarrierAustralia2024-04-21Printing Dimensions RENEWAL40Ioni Bowcher
1043Mujtaba B TollnerItaly2024-04-06Chemel, James L Cpa PROPOSAL16Onyama Limba
1044Jones W RutaAustralia2024-05-02Chanay, Jeffrey A Esq NEW29Amy Elsner
1045Kaitlin A SchemmerArgentina2024-04-27Buckley Miller Wright RENEWAL96Ioni Bowcher
1046Tony B MacleadUnited Kingdom2024-04-21Benton, John B Jr NEW36Ioni Bowcher
1047Munro U NestleAustralia2024-04-19Chemel, James L Cpa RENEWAL94Ivan Magalhaes
1048Aditya V SergiUnited Kingdom2024-04-18Chemel, James L Cpa QUALIFIED48Ioni Bowcher
1049Izzy B RutaIndia2024-04-05Morlong Associates PROPOSAL57Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aruna U CaudyAustraliaIoni Bowcher RENEWAL
Aika L NestleIndiaIoni Bowcher RENEWAL
Leon T FlosiAustraliaAnna Fali RENEWAL
Mayumi B WieserGermanyIoni Bowcher QUALIFIED
Deepesh R OldroydRussiaElwin Sharvill RENEWAL
Murillo K MacleadJapanAsiya Javayant PROPOSAL
Alejandro W RutaItalyXuxue Feng QUALIFIED
Stacey F FlosiUnited KingdomBernardo Dominic UNQUALIFIED
Isabel U VocelkaItalyStephen Shaw UNQUALIFIED
Claire D RoysterItalyAnna Fali NEW
Claire X KuskoJapanStephen Shaw UNQUALIFIED
Chavez P GillianIndiaAsiya Javayant UNQUALIFIED
Stacey U FlosiGermanyAsiya Javayant PROPOSAL
Antonio J MaletRussiaXuxue Feng NEGOTIATION
Tony A InouyeArgentinaAnna Fali PROPOSAL
Sinclair U FerenczCanadaElwin Sharvill RENEWAL
Francesco J DoeRussiaStephen Shaw QUALIFIED
Jeanfrancois X FerenczUnited KingdomAnna Fali PROPOSAL
Jeanfrancois Y TollnerBrazilOnyama Limba QUALIFIED
Leon X FollerItalyAnna Fali RENEWAL
Clifford W VocelkaCanadaIvan Magalhaes RENEWAL
Claire K PoquetteCanadaElwin Sharvill UNQUALIFIED
Costa Z RoysterJapanAsiya Javayant PROPOSAL
Smith G StensethUnited KingdomAnna Fali NEW
Ashley I ButtItalyAnna Fali PROPOSAL
Murillo B ShinkoJapanIvan Magalhaes NEW
Salvatore F StensethUnited KingdomElwin Sharvill RENEWAL
Claire A BologniaAustraliaAmy Elsner UNQUALIFIED
Smith R CaudyUnited KingdomIoni Bowcher RENEWAL
Leja C ShinkoCanadaElwin Sharvill RENEWAL
Julie F GauchoBrazilAmy Elsner NEGOTIATION
Izzy O PerinRussiaAmy Elsner NEGOTIATION
Nicolas O DilliardBrazilAsiya Javayant UNQUALIFIED
Ricardo I MacleadBrazilStephen Shaw QUALIFIED
Maisha S ShinkoBrazilStephen Shaw RENEWAL
Leja R WaycottRussiaIvan Magalhaes NEW
Leja M RulapaughRussiaIoni Bowcher NEGOTIATION
Mujtaba F CaudyUnited KingdomAsiya Javayant UNQUALIFIED
Isabel K PerinGermanyElwin Sharvill QUALIFIED
Mayumi U CaldareraFranceAmy Elsner UNQUALIFIED
Isabel V VocelkaCanadaAmy Elsner PROPOSAL
Clifford E DilliardUnited KingdomXuxue Feng NEW
Mujtaba G StensethItalyOnyama Limba NEW
Izzy E ShinkoAustraliaAsiya Javayant PROPOSAL
Darci Q MacleadAustraliaAsiya Javayant UNQUALIFIED
Francesco X RutaUnited KingdomIoni Bowcher PROPOSAL
Julie L RutaUnited KingdomIoni Bowcher PROPOSAL
Ashley B NickaRussiaAnna Fali QUALIFIED
Maisha N TollnerSpainOnyama Limba QUALIFIED
Ashley X VocelkaFranceBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Juan N Dilliard
Morrow I Schemmer
Aditya S Royster
James S Venere
Mujtaba U Malet
Arvin G Inouye
Munro E Bowley
Darci F Iturbide
Ricardo P Venere
Ashley Q Poquette
Stacey E Flosi
Julie M Marrier
Francesco A Ruta
Aika X Sergi
Arvin S Malet
Morrow R Oldroyd
Isabel G Tollner
Silvio F Bolognia
Juan C Gillian
Ivar F Albares
Kaitlin E Rulapaugh
Ashley S Malet
Silvio A Venere
Misaki K Iturbide
Francesco O Albares
Francesco R Tollner
Kadeem Z Doe
Ashley T Gaucho
Jefferson H Gillian
Stacey C Nicka
Alejandro B Kusko
Clifford K Wieser
Julie M Waycott
Deepesh E Waycott
Costa J Darakjy
Emily D Figeroa
Izzy O Nicka
Jones D Marrier
Sinclair G Poquette
Misaki R Rim
Aruna X Slusarski
Ivar G Paprocki
Ricardo F Figeroa
Claire L Rim
Ricardo G Briddick
Silvio T Darakjy
Isabel S Kolmetz
Ivar O Stockham
Nicolas R Malet
Costa F Ferencz
IdCountryDate
1000France2024-04-29
1001Australia2024-04-26
1002France2024-04-20
1003India2024-05-02
1004India2024-04-10
1005India2024-05-03
1006Spain2024-04-10
1007India2024-04-24
1008United Kingdom2024-04-07
1009Australia2024-04-14
1010Russia2024-04-29
1011India2024-05-03
1012Spain2024-04-24
1013Italy2024-04-19
1014Russia2024-04-05
1015Brazil2024-05-02
1016France2024-05-02
1017United Kingdom2024-05-03
1018Canada2024-05-01
1019Spain2024-04-19
1020United Kingdom2024-04-21
1021Germany2024-04-10
1022Australia2024-04-11
1023Canada2024-04-08
1024Italy2024-04-05
1025Spain2024-04-13
1026Spain2024-04-20
1027Canada2024-04-21
1028Canada2024-04-09
1029Germany2024-04-25
1030India2024-04-21
1031Australia2024-04-23
1032France2024-04-18
1033India2024-04-30
1034Italy2024-04-20
1035Germany2024-05-02
1036Italy2024-04-07
1037Australia2024-04-15
1038Italy2024-04-06
1039Australia2024-04-26
1040Japan2024-04-25
1041Brazil2024-04-13
1042India2024-04-20
1043Canada2024-04-14
1044United Kingdom2024-04-17
1045Italy2024-04-28
1046Australia2024-04-22
1047Australia2024-05-03
1048United Kingdom2024-05-02
1049Australia2024-04-30

On-Demand Data

NameIdCountryDate
Mayumi I Ostrosky1000Brazil2024-04-06
James G Maclead1001Russia2024-04-26
Mujtaba H Morasca1002United Kingdom2024-04-15
Johnson S Gillian1003Spain2024-04-22
Aditya M Oldroyd1004Japan2024-04-08
Darci S Dilliard1005Germany2024-05-03
Leon K Sergi1006Italy2024-04-15
Sinclair U Malet1007Russia2024-04-23
Adams H Morasca1008France2024-04-06
Kadeem N Stockham1009Canada2024-04-07
Morrow V Nestle1010Germany2024-04-21
Tony G Figeroa1011Argentina2024-04-07
Antonio T Iturbide1012United Kingdom2024-04-07
Aika D Morasca1013Italy2024-04-16
Cody Q Doe1014Italy2024-04-07
Maisha N Waycott1015Spain2024-04-04
Jeanfrancois W Nicka1016France2024-04-07
Kadeem I Briddick1017Russia2024-04-16
Leja Y Butt1018Canada2024-05-01
Jones Z Gillian1019Spain2024-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba E TollnerCanadaStephen Shaw QUALIFIED
Sinclair C RoysterAustraliaOnyama Limba UNQUALIFIED
Sinclair N MarrierIndiaAmy Elsner NEW
Claire Q DilliardGermanyAnna Fali UNQUALIFIED
Sinclair C FigeroaJapanIoni Bowcher PROPOSAL
Juan M GlickArgentinaXuxue Feng UNQUALIFIED
Murillo K GlickCanadaXuxue Feng RENEWAL
Chavez T MarrierIndiaIoni Bowcher QUALIFIED
Adams R SlusarskiUnited KingdomIvan Magalhaes PROPOSAL
Antonio I VocelkaJapanAnna Fali NEGOTIATION
Francesco W OldroydUnited KingdomIoni Bowcher RENEWAL
Julie G RulapaughBrazilStephen Shaw NEGOTIATION
Aruna T NickaFranceStephen Shaw UNQUALIFIED
Antonio A BowleySpainIoni Bowcher RENEWAL
Nicolas Y CaldareraItalyIoni Bowcher RENEWAL
Murillo B WaycottAustraliaAsiya Javayant PROPOSAL
Maisha M StensethGermanyBernardo Dominic QUALIFIED
Emily M NickaArgentinaIoni Bowcher PROPOSAL
Murillo R VenereRussiaAnna Fali UNQUALIFIED
Faith O BriddickFranceOnyama Limba NEGOTIATION
Johnson V MaletFranceStephen Shaw UNQUALIFIED
Maisha A FerenczSpainAnna Fali RENEWAL
Smith N IturbideIndiaOnyama Limba NEGOTIATION
Leja M OstroskyBrazilOnyama Limba UNQUALIFIED
Octavia J BriddickCanadaBernardo Dominic NEGOTIATION
Deepesh R PoquetteIndiaElwin Sharvill NEGOTIATION
Juan S SergiSpainIoni Bowcher UNQUALIFIED
Jones A OstroskyAustraliaBernardo Dominic QUALIFIED
Isabel K BriddickSpainIvan Magalhaes NEW
Murillo X FollerGermanyXuxue Feng PROPOSAL
Silvio C FigeroaRussiaAnna Fali QUALIFIED
Izzy Y MaletAustraliaAsiya Javayant UNQUALIFIED
Chavez O FlosiGermanyBernardo Dominic QUALIFIED
Maisha R BriddickItalyElwin Sharvill PROPOSAL
David Z GarufiFranceBernardo Dominic QUALIFIED
Wickens I ShinkoGermanyIoni Bowcher NEW
Tony N CaldareraIndiaAnna Fali PROPOSAL
David C WieserIndiaBernardo Dominic NEW
Ashley N StensethArgentinaAnna Fali NEGOTIATION
Mayumi S TollnerIndiaIvan Magalhaes 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>