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
Jennifer N GarufiSpainAsiya Javayant NEW
Octavia I RulapaughAustraliaStephen Shaw NEW
Julie J ShinkoBrazilIvan Magalhaes PROPOSAL
Isabel J BowleySpainAmy Elsner PROPOSAL
Mayumi E FlosiArgentinaOnyama Limba NEGOTIATION
Claire B MacleadUnited KingdomIvan Magalhaes NEW
Costa K MacleadCanadaBernardo Dominic QUALIFIED
Ashley I BriddickArgentinaXuxue Feng RENEWAL
Aditya I DarakjyCanadaIoni Bowcher QUALIFIED
Kadeem I NestleJapanOnyama Limba QUALIFIED
Alejandro X MaletItalyElwin Sharvill PROPOSAL
Alejandro F StensethJapanIoni Bowcher NEGOTIATION
David Z SaylorsArgentinaElwin Sharvill NEGOTIATION
Aika E MorascaCanadaAsiya Javayant UNQUALIFIED
Adams M FlosiCanadaAnna Fali NEW
Deepesh C MaletIndiaIvan Magalhaes QUALIFIED
Arvin D RoysterArgentinaIoni Bowcher QUALIFIED
Ivar E GillianAustraliaBernardo Dominic QUALIFIED
Leon H MarrierItalyBernardo Dominic UNQUALIFIED
Aika K GlickFranceStephen Shaw PROPOSAL
Greenwood R CaldareraFranceAsiya Javayant RENEWAL
Ricardo V StockhamBrazilXuxue Feng QUALIFIED
Aika O BowleyUnited KingdomBernardo Dominic RENEWAL
Ivar O CaldareraCanadaAmy Elsner QUALIFIED
Francesco Y WhobreyItalyBernardo Dominic RENEWAL
Deepesh H OstroskyBrazilIoni Bowcher RENEWAL
Cody R ShinkoJapanStephen Shaw NEGOTIATION
Kadeem T ButtIndiaIoni Bowcher NEW
Adams O VocelkaGermanyElwin Sharvill PROPOSAL
Johnson R SaylorsAustraliaBernardo Dominic UNQUALIFIED
Julie P AmigonGermanyBernardo Dominic UNQUALIFIED
Ricardo J MacleadItalyAmy Elsner UNQUALIFIED
Aditya H DoeUnited KingdomElwin Sharvill UNQUALIFIED
Julie Q DilliardGermanyIoni Bowcher UNQUALIFIED
Mayumi R FlosiSpainStephen Shaw QUALIFIED
Aruna U KolmetzArgentinaXuxue Feng NEW
Aruna Q OstroskyIndiaStephen Shaw UNQUALIFIED
Darci Y ShinkoCanadaAnna Fali NEGOTIATION
Claire W NestleIndiaOnyama Limba RENEWAL
Juan Q ChuiBrazilStephen Shaw NEGOTIATION
Aditya W StockhamJapanAnna Fali NEGOTIATION
Kaitlin H OstroskyUnited KingdomAmy Elsner PROPOSAL
Stacey P GarufiRussiaIvan Magalhaes PROPOSAL
Deepesh V ButtCanadaAsiya Javayant PROPOSAL
Munro S OstroskyCanadaAsiya Javayant RENEWAL
Costa D InouyeBrazilIoni Bowcher NEGOTIATION
Leja U VenereJapanStephen Shaw NEW
James E SchemmerRussiaXuxue Feng UNQUALIFIED
Cody A MaletArgentinaOnyama Limba RENEWAL
Cody J OldroydItalyIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Johnson J WaycottJapanBernardo Dominic NEGOTIATION
Nicolas G BologniaIndiaAmy Elsner PROPOSAL
Kaitlin R PerinFranceAsiya Javayant NEW
Julie K WaycottGermanyIoni Bowcher UNQUALIFIED
Chavez B VenereBrazilStephen Shaw UNQUALIFIED
Murillo X InouyeSpainIoni Bowcher NEW
Silvio N MorascaItalyIvan Magalhaes QUALIFIED
Francesco C NestleJapanOnyama Limba RENEWAL
Octavia R RimSpainIoni Bowcher NEGOTIATION
Jeanfrancois Z DarakjyGermanyElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba A PerinBrazil2024-04-17Morlong Associates PROPOSAL25Stephen Shaw
1001James E GarufiFrance2024-04-12Benton, John B Jr PROPOSAL52Elwin Sharvill
1002David J TollnerIndia2024-04-16Morlong Associates RENEWAL76Ivan Magalhaes
1003Misaki A CaldareraIndia2024-03-20Commercial Press QUALIFIED28Onyama Limba
1004Emily H CaldareraFrance2024-04-07Printing Dimensions RENEWAL8Amy Elsner
1005Clifford V ChuiIndia2024-04-02Rousseaux, Michael Esq QUALIFIED22Anna Fali
1006Adams X OldroydRussia2024-03-21Feiner Bros UNQUALIFIED69Ioni Bowcher
1007Sinclair T GlickItaly2024-04-16Benton, John B Jr RENEWAL73Amy Elsner
1008Munro N RimSpain2024-04-08Benton, John B Jr QUALIFIED87Anna Fali
1009Darci M GarufiBrazil2024-04-13Rousseaux, Michael Esq QUALIFIED34Anna Fali
1010Arvin R FerenczCanada2024-03-24Buckley Miller Wright NEGOTIATION20Ioni Bowcher
1011Rodrigues A SergiCanada2024-04-16Rangoni Of Florence UNQUALIFIED57Stephen Shaw
1012Emily W RoysterBrazil2024-04-07Chemel, James L Cpa QUALIFIED77Xuxue Feng
1013Sinclair T KuskoBrazil2024-04-07Buckley Miller Wright NEGOTIATION14Elwin Sharvill
1014Chavez Y PoquetteGermany2024-04-18Printing Dimensions NEW30Ioni Bowcher
1015Octavia Q DarakjyAustralia2024-03-29Benton, John B Jr UNQUALIFIED28Onyama Limba
1016Clifford O VocelkaFrance2024-04-16Truhlar And Truhlar Attys RENEWAL42Anna Fali
1017Kadeem Z FollerBrazil2024-03-30Dorl, James J Esq PROPOSAL66Asiya Javayant
1018Maisha W MaletItaly2024-03-21Feltz Printing Service NEW72Bernardo Dominic
1019Munro O GillianRussia2024-04-02Chemel, James L Cpa UNQUALIFIED11Onyama Limba
1020Claire Y ShinkoBrazil2024-03-25King, Christopher A Esq PROPOSAL72Onyama Limba
1021Morrow K MaletItaly2024-03-27Commercial Press NEGOTIATION45Elwin Sharvill
1022Munro D GillianBrazil2024-03-30Printing Dimensions NEGOTIATION5Amy Elsner
1023Ashley R StensethUnited Kingdom2024-04-12Feltz Printing Service QUALIFIED18Stephen Shaw
1024Stacey S StockhamAustralia2024-04-14Chapman, Ross E Esq QUALIFIED51Elwin Sharvill
1025Jefferson R DilliardSpain2024-04-11Dorl, James J Esq UNQUALIFIED59Xuxue Feng
1026Jeanfrancois V FerenczBrazil2024-04-03Truhlar And Truhlar Attys UNQUALIFIED22Xuxue Feng
1027Jefferson E StockhamRussia2024-03-30Buckley Miller Wright NEGOTIATION58Elwin Sharvill
1028Johnson B WhobreyBrazil2024-04-15Chapman, Ross E Esq QUALIFIED67Xuxue Feng
1029Jefferson T WhobreySpain2024-04-15Chemel, James L Cpa NEW99Amy Elsner
1030Juan X SergiGermany2024-03-21Chanay, Jeffrey A Esq NEGOTIATION32Elwin Sharvill
1031Rodrigues K StockhamCanada2024-04-05Feiner Bros UNQUALIFIED61Ivan Magalhaes
1032Stacey W StockhamCanada2024-04-09Feltz Printing Service QUALIFIED52Ivan Magalhaes
1033Clifford J WhobreyIndia2024-04-09Rangoni Of Florence NEGOTIATION52Elwin Sharvill
1034Jennifer N MacleadCanada2024-04-03King, Christopher A Esq QUALIFIED17Onyama Limba
1035Aditya A SergiItaly2024-03-29Morlong Associates QUALIFIED1Ioni Bowcher
1036Faith H MacleadRussia2024-04-14Dorl, James J Esq UNQUALIFIED18Stephen Shaw
1037Faith H SlusarskiItaly2024-04-07Chemel, James L Cpa NEGOTIATION53Elwin Sharvill
1038Claire D PoquetteFrance2024-04-02Benton, John B Jr RENEWAL54Onyama Limba
1039Jefferson B RutaBrazil2024-04-16Commercial Press QUALIFIED55Stephen Shaw
1040Arvin M FlosiRussia2024-04-09King, Christopher A Esq PROPOSAL62Xuxue Feng
1041Kadeem T DilliardCanada2024-03-23Truhlar And Truhlar Attys NEGOTIATION95Amy Elsner
1042Johnson F AmigonGermany2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED66Onyama Limba
1043Ashley H SaylorsRussia2024-04-09Benton, John B Jr PROPOSAL61Amy Elsner
1044Nicolas V TollnerBrazil2024-03-28Chapman, Ross E Esq QUALIFIED38Ivan Magalhaes
1045Aruna C SaylorsItaly2024-03-24Commercial Press QUALIFIED15Ioni Bowcher
1046Costa V SlusarskiItaly2024-03-30Commercial Press RENEWAL81Stephen Shaw
1047Maria E CampainFrance2024-04-09Dorl, James J Esq UNQUALIFIED69Ioni Bowcher
1048Deepesh S FigeroaFrance2024-04-10Buckley Miller Wright UNQUALIFIED60Bernardo Dominic
1049Isabel F StensethRussia2024-04-01Rangoni Of Florence UNQUALIFIED74Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Murillo L SchemmerGermanyBernardo Dominic PROPOSAL
Mujtaba Y VocelkaItalyIoni Bowcher PROPOSAL
Jefferson P NickaBrazilAmy Elsner NEGOTIATION
Cody S KuskoRussiaStephen Shaw NEGOTIATION
Arvin B GillianAustraliaElwin Sharvill PROPOSAL
Wickens E StensethRussiaIoni Bowcher QUALIFIED
Ricardo S FlosiRussiaIoni Bowcher UNQUALIFIED
Faith Z WhobreyGermanyOnyama Limba NEGOTIATION
Morrow J WaycottSpainAmy Elsner NEGOTIATION
Ashley Z GauchoJapanXuxue Feng PROPOSAL
Aika V WieserGermanyAnna Fali NEGOTIATION
Francesco Z NestleIndiaXuxue Feng RENEWAL
Maisha F RulapaughSpainElwin Sharvill NEW
Leon X AmigonIndiaOnyama Limba QUALIFIED
Claire O WieserAustraliaXuxue Feng UNQUALIFIED
Francesco I IturbideJapanBernardo Dominic RENEWAL
Aika P VenereAustraliaIoni Bowcher RENEWAL
Ricardo P FigeroaIndiaIvan Magalhaes NEW
Johnson I GauchoAustraliaAnna Fali RENEWAL
Deepesh K WhobreyBrazilStephen Shaw RENEWAL
Kadeem Q PaprockiCanadaIvan Magalhaes RENEWAL
Kaitlin F GauchoItalyOnyama Limba NEW
Antonio R FlosiIndiaXuxue Feng QUALIFIED
Jeanfrancois S FollerJapanAnna Fali UNQUALIFIED
Munro R WaycottGermanyAmy Elsner PROPOSAL
Chavez U SergiCanadaIoni Bowcher QUALIFIED
Kaitlin D ButtSpainIvan Magalhaes RENEWAL
Antonio V NestleGermanyStephen Shaw QUALIFIED
Faith E CaudyBrazilIoni Bowcher UNQUALIFIED
Greenwood S GarufiRussiaAsiya Javayant RENEWAL
Izzy H KolmetzBrazilStephen Shaw RENEWAL
Jefferson S FlosiItalyAsiya Javayant UNQUALIFIED
Aditya O FlosiAustraliaStephen Shaw NEGOTIATION
Ivar A CaldareraSpainBernardo Dominic QUALIFIED
Aika D FollerIndiaAnna Fali NEW
Alejandro F SchemmerCanadaIvan Magalhaes QUALIFIED
Alejandro F FerenczAustraliaOnyama Limba NEW
Jefferson T BriddickUnited KingdomStephen Shaw QUALIFIED
Mayumi F InouyeFranceIvan Magalhaes NEGOTIATION
James E CaudyFranceIoni Bowcher NEW
Jefferson C WaycottUnited KingdomStephen Shaw QUALIFIED
Smith L CaudyItalyAsiya Javayant PROPOSAL
Wickens S CaudyBrazilElwin Sharvill NEW
Aika R GauchoUnited KingdomAsiya Javayant NEGOTIATION
Costa T RoysterSpainXuxue Feng QUALIFIED
Leon V StensethAustraliaXuxue Feng NEW
Maria X CaldareraBrazilStephen Shaw UNQUALIFIED
Smith Y VenereSpainAsiya Javayant NEGOTIATION
Morrow T GillianIndiaOnyama Limba RENEWAL
Julie K KolmetzAustraliaStephen Shaw UNQUALIFIED
Frozen Columns
Name
Greenwood B Doe
Cody E Chui
Tony N Shinko
Aditya M Kusko
Munro Y Kolmetz
Faith U Tollner
Ricardo G Schemmer
Antonio L Iturbide
Clifford E Campain
Faith K Amigon
Jeanfrancois G Waycott
Costa K Poquette
Darci D Flosi
Octavia U Butt
Arvin L Figeroa
Alejandro V Iturbide
Isabel E Oldroyd
Emily I Garufi
James J Rim
Claire B Venere
Leja X Caudy
Misaki O Bowley
Johnson F Saylors
Maria T Royster
Silvio C Venere
Darci J Morasca
Salvatore R Gaucho
Leja J Iturbide
Faith V Garufi
Ashley M Inouye
Sinclair F Butt
David V Kolmetz
Antonio K Perin
Aruna T Shinko
Kadeem B Marrier
Leja X Malet
Misaki X Gillian
Ricardo T Ferencz
Francesco I Sergi
Ashley J Kusko
Ivar M Glick
David B Rim
Leja F Flosi
Murillo K Flosi
Sinclair T Oldroyd
Nicolas H Nestle
Jones W Campain
Mujtaba N Amigon
Wickens Z Kolmetz
Isabel I Rulapaugh
IdCountryDate
1000Germany2024-04-12
1001Germany2024-04-05
1002Argentina2024-03-23
1003Argentina2024-04-12
1004India2024-03-20
1005India2024-03-30
1006Italy2024-04-08
1007Australia2024-04-14
1008Russia2024-04-11
1009Italy2024-03-22
1010Brazil2024-04-07
1011Japan2024-03-22
1012Japan2024-04-10
1013United Kingdom2024-04-02
1014Spain2024-04-06
1015Spain2024-03-21
1016Brazil2024-03-28
1017India2024-03-27
1018India2024-03-29
1019Japan2024-04-09
1020Germany2024-04-16
1021Australia2024-04-08
1022United Kingdom2024-04-18
1023Argentina2024-04-07
1024United Kingdom2024-03-24
1025United Kingdom2024-04-05
1026France2024-03-20
1027Russia2024-03-22
1028Germany2024-03-21
1029France2024-04-18
1030Japan2024-04-18
1031Germany2024-04-06
1032Russia2024-03-23
1033India2024-03-20
1034Argentina2024-03-21
1035Canada2024-04-18
1036France2024-04-13
1037Japan2024-04-03
1038Spain2024-04-11
1039Canada2024-03-23
1040Canada2024-03-24
1041Japan2024-04-01
1042France2024-04-07
1043France2024-03-27
1044Spain2024-04-15
1045Japan2024-04-03
1046United Kingdom2024-03-28
1047Italy2024-04-06
1048Germany2024-03-31
1049Germany2024-03-22

On-Demand Data

NameIdCountryDate
Sinclair R Gillian1000France2024-04-12
Juan W Foller1001Italy2024-04-14
Octavia N Whobrey1002United Kingdom2024-04-11
Greenwood O Oldroyd1003Russia2024-04-10
Claire P Doe1004Japan2024-04-05
Francesco E Gaucho1005United Kingdom2024-04-03
Leja F Stockham1006Germany2024-04-09
Smith D Stenseth1007Japan2024-04-15
Kaitlin W Gillian1008Australia2024-03-20
Morrow U Flosi1009Italy2024-03-25
Faith Z Rim1010Argentina2024-04-10
Isabel O Bolognia1011Argentina2024-04-14
Leja X Tollner1012India2024-03-25
Nicolas J Dilliard1013France2024-03-31
Maisha U Bowley1014United Kingdom2024-04-16
Jones K Saylors1015Spain2024-03-27
Murillo G Gillian1016Germany2024-04-15
Ivar S Gillian1017Brazil2024-03-28
Jennifer U Malet1018Canada2024-04-14
Silvio L Bowley1019Italy2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily F MaletAustraliaXuxue Feng QUALIFIED
Clifford W GillianFranceBernardo Dominic NEGOTIATION
Ivar H RulapaughCanadaBernardo Dominic UNQUALIFIED
Claire E WhobreyItalyAsiya Javayant UNQUALIFIED
Aruna A WieserSpainStephen Shaw UNQUALIFIED
Leja U AmigonAustraliaAnna Fali UNQUALIFIED
Alejandro N GauchoSpainElwin Sharvill PROPOSAL
Maisha S KuskoUnited KingdomIvan Magalhaes PROPOSAL
Misaki N VocelkaArgentinaStephen Shaw PROPOSAL
Silvio L VenereRussiaAnna Fali UNQUALIFIED
Adams Z KuskoArgentinaAnna Fali NEGOTIATION
Smith Q ChuiItalyOnyama Limba NEW
Alejandro D DarakjyBrazilXuxue Feng NEGOTIATION
Rodrigues N CaldareraJapanStephen Shaw PROPOSAL
Aika F FollerGermanyAnna Fali RENEWAL
Leon O FigeroaRussiaAnna Fali UNQUALIFIED
Mayumi J FollerCanadaIvan Magalhaes RENEWAL
Octavia F OstroskyJapanElwin Sharvill NEGOTIATION
Murillo D FollerBrazilOnyama Limba RENEWAL
Alejandro N BowleyIndiaAsiya Javayant QUALIFIED
Jennifer P DilliardUnited KingdomIvan Magalhaes NEGOTIATION
Aika G CaudyRussiaAsiya Javayant NEW
Silvio M CaldareraRussiaIvan Magalhaes UNQUALIFIED
David S CampainUnited KingdomStephen Shaw RENEWAL
Isabel W IturbideItalyAmy Elsner RENEWAL
Wickens J StockhamUnited KingdomBernardo Dominic PROPOSAL
Emily O BowleyGermanyStephen Shaw RENEWAL
Leon F KolmetzSpainIvan Magalhaes NEW
Costa E KolmetzArgentinaIvan Magalhaes NEGOTIATION
Mujtaba V AmigonJapanBernardo Dominic UNQUALIFIED
Wickens G TollnerAustraliaBernardo Dominic RENEWAL
Cody A DarakjyAustraliaIvan Magalhaes NEW
Murillo G RimCanadaAnna Fali QUALIFIED
Wickens F PerinRussiaStephen Shaw RENEWAL
Jeanfrancois K GauchoSpainStephen Shaw NEGOTIATION
Juan C NestleRussiaIvan Magalhaes QUALIFIED
Leja O KuskoRussiaIvan Magalhaes RENEWAL
Jefferson F SlusarskiArgentinaStephen Shaw QUALIFIED
Isabel D SergiSpainStephen Shaw UNQUALIFIED
Kadeem V CaudyRussiaElwin Sharvill RENEWAL

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