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
Antonio W DoeIndiaXuxue Feng NEGOTIATION
Faith F ChuiRussiaBernardo Dominic QUALIFIED
Julie M SaylorsCanadaAsiya Javayant PROPOSAL
Murillo M ChuiCanadaXuxue Feng QUALIFIED
Wickens W AlbaresBrazilOnyama Limba NEW
Emily K SaylorsUnited KingdomIvan Magalhaes RENEWAL
Isabel D RulapaughBrazilIoni Bowcher NEGOTIATION
Tony B NestleItalyIvan Magalhaes PROPOSAL
Clifford X CampainUnited KingdomStephen Shaw PROPOSAL
Stacey K CampainUnited KingdomIoni Bowcher UNQUALIFIED
Deepesh N WieserCanadaStephen Shaw NEW
Misaki Q RulapaughItalyElwin Sharvill PROPOSAL
Francesco R VenereIndiaIvan Magalhaes PROPOSAL
Aditya J OstroskyBrazilAsiya Javayant NEW
Kaitlin F FollerJapanOnyama Limba QUALIFIED
Salvatore M ButtAustraliaStephen Shaw UNQUALIFIED
Smith W StockhamFranceAmy Elsner NEGOTIATION
Kaitlin B RimJapanAmy Elsner RENEWAL
Deepesh Z DilliardArgentinaBernardo Dominic NEGOTIATION
Aditya M RulapaughGermanyXuxue Feng NEGOTIATION
Claire S BologniaSpainXuxue Feng NEW
Alejandro Z CaldareraCanadaAmy Elsner NEW
Clifford H PoquetteRussiaXuxue Feng QUALIFIED
Smith P RulapaughRussiaStephen Shaw NEW
Munro G MaletUnited KingdomStephen Shaw NEW
Greenwood S VocelkaGermanyXuxue Feng UNQUALIFIED
Aditya Z BologniaFranceStephen Shaw NEGOTIATION
Rodrigues S DilliardIndiaAnna Fali PROPOSAL
Mayumi U DoeItalyStephen Shaw NEGOTIATION
Ivar A VocelkaIndiaXuxue Feng PROPOSAL
Isabel V FlosiSpainXuxue Feng UNQUALIFIED
Tony A SaylorsUnited KingdomIoni Bowcher PROPOSAL
Salvatore T ShinkoBrazilElwin Sharvill QUALIFIED
Mujtaba Y WaycottFranceOnyama Limba QUALIFIED
Deepesh B FerenczIndiaAnna Fali NEGOTIATION
Stacey J VenereItalyIvan Magalhaes NEW
Silvio L VocelkaItalyIoni Bowcher UNQUALIFIED
Morrow C VenereArgentinaBernardo Dominic PROPOSAL
Murillo W FigeroaArgentinaBernardo Dominic NEW
Stacey J WaycottSpainOnyama Limba NEGOTIATION
Kaitlin P DoeBrazilOnyama Limba QUALIFIED
Ricardo M FerenczBrazilAmy Elsner RENEWAL
Aruna Y TollnerUnited KingdomIoni Bowcher NEGOTIATION
Misaki H WhobreyUnited KingdomIvan Magalhaes NEGOTIATION
Deepesh O FigeroaRussiaOnyama Limba PROPOSAL
Aika V IturbideCanadaAsiya Javayant NEW
Deepesh Q ChuiJapanBernardo Dominic UNQUALIFIED
Ivar V GillianGermanyIvan Magalhaes NEW
Mayumi Y DoeItalyAsiya Javayant UNQUALIFIED
Aika P PaprockiArgentinaXuxue Feng QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez H CaldareraJapanIvan Magalhaes NEW
James L ChuiFranceXuxue Feng QUALIFIED
Kaitlin S ButtCanadaStephen Shaw PROPOSAL
Murillo D WaycottCanadaAsiya Javayant QUALIFIED
Isabel I OldroydGermanyElwin Sharvill NEW
Aika O AlbaresItalyXuxue Feng NEGOTIATION
Ricardo J TollnerBrazilIvan Magalhaes NEGOTIATION
Alejandro W WhobreyArgentinaAsiya Javayant NEGOTIATION
Arvin E SergiUnited KingdomBernardo Dominic NEGOTIATION
Sinclair A WieserIndiaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia F InouyeItaly2024-03-30Dorl, James J Esq NEW69Xuxue Feng
1001Chavez J TollnerSpain2024-03-24Chanay, Jeffrey A Esq NEGOTIATION5Ioni Bowcher
1002Jeanfrancois S KuskoIndia2024-04-06Chanay, Jeffrey A Esq NEGOTIATION57Bernardo Dominic
1003Johnson V FollerJapan2024-04-04Buckley Miller Wright UNQUALIFIED96Anna Fali
1004Maria U RoysterIndia2024-03-23Benton, John B Jr UNQUALIFIED12Ivan Magalhaes
1005Ivar O DarakjyAustralia2024-03-27Rangoni Of Florence UNQUALIFIED75Onyama Limba
1006Chavez C CampainUnited Kingdom2024-03-26Chapman, Ross E Esq UNQUALIFIED71Asiya Javayant
1007Aditya H ShinkoRussia2024-04-04Chapman, Ross E Esq RENEWAL63Amy Elsner
1008Jennifer G SaylorsGermany2024-04-04Truhlar And Truhlar Attys QUALIFIED62Bernardo Dominic
1009Clifford N FlosiGermany2024-04-07Feltz Printing Service UNQUALIFIED72Stephen Shaw
1010Kaitlin D WieserAustralia2024-04-18Commercial Press NEW51Elwin Sharvill
1011Chavez N FlosiItaly2024-03-27Benton, John B Jr NEGOTIATION36Xuxue Feng
1012Juan K GlickCanada2024-04-03Rousseaux, Michael Esq RENEWAL71Asiya Javayant
1013Clifford K WaycottGermany2024-04-08Feiner Bros NEW35Anna Fali
1014Johnson H VenereBrazil2024-04-18King, Christopher A Esq PROPOSAL69Amy Elsner
1015Arvin S BologniaCanada2024-04-02King, Christopher A Esq RENEWAL88Anna Fali
1016Murillo T BriddickUnited Kingdom2024-04-08Printing Dimensions NEGOTIATION1Onyama Limba
1017Kaitlin Y FlosiItaly2024-04-13Printing Dimensions NEGOTIATION31Ivan Magalhaes
1018Claire H RulapaughJapan2024-04-05Dorl, James J Esq NEW56Xuxue Feng
1019Murillo H NickaBrazil2024-04-17Buckley Miller Wright QUALIFIED89Onyama Limba
1020Deepesh F FerenczSpain2024-03-25Rangoni Of Florence NEW45Ivan Magalhaes
1021Leon U RutaItaly2024-03-22Truhlar And Truhlar Attys QUALIFIED4Elwin Sharvill
1022Ricardo L FigeroaIndia2024-03-27Commercial Press NEW64Ioni Bowcher
1023James B FollerRussia2024-04-07Feiner Bros PROPOSAL67Elwin Sharvill
1024Maisha S ShinkoIndia2024-03-21Benton, John B Jr UNQUALIFIED31Xuxue Feng
1025Antonio X SaylorsRussia2024-03-24Rousseaux, Michael Esq UNQUALIFIED68Ivan Magalhaes
1026Faith P GlickItaly2024-04-14Feltz Printing Service QUALIFIED66Onyama Limba
1027Adams K MarrierJapan2024-03-31Printing Dimensions RENEWAL79Xuxue Feng
1028Aruna M RutaAustralia2024-04-15Feiner Bros NEW19Ivan Magalhaes
1029Octavia R OldroydRussia2024-04-14Commercial Press RENEWAL90Asiya Javayant
1030Stacey P InouyeIndia2024-04-07Chemel, James L Cpa PROPOSAL39Amy Elsner
1031Mayumi H FlosiCanada2024-03-25Commercial Press UNQUALIFIED55Bernardo Dominic
1032Jefferson Z GarufiIndia2024-04-19Morlong Associates QUALIFIED85Asiya Javayant
1033Misaki A CampainArgentina2024-04-02Dorl, James J Esq NEW32Bernardo Dominic
1034Jefferson A KuskoBrazil2024-04-18Buckley Miller Wright PROPOSAL8Elwin Sharvill
1035Jones E AmigonItaly2024-03-27King, Christopher A Esq UNQUALIFIED19Amy Elsner
1036Aruna W CaldareraUnited Kingdom2024-03-30Chemel, James L Cpa RENEWAL35Ivan Magalhaes
1037Murillo J GarufiFrance2024-04-02Benton, John B Jr QUALIFIED4Anna Fali
1038Ricardo E OstroskyUnited Kingdom2024-03-22Rangoni Of Florence QUALIFIED42Onyama Limba
1039Kadeem A DilliardAustralia2024-03-23Benton, John B Jr RENEWAL17Asiya Javayant
1040Tony J WaycottItaly2024-04-08Chemel, James L Cpa NEGOTIATION37Elwin Sharvill
1041Darci V RoysterArgentina2024-03-31King, Christopher A Esq UNQUALIFIED69Ivan Magalhaes
1042Aruna L PoquetteSpain2024-03-22Buckley Miller Wright QUALIFIED59Xuxue Feng
1043Jeanfrancois T GarufiSpain2024-04-08Rousseaux, Michael Esq NEGOTIATION8Onyama Limba
1044Arvin Y SchemmerGermany2024-04-03Chapman, Ross E Esq RENEWAL88Xuxue Feng
1045Emily H MorascaFrance2024-04-12Feltz Printing Service NEW15Ioni Bowcher
1046Emily I StockhamItaly2024-03-26Rangoni Of Florence NEW7Xuxue Feng
1047Francesco N WhobreyUnited Kingdom2024-03-22Printing Dimensions UNQUALIFIED33Xuxue Feng
1048Costa J PaprockiFrance2024-03-27Chapman, Ross E Esq NEGOTIATION45Onyama Limba
1049Nicolas N OldroydRussia2024-03-21Morlong Associates QUALIFIED10Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Francesco R FerenczRussiaBernardo Dominic UNQUALIFIED
Aruna S FerenczGermanyOnyama Limba PROPOSAL
Costa O FigeroaBrazilIvan Magalhaes UNQUALIFIED
Rodrigues R WieserArgentinaAnna Fali UNQUALIFIED
Silvio C OstroskyAustraliaOnyama Limba NEGOTIATION
Adams V BriddickAustraliaOnyama Limba QUALIFIED
Darci Z GarufiGermanyOnyama Limba RENEWAL
Alejandro A NickaSpainBernardo Dominic NEGOTIATION
Chavez N PoquetteGermanyAsiya Javayant RENEWAL
Chavez E MarrierGermanyAnna Fali NEW
Alejandro B GarufiAustraliaBernardo Dominic RENEWAL
Silvio K FlosiRussiaAmy Elsner NEW
Izzy B FollerAustraliaElwin Sharvill UNQUALIFIED
Faith V StockhamSpainAnna Fali RENEWAL
Costa Y MaletRussiaAnna Fali RENEWAL
Aruna P GlickUnited KingdomIvan Magalhaes PROPOSAL
Faith J SaylorsItalyIoni Bowcher NEW
Jeanfrancois P NickaIndiaAnna Fali NEW
Ricardo W CaudySpainOnyama Limba PROPOSAL
Octavia Q IturbideSpainAmy Elsner PROPOSAL
Leja K VocelkaFranceIoni Bowcher RENEWAL
Jones M NestleRussiaElwin Sharvill UNQUALIFIED
Stacey H CampainUnited KingdomAsiya Javayant UNQUALIFIED
David T MaletRussiaAnna Fali RENEWAL
Greenwood M CampainIndiaXuxue Feng RENEWAL
Cody Z AlbaresBrazilAnna Fali PROPOSAL
Leon Z VocelkaUnited KingdomAnna Fali RENEWAL
Ashley J BowleyRussiaAnna Fali PROPOSAL
Morrow H RimGermanyAsiya Javayant UNQUALIFIED
Leon I WaycottItalyBernardo Dominic UNQUALIFIED
Silvio L NestleUnited KingdomAsiya Javayant NEW
Alejandro O OstroskyItalyAmy Elsner UNQUALIFIED
Mujtaba E CaudyAustraliaElwin Sharvill NEGOTIATION
Morrow E ShinkoRussiaXuxue Feng PROPOSAL
Misaki O RoysterAustraliaAnna Fali PROPOSAL
Johnson P MarrierRussiaBernardo Dominic NEGOTIATION
Adams L KolmetzJapanElwin Sharvill NEGOTIATION
Aditya X IturbideCanadaIoni Bowcher QUALIFIED
Arvin V SchemmerFranceIoni Bowcher UNQUALIFIED
Cody F SergiRussiaAmy Elsner RENEWAL
Octavia C SergiAustraliaAmy Elsner NEW
Jones V AmigonFranceOnyama Limba UNQUALIFIED
Ricardo C OstroskyBrazilIoni Bowcher NEGOTIATION
Silvio P BriddickCanadaAsiya Javayant UNQUALIFIED
Greenwood P SchemmerBrazilIoni Bowcher RENEWAL
Johnson Y GauchoRussiaAnna Fali NEW
Alejandro V CaldareraBrazilAsiya Javayant UNQUALIFIED
Isabel O RulapaughFranceXuxue Feng NEW
Murillo W GillianBrazilAnna Fali QUALIFIED
Johnson M AlbaresJapanAnna Fali NEGOTIATION
Frozen Columns
Name
Mayumi D Venere
Alejandro R Slusarski
Darci O Chui
Maisha D Ferencz
Francesco Q Chui
Adams K Nestle
Darci X Inouye
Murillo M Stockham
Jones S Albares
Murillo W Slusarski
Mujtaba R Foller
Darci V Inouye
Mayumi J Amigon
Ivar K Maclead
Smith S Poquette
Izzy I Vocelka
Emily P Ferencz
Isabel E Inouye
Chavez I Foller
Antonio B Morasca
Darci H Caldarera
Misaki W Darakjy
Jeanfrancois C Iturbide
Stacey R Inouye
Mujtaba A Foller
Aruna B Albares
Greenwood W Albares
Murillo P Bolognia
Misaki A Caldarera
Faith F Malet
Smith L Flosi
Nicolas K Foller
Johnson D Ferencz
Maisha R Malet
Murillo L Perin
Morrow N Schemmer
Sinclair E Flosi
Juan E Campain
Jeanfrancois H Bowley
Silvio G Perin
Greenwood K Caldarera
Octavia C Sergi
Darci Q Glick
Clifford M Malet
David Y Caudy
Clifford V Doe
Izzy G Caudy
Wickens O Perin
Jeanfrancois L Rim
Jennifer H Gaucho
IdCountryDate
1000France2024-04-07
1001Germany2024-04-19
1002Japan2024-04-10
1003Australia2024-04-03
1004Germany2024-04-02
1005Canada2024-04-17
1006Russia2024-04-17
1007Germany2024-04-07
1008France2024-03-26
1009Germany2024-04-05
1010Spain2024-03-22
1011France2024-03-22
1012Canada2024-03-31
1013Canada2024-04-11
1014United Kingdom2024-03-25
1015France2024-03-23
1016Canada2024-04-06
1017Italy2024-04-19
1018Australia2024-03-29
1019Spain2024-04-08
1020India2024-03-31
1021Brazil2024-04-11
1022Brazil2024-03-23
1023Germany2024-04-11
1024United Kingdom2024-03-31
1025Brazil2024-04-06
1026Germany2024-04-06
1027Brazil2024-04-01
1028Russia2024-03-28
1029Japan2024-04-08
1030Spain2024-04-03
1031Brazil2024-03-29
1032India2024-04-11
1033France2024-04-06
1034India2024-04-06
1035Australia2024-04-06
1036France2024-03-26
1037Australia2024-03-25
1038Canada2024-04-15
1039Brazil2024-04-03
1040Canada2024-03-25
1041Australia2024-03-28
1042Australia2024-04-02
1043Spain2024-04-12
1044France2024-04-11
1045Japan2024-04-17
1046Argentina2024-04-19
1047United Kingdom2024-03-22
1048Canada2024-03-22
1049Argentina2024-04-10

On-Demand Data

NameIdCountryDate
James Z Vocelka1000Australia2024-03-22
Costa P Bolognia1001Spain2024-04-16
Leja I Schemmer1002Russia2024-04-13
Jennifer E Garufi1003Spain2024-04-04
Antonio C Nestle1004Germany2024-04-08
Sinclair E Campain1005France2024-04-06
Kaitlin Y Kusko1006Japan2024-04-16
Greenwood C Gaucho1007Canada2024-04-15
Costa E Royster1008France2024-04-12
Silvio B Marrier1009Canada2024-04-11
Tony K Dilliard1010Canada2024-03-23
Mayumi G Darakjy1011India2024-04-05
Antonio R Schemmer1012Russia2024-04-13
Jeanfrancois F Stenseth1013Japan2024-04-12
Silvio V Saylors1014Japan2024-03-30
Ashley F Tollner1015Australia2024-03-27
Sinclair A Oldroyd1016India2024-04-16
Sinclair B Nestle1017Canada2024-04-19
Izzy U Nicka1018India2024-04-19
Julie D Kolmetz1019Australia2024-03-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens R DilliardUnited KingdomStephen Shaw PROPOSAL
Tony I FerenczArgentinaIoni Bowcher UNQUALIFIED
Silvio S TollnerJapanStephen Shaw QUALIFIED
Faith H KolmetzJapanOnyama Limba QUALIFIED
Salvatore Z PaprockiJapanIoni Bowcher UNQUALIFIED
Leon D NickaUnited KingdomAsiya Javayant NEW
Leon L NickaIndiaIvan Magalhaes RENEWAL
Nicolas N DarakjyUnited KingdomXuxue Feng UNQUALIFIED
Clifford I SlusarskiAustraliaAnna Fali UNQUALIFIED
Murillo G WhobreyRussiaAmy Elsner PROPOSAL
Juan P DarakjyUnited KingdomXuxue Feng NEGOTIATION
Johnson P SlusarskiGermanyOnyama Limba NEW
Sinclair Z StensethCanadaAnna Fali RENEWAL
Munro Y MarrierUnited KingdomOnyama Limba RENEWAL
Aruna K StockhamBrazilXuxue Feng NEW
Leja J MaletSpainElwin Sharvill QUALIFIED
Maisha T MaletJapanOnyama Limba RENEWAL
Jeanfrancois M PoquetteArgentinaElwin Sharvill RENEWAL
Aruna V AmigonSpainIvan Magalhaes PROPOSAL
Misaki Q CaldareraArgentinaAsiya Javayant NEGOTIATION
Adams Y ButtUnited KingdomOnyama Limba NEW
Costa X VenereIndiaAmy Elsner NEW
Claire D ButtGermanyIvan Magalhaes UNQUALIFIED
Leja Y RimJapanElwin Sharvill NEW
Johnson N KolmetzItalyElwin Sharvill RENEWAL
Leja A PerinItalyStephen Shaw NEGOTIATION
Francesco A BriddickItalyOnyama Limba PROPOSAL
Maria U WaycottGermanyXuxue Feng NEW
Antonio Z NickaGermanyIoni Bowcher RENEWAL
Ivar F GauchoItalyXuxue Feng NEGOTIATION
Nicolas K NickaJapanElwin Sharvill PROPOSAL
Morrow Z RutaIndiaStephen Shaw RENEWAL
Leja H StockhamCanadaAnna Fali QUALIFIED
Ricardo Z PaprockiCanadaXuxue Feng NEW
Alejandro H FlosiGermanyOnyama Limba PROPOSAL
Izzy Z RoysterRussiaXuxue Feng QUALIFIED
Jennifer K SchemmerSpainStephen Shaw NEGOTIATION
Rodrigues J BowleySpainStephen Shaw UNQUALIFIED
Ashley Z SergiCanadaBernardo Dominic NEW
David H RoysterFranceElwin Sharvill 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>