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 K BriddickItalyBernardo Dominic NEW
Nicolas H TollnerItalyXuxue Feng QUALIFIED
Kaitlin A DoeFranceStephen Shaw PROPOSAL
Clifford A MaletSpainIoni Bowcher UNQUALIFIED
Leja Y ChuiArgentinaOnyama Limba PROPOSAL
Jeanfrancois N RutaUnited KingdomOnyama Limba QUALIFIED
Morrow Z RoysterAustraliaOnyama Limba NEGOTIATION
Greenwood P StockhamItalyElwin Sharvill NEW
Greenwood A FigeroaRussiaIvan Magalhaes NEW
Aika M AlbaresArgentinaIoni Bowcher UNQUALIFIED
Ivar B ChuiCanadaAsiya Javayant QUALIFIED
Jennifer D MaletUnited KingdomAnna Fali NEGOTIATION
Faith S GauchoArgentinaStephen Shaw NEGOTIATION
Ricardo I AmigonFranceIvan Magalhaes NEGOTIATION
Alejandro O BologniaItalyStephen Shaw NEW
David N SaylorsSpainIoni Bowcher RENEWAL
Clifford Z MorascaIndiaOnyama Limba NEW
Ashley Q GillianCanadaOnyama Limba NEGOTIATION
Francesco W MaletBrazilXuxue Feng NEGOTIATION
Maria U BriddickIndiaElwin Sharvill QUALIFIED
Kadeem Z RimFranceIoni Bowcher NEW
Mujtaba U KuskoFranceBernardo Dominic RENEWAL
Tony G OldroydFranceAnna Fali PROPOSAL
Ivar W FlosiIndiaIoni Bowcher QUALIFIED
Adams R FlosiUnited KingdomElwin Sharvill NEW
Aditya F GauchoFranceIvan Magalhaes QUALIFIED
Aika M InouyeGermanyIoni Bowcher QUALIFIED
Aruna I AmigonSpainAsiya Javayant UNQUALIFIED
Silvio E CampainAustraliaElwin Sharvill RENEWAL
Maisha Y FigeroaGermanyAmy Elsner PROPOSAL
Faith Z GlickGermanyAmy Elsner NEW
Johnson X BriddickRussiaIoni Bowcher NEW
Francesco A ButtAustraliaIoni Bowcher NEGOTIATION
Leja D WhobreyIndiaBernardo Dominic NEGOTIATION
Claire I OldroydAustraliaOnyama Limba NEW
Leon X VenereRussiaStephen Shaw RENEWAL
Wickens S RutaJapanAmy Elsner NEGOTIATION
Leon O AlbaresRussiaAsiya Javayant PROPOSAL
Jeanfrancois V RulapaughItalyAmy Elsner PROPOSAL
Rodrigues G KuskoAustraliaIoni Bowcher RENEWAL
Mujtaba C NestleArgentinaIvan Magalhaes PROPOSAL
Faith W RimGermanyIvan Magalhaes PROPOSAL
Costa X MaletArgentinaIoni Bowcher NEW
Aditya W MaletJapanOnyama Limba PROPOSAL
Aika C DoeAustraliaAsiya Javayant PROPOSAL
Juan I FlosiIndiaElwin Sharvill QUALIFIED
Smith N ShinkoUnited KingdomAnna Fali RENEWAL
Leja C OstroskyFranceAmy Elsner RENEWAL
Silvio C RutaBrazilElwin Sharvill UNQUALIFIED
Costa Y CaldareraSpainIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Costa D RoysterAustraliaOnyama Limba PROPOSAL
Adams G MaletUnited KingdomAsiya Javayant NEW
Leon I SlusarskiBrazilElwin Sharvill NEW
Mayumi U TollnerSpainAmy Elsner UNQUALIFIED
Claire E IturbideGermanyOnyama Limba NEGOTIATION
Clifford U OstroskyItalyStephen Shaw PROPOSAL
Cody K OstroskyCanadaBernardo Dominic RENEWAL
Misaki S ChuiAustraliaStephen Shaw PROPOSAL
Misaki L ChuiIndiaXuxue Feng UNQUALIFIED
David B FerenczArgentinaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel E RulapaughCanada2024-04-06Feltz Printing Service QUALIFIED78Stephen Shaw
1001Mujtaba Z MarrierSpain2024-04-13Feltz Printing Service RENEWAL31Elwin Sharvill
1002Wickens D SchemmerArgentina2024-04-07Rousseaux, Michael Esq RENEWAL17Asiya Javayant
1003Tony L GauchoFrance2024-04-18Printing Dimensions NEW8Ivan Magalhaes
1004Ivar X SergiSpain2024-03-28Commercial Press NEGOTIATION70Onyama Limba
1005Deepesh U RulapaughBrazil2024-04-07Dorl, James J Esq NEGOTIATION23Stephen Shaw
1006Nicolas L GarufiItaly2024-04-12Feltz Printing Service QUALIFIED93Elwin Sharvill
1007Claire E WhobreyAustralia2024-04-11Printing Dimensions NEW11Onyama Limba
1008Aika X PoquetteRussia2024-03-26Chapman, Ross E Esq QUALIFIED57Asiya Javayant
1009Aditya K InouyeGermany2024-04-14Rousseaux, Michael Esq RENEWAL87Xuxue Feng
1010Clifford L AmigonCanada2024-04-13Commercial Press UNQUALIFIED87Bernardo Dominic
1011Stacey C FlosiSpain2024-04-09Feltz Printing Service PROPOSAL25Anna Fali
1012Maria H SlusarskiUnited Kingdom2024-04-18Feltz Printing Service NEGOTIATION14Elwin Sharvill
1013Aruna B BologniaRussia2024-03-26King, Christopher A Esq PROPOSAL1Ivan Magalhaes
1014Ashley B BowleyGermany2024-04-16Truhlar And Truhlar Attys NEW3Ivan Magalhaes
1015Morrow J ButtGermany2024-04-08Chemel, James L Cpa NEW0Amy Elsner
1016Kaitlin R MaletItaly2024-04-22Benton, John B Jr PROPOSAL84Ivan Magalhaes
1017Antonio U PaprockiCanada2024-04-21Chapman, Ross E Esq NEGOTIATION31Asiya Javayant
1018Munro R FerenczCanada2024-04-15Commercial Press QUALIFIED75Ioni Bowcher
1019Octavia M BowleyRussia2024-04-19Chemel, James L Cpa UNQUALIFIED79Bernardo Dominic
1020Emily J NickaJapan2024-04-20Chemel, James L Cpa UNQUALIFIED84Onyama Limba
1021Aika C CaldareraAustralia2024-04-24Buckley Miller Wright UNQUALIFIED40Ivan Magalhaes
1022Aditya C MaletFrance2024-04-20Commercial Press QUALIFIED75Bernardo Dominic
1023Deepesh Y GlickBrazil2024-03-27Printing Dimensions UNQUALIFIED52Anna Fali
1024Kadeem Y MacleadSpain2024-04-22Rangoni Of Florence NEW61Onyama Limba
1025Clifford J ShinkoFrance2024-04-07Dorl, James J Esq NEGOTIATION50Onyama Limba
1026Aruna D VocelkaFrance2024-04-09Truhlar And Truhlar Attys RENEWAL45Amy Elsner
1027Isabel I OstroskyArgentina2024-04-11Feiner Bros QUALIFIED71Amy Elsner
1028Faith E WaycottIndia2024-04-01Chapman, Ross E Esq UNQUALIFIED95Anna Fali
1029Alejandro C StockhamItaly2024-03-27Commercial Press RENEWAL73Amy Elsner
1030James H StensethSpain2024-04-06Truhlar And Truhlar Attys NEGOTIATION44Ivan Magalhaes
1031Morrow P IturbideGermany2024-03-30Rousseaux, Michael Esq UNQUALIFIED22Onyama Limba
1032Salvatore D SergiArgentina2024-04-20Dorl, James J Esq RENEWAL70Elwin Sharvill
1033Johnson I PerinCanada2024-04-20Rousseaux, Michael Esq NEW65Asiya Javayant
1034Alejandro X MacleadArgentina2024-04-17Benton, John B Jr NEGOTIATION3Bernardo Dominic
1035Mujtaba X OstroskySpain2024-04-20Chemel, James L Cpa PROPOSAL22Stephen Shaw
1036Jefferson I CaldareraAustralia2024-04-14Dorl, James J Esq NEGOTIATION11Bernardo Dominic
1037Wickens I BowleySpain2024-04-20Chemel, James L Cpa NEGOTIATION31Ioni Bowcher
1038Tony E ButtRussia2024-04-03King, Christopher A Esq NEW96Elwin Sharvill
1039Jennifer L PoquetteRussia2024-03-26Printing Dimensions QUALIFIED81Onyama Limba
1040Isabel B BologniaUnited Kingdom2024-04-15Morlong Associates UNQUALIFIED60Anna Fali
1041Antonio X IturbideRussia2024-04-23Dorl, James J Esq NEW29Ioni Bowcher
1042Murillo U KuskoAustralia2024-04-16Morlong Associates NEGOTIATION21Ivan Magalhaes
1043Sinclair M GarufiCanada2024-03-28Feltz Printing Service NEW20Elwin Sharvill
1044David J StensethGermany2024-04-05Commercial Press QUALIFIED7Xuxue Feng
1045Isabel L VenereBrazil2024-03-31Chemel, James L Cpa UNQUALIFIED58Xuxue Feng
1046Costa T FlosiRussia2024-04-05Buckley Miller Wright NEW24Elwin Sharvill
1047Kadeem G BriddickItaly2024-04-04Rangoni Of Florence RENEWAL82Anna Fali
1048Salvatore S CampainGermany2024-03-29Feltz Printing Service PROPOSAL69Elwin Sharvill
1049Misaki V RoysterRussia2024-04-14Chapman, Ross E Esq UNQUALIFIED33Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
James M VenereIndiaAsiya Javayant UNQUALIFIED
Claire A WieserCanadaAnna Fali NEW
Francesco X NickaFranceAmy Elsner NEW
Jones W PoquetteIndiaBernardo Dominic NEGOTIATION
Costa Q RimArgentinaStephen Shaw NEGOTIATION
Alejandro Q MacleadJapanIvan Magalhaes RENEWAL
Jefferson Z NestleAustraliaAsiya Javayant RENEWAL
Jeanfrancois N MaletSpainXuxue Feng NEGOTIATION
Antonio H MaletFranceOnyama Limba PROPOSAL
Nicolas F GauchoUnited KingdomAmy Elsner NEW
Jefferson L SergiCanadaXuxue Feng PROPOSAL
Munro C DoeGermanyBernardo Dominic NEW
Darci E MorascaJapanIoni Bowcher RENEWAL
Murillo U CaudyAustraliaStephen Shaw UNQUALIFIED
Wickens C GarufiBrazilIoni Bowcher NEGOTIATION
Octavia E GauchoAustraliaElwin Sharvill PROPOSAL
Aruna I MarrierRussiaIvan Magalhaes NEW
Cody P TollnerFranceAmy Elsner NEGOTIATION
Murillo R VocelkaGermanyBernardo Dominic NEGOTIATION
Antonio I NickaSpainAnna Fali PROPOSAL
Antonio I RoysterRussiaXuxue Feng UNQUALIFIED
Johnson Z FlosiUnited KingdomElwin Sharvill UNQUALIFIED
Emily E RimItalyElwin Sharvill RENEWAL
Arvin M BologniaCanadaStephen Shaw PROPOSAL
Jones F MaletIndiaIvan Magalhaes NEW
Greenwood C VenereJapanBernardo Dominic RENEWAL
Izzy F FlosiBrazilOnyama Limba UNQUALIFIED
Chavez Y WieserItalyAsiya Javayant NEGOTIATION
Darci N AlbaresBrazilStephen Shaw PROPOSAL
Aditya A ShinkoAustraliaIoni Bowcher NEGOTIATION
Alejandro O BologniaBrazilAsiya Javayant QUALIFIED
Francesco H OldroydSpainIoni Bowcher NEW
Rodrigues F FollerArgentinaBernardo Dominic UNQUALIFIED
Julie X PaprockiCanadaIvan Magalhaes QUALIFIED
Deepesh L MaletArgentinaAnna Fali UNQUALIFIED
Aditya Q OldroydArgentinaStephen Shaw PROPOSAL
Misaki F CaldareraBrazilIvan Magalhaes RENEWAL
Leon I PerinFranceXuxue Feng QUALIFIED
Johnson P KolmetzItalyIvan Magalhaes UNQUALIFIED
Jefferson K DarakjyAustraliaBernardo Dominic NEW
Isabel S FerenczBrazilIoni Bowcher NEGOTIATION
Jefferson I WaycottIndiaIvan Magalhaes UNQUALIFIED
Deepesh R SaylorsCanadaBernardo Dominic QUALIFIED
Octavia C RutaUnited KingdomIvan Magalhaes NEW
Octavia J SergiFranceIoni Bowcher NEW
Tony U CaudyAustraliaBernardo Dominic QUALIFIED
Mayumi Q RutaAustraliaIvan Magalhaes PROPOSAL
James C RutaBrazilStephen Shaw PROPOSAL
Darci K StockhamArgentinaBernardo Dominic QUALIFIED
Sinclair W BowleyCanadaXuxue Feng NEW
Frozen Columns
Name
Arvin U Campain
Aika E Ostrosky
Mujtaba L Bolognia
Darci W Saylors
Leja C Rim
Salvatore X Flosi
Mujtaba V Flosi
Arvin I Chui
Silvio G Flosi
Silvio O Nestle
Juan K Nicka
Jones B Marrier
Johnson I Iturbide
Costa S Nestle
Greenwood R Oldroyd
Ivar K Amigon
Emily B Butt
Francesco B Morasca
Nicolas G Glick
Sinclair S Rulapaugh
Leja W Shinko
Maria X Morasca
Maria W Waycott
Claire A Maclead
Sinclair S Rulapaugh
Alejandro O Shinko
Maisha V Bolognia
Octavia W Kolmetz
Costa J Darakjy
Antonio Z Slusarski
Octavia D Gaucho
Claire F Shinko
Maria M Venere
Isabel V Shinko
James A Perin
Isabel T Caldarera
Antonio L Nestle
Aika R Perin
David E Tollner
Isabel H Marrier
Juan U Marrier
Mayumi N Glick
David I Stenseth
Isabel H Saylors
Sinclair F Rulapaugh
Adams S Rim
Kaitlin Y Stenseth
Misaki A Doe
Ricardo A Iturbide
Morrow M Chui
IdCountryDate
1000Russia2024-04-23
1001Australia2024-04-09
1002United Kingdom2024-04-12
1003Canada2024-04-19
1004Brazil2024-04-22
1005India2024-04-20
1006Australia2024-04-04
1007Canada2024-04-14
1008Australia2024-04-19
1009France2024-04-09
1010Spain2024-03-28
1011Italy2024-04-13
1012France2024-04-20
1013Brazil2024-04-10
1014Italy2024-04-04
1015Germany2024-04-22
1016Australia2024-04-12
1017India2024-04-16
1018Japan2024-03-29
1019United Kingdom2024-04-03
1020Australia2024-04-20
1021Japan2024-04-08
1022Brazil2024-03-28
1023India2024-04-24
1024Spain2024-04-01
1025Russia2024-04-11
1026France2024-04-22
1027France2024-03-31
1028Australia2024-04-15
1029Japan2024-04-07
1030Argentina2024-04-24
1031Australia2024-04-11
1032India2024-03-26
1033Argentina2024-04-03
1034Italy2024-03-30
1035Argentina2024-03-26
1036Canada2024-04-18
1037Brazil2024-04-20
1038Italy2024-04-12
1039Germany2024-03-30
1040United Kingdom2024-04-17
1041India2024-04-21
1042Australia2024-04-04
1043United Kingdom2024-04-07
1044France2024-04-05
1045France2024-04-15
1046France2024-04-16
1047Argentina2024-04-01
1048United Kingdom2024-03-27
1049Australia2024-04-22

On-Demand Data

NameIdCountryDate
Aruna R Flosi1000India2024-04-17
Aruna W Marrier1001Germany2024-04-03
Cody G Kolmetz1002France2024-04-17
Leon L Doe1003India2024-04-15
Aditya S Garufi1004India2024-04-05
Antonio Q Perin1005United Kingdom2024-04-07
Faith F Oldroyd1006Brazil2024-04-04
Jeanfrancois L Royster1007India2024-04-05
Jennifer N Shinko1008Argentina2024-04-18
Izzy I Caudy1009Spain2024-04-14
Costa L Ferencz1010Australia2024-04-22
Jefferson Q Rim1011Spain2024-04-12
Ricardo O Tollner1012Brazil2024-04-10
Juan Y Gaucho1013Canada2024-04-21
Murillo N Doe1014Russia2024-03-31
James G Whobrey1015United Kingdom2024-04-01
Arvin S Venere1016Japan2024-04-23
Ivar X Maclead1017Germany2024-04-09
Leon Z Figeroa1018United Kingdom2024-04-23
Leon X Perin1019Japan2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo H GlickFranceAmy Elsner UNQUALIFIED
Morrow S SaylorsIndiaElwin Sharvill RENEWAL
Greenwood T PoquetteArgentinaAsiya Javayant NEGOTIATION
Smith Y SaylorsIndiaAmy Elsner QUALIFIED
Mayumi P BriddickCanadaAmy Elsner QUALIFIED
Silvio I BowleyGermanyAsiya Javayant UNQUALIFIED
Smith N PerinSpainIvan Magalhaes NEW
Cody X CaldareraArgentinaXuxue Feng NEW
David H RoysterGermanyIvan Magalhaes UNQUALIFIED
Ashley U NestleAustraliaIvan Magalhaes UNQUALIFIED
Jeanfrancois S WhobreyGermanyIvan Magalhaes RENEWAL
Maria W MorascaJapanIvan Magalhaes NEGOTIATION
Greenwood R FlosiBrazilBernardo Dominic RENEWAL
Mayumi S SaylorsFranceOnyama Limba QUALIFIED
Ivar Q VocelkaSpainAmy Elsner QUALIFIED
Julie H CaldareraCanadaStephen Shaw NEW
Julie H BriddickCanadaAsiya Javayant RENEWAL
Maria X SaylorsUnited KingdomStephen Shaw PROPOSAL
Ashley C AmigonJapanIvan Magalhaes NEW
Julie F ButtArgentinaIoni Bowcher UNQUALIFIED
Jeanfrancois Y SaylorsSpainIoni Bowcher UNQUALIFIED
James L RulapaughRussiaBernardo Dominic NEGOTIATION
Chavez D TollnerAustraliaIoni Bowcher PROPOSAL
Mujtaba B ButtJapanAmy Elsner NEW
Aruna B NestleJapanStephen Shaw RENEWAL
Smith W PaprockiBrazilElwin Sharvill NEGOTIATION
Ricardo V BriddickGermanyElwin Sharvill UNQUALIFIED
Juan B RimFranceAnna Fali PROPOSAL
Mayumi V KolmetzFranceAnna Fali NEW
David E BowleyItalyIvan Magalhaes NEW
Maisha U FerenczItalyOnyama Limba RENEWAL
Darci D AlbaresRussiaBernardo Dominic NEGOTIATION
Alejandro G MaletUnited KingdomIvan Magalhaes PROPOSAL
Darci P TollnerJapanAnna Fali PROPOSAL
Leon U GarufiCanadaElwin Sharvill RENEWAL
Nicolas R PaprockiCanadaXuxue Feng NEGOTIATION
Chavez W StensethJapanIoni Bowcher QUALIFIED
Smith C NickaSpainAsiya Javayant RENEWAL
Mujtaba C StensethArgentinaElwin Sharvill NEW
Deepesh V MorascaCanadaAmy Elsner NEGOTIATION

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