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 I RulapaughArgentinaAmy Elsner UNQUALIFIED
Isabel R RoysterBrazilBernardo Dominic PROPOSAL
Ashley C GillianGermanyAnna Fali NEGOTIATION
Chavez N MorascaIndiaIoni Bowcher RENEWAL
Cody K VenereJapanOnyama Limba PROPOSAL
Emily P WaycottIndiaAmy Elsner NEGOTIATION
Alejandro I MacleadAustraliaAnna Fali PROPOSAL
Ricardo E BowleyJapanAnna Fali QUALIFIED
Nicolas M FigeroaBrazilStephen Shaw UNQUALIFIED
Antonio C FerenczAustraliaBernardo Dominic RENEWAL
Morrow H KuskoFranceOnyama Limba NEGOTIATION
Murillo Y NickaAustraliaAnna Fali RENEWAL
Cody N AlbaresFranceAnna Fali NEGOTIATION
Costa X CampainArgentinaAmy Elsner QUALIFIED
Aditya L DilliardBrazilAsiya Javayant UNQUALIFIED
Jones R KuskoItalyAsiya Javayant NEGOTIATION
Jennifer O BowleyAustraliaIoni Bowcher NEGOTIATION
Jones B TollnerAustraliaXuxue Feng NEW
Stacey P PoquetteCanadaElwin Sharvill RENEWAL
Leja X MacleadFranceElwin Sharvill NEW
Kadeem H FerenczItalyXuxue Feng QUALIFIED
Isabel E StockhamItalyIoni Bowcher UNQUALIFIED
Costa M DilliardCanadaBernardo Dominic NEW
Stacey H OldroydFranceIvan Magalhaes PROPOSAL
Silvio N RulapaughItalyStephen Shaw RENEWAL
Ashley O MaletArgentinaBernardo Dominic UNQUALIFIED
Greenwood B AmigonSpainOnyama Limba UNQUALIFIED
Kadeem D RimSpainXuxue Feng NEW
Deepesh G GlickCanadaAsiya Javayant UNQUALIFIED
Leon D GlickAustraliaBernardo Dominic RENEWAL
Faith K IturbideCanadaAnna Fali NEGOTIATION
Jeanfrancois A WhobreyCanadaElwin Sharvill NEW
Cody U WhobreyCanadaBernardo Dominic UNQUALIFIED
Antonio Y InouyeBrazilAmy Elsner PROPOSAL
Rodrigues G RimSpainAnna Fali RENEWAL
Kadeem H MaletRussiaXuxue Feng UNQUALIFIED
Antonio W ChuiJapanElwin Sharvill PROPOSAL
Francesco C GlickAustraliaOnyama Limba UNQUALIFIED
Costa Y SlusarskiFranceIvan Magalhaes NEW
Murillo I BologniaUnited KingdomElwin Sharvill PROPOSAL
Mujtaba T KuskoAustraliaAnna Fali NEW
Cody X ShinkoUnited KingdomAmy Elsner NEGOTIATION
Julie L RoysterIndiaIoni Bowcher PROPOSAL
Mujtaba U MorascaArgentinaAmy Elsner RENEWAL
Salvatore A PerinUnited KingdomIoni Bowcher RENEWAL
Isabel M RoysterIndiaAsiya Javayant NEGOTIATION
Octavia X DoeCanadaXuxue Feng UNQUALIFIED
Arvin J WhobreyUnited KingdomAsiya Javayant UNQUALIFIED
Jones Q MaletSpainIoni Bowcher PROPOSAL
Mujtaba M ChuiFranceAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Juan Q WieserBrazilElwin Sharvill NEW
Faith A OldroydFranceAsiya Javayant NEGOTIATION
Tony M DilliardFranceIvan Magalhaes NEW
Antonio Y StockhamSpainBernardo Dominic NEW
Leon P InouyeCanadaAnna Fali NEW
Costa R OstroskyGermanyOnyama Limba NEW
Kadeem Z AmigonSpainIvan Magalhaes PROPOSAL
Isabel O CampainRussiaIvan Magalhaes NEGOTIATION
Kadeem O ChuiAustraliaElwin Sharvill NEGOTIATION
Ashley F MaletIndiaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci R PoquetteRussia2024-04-13Feiner Bros NEW68Asiya Javayant
1001Emily Y PaprockiGermany2024-04-20King, Christopher A Esq QUALIFIED19Bernardo Dominic
1002Ivar D MarrierJapan2024-03-27King, Christopher A Esq UNQUALIFIED98Ivan Magalhaes
1003David J PerinCanada2024-04-09Commercial Press PROPOSAL77Onyama Limba
1004Chavez P BologniaJapan2024-04-05Chemel, James L Cpa NEGOTIATION5Bernardo Dominic
1005Aruna P SchemmerGermany2024-04-05Commercial Press RENEWAL29Ioni Bowcher
1006Leon M ShinkoAustralia2024-04-16Chanay, Jeffrey A Esq PROPOSAL76Ioni Bowcher
1007Faith O ShinkoSpain2024-04-09Feltz Printing Service PROPOSAL45Xuxue Feng
1008Jefferson C InouyeBrazil2024-04-15Morlong Associates PROPOSAL55Ivan Magalhaes
1009Kaitlin Q MarrierFrance2024-04-02Feiner Bros QUALIFIED39Onyama Limba
1010Chavez S SergiSpain2024-04-02Chapman, Ross E Esq PROPOSAL80Elwin Sharvill
1011Misaki Q FerenczFrance2024-03-29Truhlar And Truhlar Attys RENEWAL92Bernardo Dominic
1012Greenwood Q NickaFrance2024-04-20Morlong Associates UNQUALIFIED66Ivan Magalhaes
1013Maria D WhobreyCanada2024-03-28Dorl, James J Esq QUALIFIED66Amy Elsner
1014Sinclair B FigeroaUnited Kingdom2024-04-13Rousseaux, Michael Esq QUALIFIED2Xuxue Feng
1015Jefferson D GauchoCanada2024-04-06Feiner Bros NEGOTIATION49Stephen Shaw
1016Mujtaba M SaylorsGermany2024-04-09Buckley Miller Wright NEW55Anna Fali
1017Kaitlin S KolmetzRussia2024-04-12King, Christopher A Esq NEGOTIATION82Onyama Limba
1018Jeanfrancois X ButtArgentina2024-03-24Buckley Miller Wright PROPOSAL46Asiya Javayant
1019Morrow M BologniaJapan2024-03-24Morlong Associates PROPOSAL4Stephen Shaw
1020Alejandro F OstroskyRussia2024-04-17Chapman, Ross E Esq RENEWAL53Anna Fali
1021Alejandro G DoeArgentina2024-04-04Chapman, Ross E Esq NEW91Ivan Magalhaes
1022Salvatore W VocelkaRussia2024-04-22Dorl, James J Esq QUALIFIED32Xuxue Feng
1023Misaki L NickaBrazil2024-04-07Feltz Printing Service UNQUALIFIED49Onyama Limba
1024Alejandro L CaudyGermany2024-03-24Chapman, Ross E Esq RENEWAL89Onyama Limba
1025Clifford D MaletRussia2024-04-07Morlong Associates NEW16Bernardo Dominic
1026Isabel K MarrierCanada2024-03-28Feltz Printing Service UNQUALIFIED77Bernardo Dominic
1027Julie L FollerUnited Kingdom2024-04-15Buckley Miller Wright NEW49Ioni Bowcher
1028Morrow J WieserIndia2024-04-08Buckley Miller Wright QUALIFIED71Elwin Sharvill
1029Munro H StensethJapan2024-03-26King, Christopher A Esq NEGOTIATION1Elwin Sharvill
1030Rodrigues I ButtCanada2024-03-31Dorl, James J Esq NEGOTIATION16Xuxue Feng
1031Stacey Q NickaItaly2024-04-22Morlong Associates RENEWAL35Asiya Javayant
1032Maisha V PoquetteFrance2024-04-20Morlong Associates RENEWAL75Onyama Limba
1033Jennifer S GillianBrazil2024-04-05Rousseaux, Michael Esq PROPOSAL76Anna Fali
1034Maria E DarakjySpain2024-04-21Feltz Printing Service PROPOSAL26Ivan Magalhaes
1035Rodrigues A FerenczFrance2024-04-22Truhlar And Truhlar Attys UNQUALIFIED25Stephen Shaw
1036Silvio P MacleadRussia2024-03-30Commercial Press NEW37Onyama Limba
1037Aditya A RoysterSpain2024-04-08Chapman, Ross E Esq QUALIFIED87Asiya Javayant
1038Misaki S TollnerItaly2024-03-27King, Christopher A Esq RENEWAL74Elwin Sharvill
1039Deepesh C GillianCanada2024-04-21Feltz Printing Service PROPOSAL51Xuxue Feng
1040Mujtaba P SlusarskiRussia2024-04-06Rousseaux, Michael Esq RENEWAL80Bernardo Dominic
1041Nicolas B GauchoArgentina2024-04-01Feltz Printing Service PROPOSAL85Stephen Shaw
1042Arvin X RoysterArgentina2024-04-05Printing Dimensions QUALIFIED55Onyama Limba
1043Chavez G ButtUnited Kingdom2024-04-08Rangoni Of Florence NEGOTIATION83Xuxue Feng
1044Murillo K GillianIndia2024-04-08Truhlar And Truhlar Attys NEW52Ioni Bowcher
1045Arvin Q FollerUnited Kingdom2024-04-19Chapman, Ross E Esq QUALIFIED80Xuxue Feng
1046Sinclair M WieserBrazil2024-03-28Rangoni Of Florence NEW95Asiya Javayant
1047Greenwood Y RulapaughIndia2024-04-07Feiner Bros NEGOTIATION9Bernardo Dominic
1048Aika O GauchoIndia2024-04-07Chanay, Jeffrey A Esq NEW25Asiya Javayant
1049Francesco C PerinRussia2024-04-19Chemel, James L Cpa UNQUALIFIED4Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Johnson J RutaFranceIvan Magalhaes NEGOTIATION
Juan D ButtGermanyIvan Magalhaes NEGOTIATION
Ashley U MaletItalyXuxue Feng UNQUALIFIED
Munro Y BowleyJapanIvan Magalhaes UNQUALIFIED
Izzy B IturbideJapanAmy Elsner NEGOTIATION
James Q GarufiUnited KingdomStephen Shaw RENEWAL
Chavez A GillianCanadaIvan Magalhaes NEW
Izzy I RulapaughAustraliaBernardo Dominic NEW
Stacey W KuskoArgentinaIvan Magalhaes UNQUALIFIED
Ivar X OldroydIndiaStephen Shaw QUALIFIED
Alejandro J OstroskyBrazilIvan Magalhaes NEW
Smith I ChuiBrazilIvan Magalhaes QUALIFIED
Chavez D KuskoItalyIvan Magalhaes PROPOSAL
Mujtaba L SaylorsIndiaIvan Magalhaes NEGOTIATION
Chavez Y WhobreySpainAnna Fali QUALIFIED
Aditya M FigeroaUnited KingdomAmy Elsner RENEWAL
Arvin B DoeJapanElwin Sharvill UNQUALIFIED
Maisha I MarrierUnited KingdomIvan Magalhaes RENEWAL
Salvatore Q NestleGermanyAnna Fali NEW
Munro U VenereSpainAmy Elsner RENEWAL
Izzy T MarrierAustraliaIoni Bowcher NEGOTIATION
Wickens F CampainFranceXuxue Feng NEW
Rodrigues F BriddickGermanyStephen Shaw NEGOTIATION
Aruna H CaldareraGermanyElwin Sharvill RENEWAL
Kaitlin U OldroydBrazilBernardo Dominic QUALIFIED
Jones E CampainFranceOnyama Limba PROPOSAL
Wickens G TollnerItalyIoni Bowcher NEGOTIATION
Leon D PoquetteGermanyBernardo Dominic PROPOSAL
Leon U KolmetzIndiaBernardo Dominic NEGOTIATION
Misaki Y InouyeJapanIvan Magalhaes QUALIFIED
Salvatore Y SaylorsCanadaXuxue Feng QUALIFIED
Salvatore U InouyeUnited KingdomStephen Shaw RENEWAL
Ricardo Y MorascaJapanAmy Elsner PROPOSAL
Rodrigues O KuskoBrazilStephen Shaw NEGOTIATION
Wickens N AmigonFranceAmy Elsner RENEWAL
Costa J KuskoUnited KingdomAsiya Javayant RENEWAL
Francesco H SergiArgentinaIvan Magalhaes PROPOSAL
Julie K PerinBrazilOnyama Limba PROPOSAL
Wickens Q VenereBrazilElwin Sharvill QUALIFIED
Claire V SaylorsIndiaXuxue Feng RENEWAL
Darci S DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Jeanfrancois B AlbaresAustraliaAsiya Javayant QUALIFIED
Ashley J CaudyCanadaIvan Magalhaes PROPOSAL
Leja H StockhamJapanElwin Sharvill RENEWAL
Aditya P ButtBrazilAsiya Javayant NEW
Morrow D PoquetteAustraliaOnyama Limba PROPOSAL
Smith U WaycottAustraliaIvan Magalhaes NEGOTIATION
Ivar E FollerItalyElwin Sharvill QUALIFIED
Emily F RimUnited KingdomBernardo Dominic NEGOTIATION
Francesco N GlickCanadaXuxue Feng NEGOTIATION
Frozen Columns
Name
Jeanfrancois R Malet
Munro J Perin
Johnson V Nicka
Aika S Butt
Ivar L Slusarski
Emily F Ferencz
James B Ruta
Alejandro A Bolognia
Arvin G Ruta
Maria I Waycott
Jefferson J Tollner
Rodrigues V Gillian
Rodrigues G Venere
Cody V Ruta
Jones M Garufi
Aruna O Ostrosky
Sinclair L Malet
Juan E Campain
Nicolas F Malet
Maria B Malet
Silvio N Schemmer
Kadeem F Nicka
Stacey N Albares
Clifford J Waycott
Silvio A Caldarera
Costa W Marrier
Aika L Butt
Sinclair M Darakjy
Juan Q Malet
Octavia O Malet
Chavez S Stockham
Alejandro U Royster
Octavia V Royster
Arvin L Glick
Darci R Stockham
Jefferson N Poquette
Leon F Morasca
Sinclair M Briddick
Morrow Y Saylors
Aruna H Royster
David W Bowley
Ashley A Tollner
Costa P Schemmer
Nicolas E Nicka
Mujtaba L Poquette
Mayumi T Marrier
Sinclair N Iturbide
Wickens D Wieser
Mujtaba W Perin
Octavia Q Ferencz
IdCountryDate
1000Argentina2024-04-12
1001France2024-03-24
1002Germany2024-04-20
1003United Kingdom2024-03-31
1004Australia2024-04-02
1005Germany2024-03-27
1006India2024-04-05
1007Canada2024-04-21
1008United Kingdom2024-03-29
1009Canada2024-04-12
1010France2024-03-29
1011Italy2024-03-30
1012Canada2024-04-17
1013Germany2024-04-12
1014Russia2024-03-30
1015France2024-04-04
1016United Kingdom2024-04-12
1017Spain2024-04-22
1018Germany2024-04-01
1019Brazil2024-03-29
1020Russia2024-04-17
1021Japan2024-04-10
1022Germany2024-04-09
1023Russia2024-04-22
1024France2024-04-16
1025Japan2024-04-12
1026Russia2024-04-10
1027Spain2024-03-26
1028Argentina2024-03-29
1029United Kingdom2024-04-22
1030Japan2024-04-20
1031Australia2024-04-19
1032Canada2024-04-06
1033Russia2024-04-17
1034France2024-03-31
1035Brazil2024-03-26
1036Japan2024-04-08
1037Canada2024-04-21
1038Argentina2024-04-08
1039Brazil2024-04-01
1040Spain2024-04-07
1041United Kingdom2024-04-18
1042Brazil2024-04-07
1043Japan2024-04-18
1044Canada2024-04-22
1045Russia2024-04-17
1046Italy2024-04-05
1047Australia2024-04-16
1048Russia2024-04-22
1049Australia2024-04-08

On-Demand Data

NameIdCountryDate
Ashley S Garufi1000Russia2024-04-13
Misaki U Slusarski1001United Kingdom2024-04-22
Kaitlin W Schemmer1002United Kingdom2024-04-06
Leon C Ruta1003Argentina2024-04-22
Mayumi W Vocelka1004Italy2024-04-11
Maisha W Flosi1005India2024-04-06
Maisha I Nestle1006Italy2024-03-27
Adams Y Dilliard1007Italy2024-03-24
Izzy I Venere1008United Kingdom2024-04-17
Mayumi M Amigon1009Spain2024-04-04
Claire S Oldroyd1010Argentina2024-03-28
Aika W Marrier1011India2024-04-01
Alejandro X Bowley1012France2024-03-26
Misaki Q Malet1013Brazil2024-03-26
Sinclair P Morasca1014Canada2024-04-17
Nicolas E Gillian1015Italy2024-04-08
Jeanfrancois K Garufi1016Canada2024-04-16
Salvatore B Stockham1017India2024-03-24
Faith E Gillian1018Italy2024-04-16
James M Glick1019France2024-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki D InouyeItalyBernardo Dominic NEW
Izzy D InouyeItalyAmy Elsner PROPOSAL
Izzy Q NickaFranceIvan Magalhaes PROPOSAL
Mujtaba V RulapaughIndiaBernardo Dominic NEW
Aditya W WaycottArgentinaOnyama Limba NEGOTIATION
James H KuskoFranceXuxue Feng NEGOTIATION
Jennifer M CaudyGermanyIvan Magalhaes PROPOSAL
Aruna I OldroydItalyBernardo Dominic NEW
Leja S CaudyRussiaAnna Fali NEGOTIATION
Stacey H MorascaSpainBernardo Dominic UNQUALIFIED
Ivar C DilliardIndiaAmy Elsner NEW
Claire A SergiBrazilElwin Sharvill QUALIFIED
Ashley M SchemmerAustraliaBernardo Dominic NEGOTIATION
Mayumi I NickaSpainAnna Fali NEGOTIATION
Jefferson N SaylorsSpainXuxue Feng NEW
Costa J OstroskyRussiaIvan Magalhaes PROPOSAL
Darci P RimRussiaElwin Sharvill UNQUALIFIED
Jennifer J FollerUnited KingdomOnyama Limba NEW
Wickens F IturbideGermanyAmy Elsner PROPOSAL
James U FlosiJapanXuxue Feng PROPOSAL
Clifford J TollnerCanadaBernardo Dominic UNQUALIFIED
Emily L FigeroaSpainIvan Magalhaes QUALIFIED
Misaki O RulapaughItalyOnyama Limba NEGOTIATION
Arvin D WhobreyCanadaAmy Elsner NEGOTIATION
James U BowleyItalyStephen Shaw PROPOSAL
Maisha N FigeroaJapanElwin Sharvill NEW
David Q GlickAustraliaIvan Magalhaes NEGOTIATION
Octavia G SaylorsArgentinaOnyama Limba QUALIFIED
Salvatore J SchemmerFranceIoni Bowcher QUALIFIED
Mujtaba N StockhamCanadaBernardo Dominic QUALIFIED
Maisha N ChuiCanadaXuxue Feng NEGOTIATION
Smith O MaletItalyOnyama Limba UNQUALIFIED
David Y PerinJapanStephen Shaw RENEWAL
Silvio X AlbaresJapanXuxue Feng NEGOTIATION
Francesco J SaylorsAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba K NestleRussiaOnyama Limba UNQUALIFIED
Jones B WieserRussiaAmy Elsner RENEWAL
Antonio O ButtRussiaXuxue Feng NEGOTIATION
David L AmigonItalyBernardo Dominic QUALIFIED
Antonio N CaudyGermanyIoni Bowcher 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>