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
Morrow Y GillianSpainBernardo Dominic NEW
Nicolas P SergiFranceIvan Magalhaes QUALIFIED
Smith Y WieserCanadaAsiya Javayant NEGOTIATION
Aditya K PerinGermanyIoni Bowcher QUALIFIED
Misaki L BologniaItalyStephen Shaw UNQUALIFIED
Arvin I GlickUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood V IturbideSpainAsiya Javayant NEGOTIATION
Izzy D StensethAustraliaAsiya Javayant NEW
Stacey Z VenereBrazilOnyama Limba PROPOSAL
Mujtaba J DilliardGermanyAsiya Javayant PROPOSAL
Faith V NestleItalyXuxue Feng PROPOSAL
Antonio W BriddickItalyOnyama Limba QUALIFIED
Smith G ChuiGermanyIvan Magalhaes PROPOSAL
Smith E GlickItalyBernardo Dominic QUALIFIED
Ashley H FlosiArgentinaAnna Fali NEGOTIATION
Morrow I SchemmerArgentinaAmy Elsner PROPOSAL
Johnson V KuskoBrazilXuxue Feng NEGOTIATION
Misaki B SchemmerArgentinaXuxue Feng PROPOSAL
David Z BriddickFranceBernardo Dominic UNQUALIFIED
Munro I OstroskyAustraliaElwin Sharvill QUALIFIED
James L RulapaughArgentinaElwin Sharvill PROPOSAL
Juan K StensethIndiaIvan Magalhaes UNQUALIFIED
Darci V DarakjyGermanyXuxue Feng UNQUALIFIED
Munro A OstroskyGermanyBernardo Dominic NEGOTIATION
Aruna D DoeItalyElwin Sharvill NEW
David S TollnerGermanyOnyama Limba UNQUALIFIED
Nicolas C IturbideRussiaXuxue Feng NEGOTIATION
Nicolas I ChuiGermanyOnyama Limba PROPOSAL
Alejandro W GlickArgentinaXuxue Feng PROPOSAL
Jones Y RimIndiaAnna Fali NEW
Aika Z MacleadCanadaXuxue Feng NEW
Isabel B StensethBrazilStephen Shaw UNQUALIFIED
Claire Y WhobreyJapanIvan Magalhaes NEW
Tony K ButtGermanyBernardo Dominic NEGOTIATION
Kadeem I ButtJapanOnyama Limba NEGOTIATION
Leon W VocelkaUnited KingdomAsiya Javayant UNQUALIFIED
Jefferson R DoeBrazilAnna Fali RENEWAL
Darci D WaycottArgentinaIvan Magalhaes NEW
Maria M MaletAustraliaAmy Elsner QUALIFIED
Izzy A VocelkaIndiaStephen Shaw QUALIFIED
Morrow E WieserAustraliaXuxue Feng NEW
Costa X SaylorsGermanyIoni Bowcher RENEWAL
Arvin L FigeroaRussiaAsiya Javayant RENEWAL
Greenwood Q AmigonCanadaAsiya Javayant PROPOSAL
Emily W FigeroaCanadaAnna Fali PROPOSAL
Darci W MarrierItalyIoni Bowcher NEW
Chavez T SlusarskiBrazilStephen Shaw NEW
Alejandro U BowleyUnited KingdomXuxue Feng PROPOSAL
Johnson V StensethAustraliaStephen Shaw QUALIFIED
Sinclair O SlusarskiAustraliaIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Kadeem T StockhamSpainStephen Shaw QUALIFIED
Maria U FlosiAustraliaElwin Sharvill RENEWAL
Salvatore A AlbaresBrazilElwin Sharvill UNQUALIFIED
Maisha Y RimRussiaIvan Magalhaes RENEWAL
Ricardo X CaldareraGermanyElwin Sharvill PROPOSAL
Alejandro J VocelkaCanadaIoni Bowcher RENEWAL
Silvio J MaletItalyAmy Elsner QUALIFIED
Tony X MaletJapanElwin Sharvill UNQUALIFIED
Faith F DarakjyGermanyXuxue Feng NEGOTIATION
Johnson L SaylorsArgentinaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Julie X NestleItaly2024-04-08Benton, John B Jr UNQUALIFIED23Elwin Sharvill
1001Greenwood O RoysterSpain2024-03-28Commercial Press NEW34Anna Fali
1002Salvatore O NestleGermany2024-04-19Rousseaux, Michael Esq NEW99Asiya Javayant
1003Leja H StockhamGermany2024-04-02King, Christopher A Esq RENEWAL20Stephen Shaw
1004Mujtaba B RoysterFrance2024-03-28Feltz Printing Service PROPOSAL28Asiya Javayant
1005Aditya M BologniaUnited Kingdom2024-04-16Morlong Associates NEGOTIATION82Ioni Bowcher
1006Mujtaba O RulapaughGermany2024-04-21Feiner Bros RENEWAL99Ioni Bowcher
1007Antonio B WhobreyUnited Kingdom2024-04-15Rousseaux, Michael Esq QUALIFIED84Xuxue Feng
1008Jefferson A AlbaresFrance2024-03-31Feltz Printing Service UNQUALIFIED69Ivan Magalhaes
1009Darci M ChuiSpain2024-03-30Commercial Press NEW16Bernardo Dominic
1010Ashley V DilliardBrazil2024-04-26Rousseaux, Michael Esq QUALIFIED26Stephen Shaw
1011David D VocelkaRussia2024-04-26Commercial Press PROPOSAL87Asiya Javayant
1012Johnson R PerinSpain2024-04-06Chemel, James L Cpa QUALIFIED99Stephen Shaw
1013Leon N MacleadJapan2024-04-17King, Christopher A Esq PROPOSAL35Ivan Magalhaes
1014Aditya Y MacleadSpain2024-04-12Feiner Bros RENEWAL89Bernardo Dominic
1015Jones J AmigonSpain2024-04-05Feiner Bros PROPOSAL46Elwin Sharvill
1016Maria E DoeGermany2024-04-08Chemel, James L Cpa RENEWAL6Anna Fali
1017Arvin Q SchemmerCanada2024-04-07King, Christopher A Esq RENEWAL43Bernardo Dominic
1018Emily S AmigonGermany2024-04-09Buckley Miller Wright RENEWAL16Anna Fali
1019Aika I TollnerArgentina2024-04-02Buckley Miller Wright NEGOTIATION97Ioni Bowcher
1020Aruna I ButtRussia2024-04-07Chemel, James L Cpa UNQUALIFIED75Stephen Shaw
1021Ashley V BriddickUnited Kingdom2024-04-19Chapman, Ross E Esq RENEWAL53Onyama Limba
1022Juan P PaprockiIndia2024-04-02Printing Dimensions NEW26Onyama Limba
1023Francesco J TollnerUnited Kingdom2024-04-01King, Christopher A Esq PROPOSAL49Anna Fali
1024Salvatore I WhobreyCanada2024-04-20Commercial Press PROPOSAL92Bernardo Dominic
1025Maisha W StensethArgentina2024-04-24Rousseaux, Michael Esq NEGOTIATION33Ioni Bowcher
1026Johnson S GlickAustralia2024-04-10Chanay, Jeffrey A Esq QUALIFIED48Elwin Sharvill
1027Kaitlin C ButtRussia2024-03-28Benton, John B Jr UNQUALIFIED50Ivan Magalhaes
1028Izzy S PaprockiUnited Kingdom2024-04-18Truhlar And Truhlar Attys RENEWAL70Stephen Shaw
1029Clifford K BriddickUnited Kingdom2024-04-03Buckley Miller Wright UNQUALIFIED34Xuxue Feng
1030David C NickaArgentina2024-04-22Rangoni Of Florence NEW82Ivan Magalhaes
1031Jones X GlickGermany2024-04-23Chanay, Jeffrey A Esq RENEWAL93Asiya Javayant
1032Faith N ChuiRussia2024-04-26Printing Dimensions QUALIFIED8Elwin Sharvill
1033Ricardo P GarufiIndia2024-04-10Feltz Printing Service PROPOSAL26Anna Fali
1034Aika R TollnerFrance2024-04-25Chemel, James L Cpa NEW28Stephen Shaw
1035Stacey I CaudyCanada2024-04-02Feltz Printing Service PROPOSAL74Anna Fali
1036Wickens K IturbideItaly2024-04-06Chanay, Jeffrey A Esq PROPOSAL29Ioni Bowcher
1037Johnson C MaletItaly2024-04-13Buckley Miller Wright QUALIFIED72Onyama Limba
1038Aruna T GarufiJapan2024-04-04Printing Dimensions NEW70Ioni Bowcher
1039Silvio G PerinItaly2024-04-24Chanay, Jeffrey A Esq PROPOSAL14Stephen Shaw
1040Deepesh S MacleadBrazil2024-04-19Chemel, James L Cpa NEGOTIATION11Asiya Javayant
1041Jennifer D InouyeArgentina2024-04-25Rousseaux, Michael Esq UNQUALIFIED72Anna Fali
1042Kaitlin W GillianCanada2024-04-11Printing Dimensions PROPOSAL86Asiya Javayant
1043Rodrigues A CaldareraSpain2024-04-04Feltz Printing Service NEW46Xuxue Feng
1044Costa G RimUnited Kingdom2024-04-05Buckley Miller Wright RENEWAL53Anna Fali
1045Arvin K GlickIndia2024-04-14Chapman, Ross E Esq UNQUALIFIED55Ioni Bowcher
1046Maria M DilliardRussia2024-04-08Buckley Miller Wright UNQUALIFIED62Anna Fali
1047Octavia E CampainBrazil2024-03-31Rangoni Of Florence NEW67Bernardo Dominic
1048Cody O PoquetteRussia2024-04-26Feiner Bros UNQUALIFIED78Bernardo Dominic
1049Cody R MaletUnited Kingdom2024-04-02Chapman, Ross E Esq NEGOTIATION47Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Tony C ChuiFranceAnna Fali QUALIFIED
Francesco Y WieserAustraliaBernardo Dominic RENEWAL
Maisha E WieserFranceAsiya Javayant RENEWAL
Kadeem Y ShinkoIndiaOnyama Limba QUALIFIED
Greenwood N GillianIndiaElwin Sharvill NEGOTIATION
Salvatore Q AmigonArgentinaElwin Sharvill UNQUALIFIED
Leja Z PoquetteItalyIoni Bowcher RENEWAL
Clifford D FollerItalyOnyama Limba NEW
Octavia R FigeroaIndiaElwin Sharvill RENEWAL
Silvio L DilliardAustraliaOnyama Limba NEW
Smith L GillianAustraliaXuxue Feng NEW
Chavez Z CaldareraGermanyStephen Shaw NEGOTIATION
Claire X VenereIndiaOnyama Limba UNQUALIFIED
Wickens P RutaSpainAmy Elsner UNQUALIFIED
Ashley D GauchoCanadaIoni Bowcher UNQUALIFIED
Aika F VenereJapanAmy Elsner UNQUALIFIED
Silvio P BowleyJapanIoni Bowcher PROPOSAL
Ivar E StockhamItalyIvan Magalhaes PROPOSAL
Claire U FerenczRussiaStephen Shaw QUALIFIED
Claire P RoysterUnited KingdomIoni Bowcher NEW
Nicolas C CampainBrazilAmy Elsner RENEWAL
Antonio Q PoquetteRussiaElwin Sharvill PROPOSAL
Octavia U SergiBrazilAmy Elsner PROPOSAL
Deepesh S KolmetzAustraliaBernardo Dominic PROPOSAL
Chavez Q KolmetzCanadaAsiya Javayant NEGOTIATION
Wickens L InouyeIndiaIvan Magalhaes QUALIFIED
Leja I GillianGermanyElwin Sharvill PROPOSAL
Juan X RimJapanStephen Shaw UNQUALIFIED
Johnson G FlosiArgentinaElwin Sharvill RENEWAL
Julie J WaycottSpainIoni Bowcher RENEWAL
Ivar O VenereFranceIoni Bowcher UNQUALIFIED
Stacey Q IturbideJapanIoni Bowcher NEGOTIATION
Octavia K GarufiSpainStephen Shaw PROPOSAL
Aditya N ShinkoJapanStephen Shaw PROPOSAL
Nicolas L WhobreyCanadaBernardo Dominic PROPOSAL
Francesco T MaletFranceIvan Magalhaes QUALIFIED
Juan J NestleBrazilAnna Fali RENEWAL
Deepesh S KuskoJapanIvan Magalhaes UNQUALIFIED
David S DarakjySpainIoni Bowcher QUALIFIED
Ashley D IturbideSpainElwin Sharvill UNQUALIFIED
Adams P GauchoAustraliaAmy Elsner NEGOTIATION
Ashley S SaylorsBrazilAnna Fali UNQUALIFIED
Johnson L GillianGermanyAsiya Javayant QUALIFIED
Emily F VenereRussiaStephen Shaw NEW
Tony V KuskoJapanElwin Sharvill NEGOTIATION
Claire V RutaFranceStephen Shaw NEW
Adams Z ShinkoGermanyIoni Bowcher NEW
Ashley M WhobreyGermanyStephen Shaw PROPOSAL
Salvatore W DoeCanadaXuxue Feng UNQUALIFIED
James D SaylorsJapanIvan Magalhaes PROPOSAL
Frozen Columns
Name
Deepesh U Whobrey
Aika G Malet
Ricardo N Gillian
Jennifer B Morasca
Smith S Gillian
James B Slusarski
Juan C Dilliard
James N Slusarski
Aditya J Chui
Jones V Royster
Emily S Campain
Adams L Kolmetz
Deepesh G Foller
Aika S Venere
Jeanfrancois X Rulapaugh
Deepesh N Figeroa
Claire Z Bowley
David X Foller
Stacey F Marrier
Isabel G Rim
James A Ruta
Chavez S Nestle
David O Gaucho
Jefferson V Doe
Salvatore T Rim
Ivar Z Darakjy
Faith W Campain
Kaitlin L Poquette
Mujtaba X Caldarera
Stacey D Inouye
Johnson F Saylors
Alejandro X Inouye
Emily C Saylors
Wickens S Doe
Costa Q Stenseth
Clifford Q Whobrey
Smith H Gaucho
Ivar V Sergi
Nicolas G Morasca
Jefferson X Rulapaugh
Silvio J Wieser
Johnson X Whobrey
Deepesh C Malet
Adams M Briddick
Mayumi Q Poquette
James N Garufi
Jones D Ostrosky
Nicolas Q Royster
Nicolas J Paprocki
Adams I Briddick
IdCountryDate
1000Italy2024-04-02
1001India2024-03-31
1002Australia2024-04-17
1003India2024-04-17
1004Russia2024-04-26
1005Argentina2024-04-05
1006Italy2024-04-21
1007France2024-03-30
1008Argentina2024-04-08
1009Australia2024-04-16
1010Argentina2024-04-10
1011India2024-04-07
1012Canada2024-04-10
1013France2024-04-01
1014Australia2024-04-26
1015Italy2024-04-03
1016Italy2024-04-10
1017Japan2024-03-28
1018Argentina2024-04-14
1019Argentina2024-04-14
1020Argentina2024-04-12
1021Germany2024-04-21
1022Brazil2024-03-29
1023Italy2024-04-11
1024Russia2024-04-13
1025Brazil2024-04-17
1026Germany2024-03-29
1027Japan2024-04-01
1028Russia2024-04-06
1029France2024-04-16
1030Russia2024-03-30
1031India2024-04-02
1032France2024-04-17
1033France2024-04-10
1034Italy2024-04-02
1035Germany2024-04-22
1036Italy2024-04-05
1037France2024-04-09
1038Canada2024-04-24
1039Brazil2024-04-04
1040Italy2024-04-04
1041United Kingdom2024-04-20
1042Japan2024-04-20
1043Italy2024-04-05
1044Japan2024-04-12
1045Japan2024-04-07
1046Brazil2024-04-03
1047Argentina2024-03-30
1048Australia2024-03-31
1049Germany2024-04-21

On-Demand Data

NameIdCountryDate
Sinclair E Venere1000India2024-04-26
Tony Y Marrier1001France2024-04-14
Arvin P Campain1002Germany2024-03-29
Izzy E Briddick1003Spain2024-04-08
Leon T Briddick1004Russia2024-03-28
Jeanfrancois A Royster1005Australia2024-04-05
Costa D Marrier1006Italy2024-04-11
Octavia C Glick1007Australia2024-04-26
Izzy K Flosi1008India2024-04-16
Morrow A Kusko1009Australia2024-04-14
Kadeem H Waycott1010Argentina2024-04-10
Mujtaba L Butt1011France2024-03-30
Kaitlin S Gaucho1012India2024-04-06
Deepesh H Vocelka1013United Kingdom2024-04-02
Misaki E Royster1014Japan2024-03-29
Octavia O Dilliard1015Brazil2024-04-15
Juan V Oldroyd1016Brazil2024-04-02
Wickens C Albares1017Australia2024-04-22
Alejandro I Whobrey1018Canada2024-04-04
Clifford Z Caudy1019France2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika X ShinkoJapanAsiya Javayant PROPOSAL
Maria F AmigonAustraliaIvan Magalhaes UNQUALIFIED
Wickens X PaprockiCanadaElwin Sharvill QUALIFIED
Darci U VenereJapanXuxue Feng NEGOTIATION
David W BologniaGermanyAnna Fali QUALIFIED
Nicolas V NickaUnited KingdomAsiya Javayant QUALIFIED
Arvin V GauchoSpainBernardo Dominic QUALIFIED
Emily Q PoquetteSpainStephen Shaw QUALIFIED
Johnson Q ChuiRussiaIvan Magalhaes PROPOSAL
Sinclair S CaudyFranceXuxue Feng UNQUALIFIED
Sinclair H RimGermanyAmy Elsner UNQUALIFIED
Misaki E DarakjyGermanyOnyama Limba NEGOTIATION
Salvatore H OldroydBrazilIvan Magalhaes UNQUALIFIED
Greenwood Z RimJapanAsiya Javayant PROPOSAL
Nicolas H SlusarskiSpainStephen Shaw NEGOTIATION
Jennifer Z RutaIndiaIvan Magalhaes QUALIFIED
Maisha P OstroskyIndiaAmy Elsner PROPOSAL
Arvin G VocelkaSpainElwin Sharvill RENEWAL
Murillo A ShinkoCanadaXuxue Feng NEGOTIATION
Isabel H AlbaresCanadaAnna Fali PROPOSAL
Adams L ShinkoUnited KingdomXuxue Feng PROPOSAL
Leon I KolmetzUnited KingdomOnyama Limba NEGOTIATION
Arvin Z IturbideJapanStephen Shaw NEW
Maria X NickaBrazilIoni Bowcher RENEWAL
Tony Y AmigonItalyAsiya Javayant NEW
Cody Y OldroydCanadaElwin Sharvill UNQUALIFIED
Claire C KolmetzAustraliaIoni Bowcher UNQUALIFIED
Kadeem W MacleadRussiaAnna Fali NEGOTIATION
Jefferson V CaldareraAustraliaBernardo Dominic UNQUALIFIED
Adams R MarrierIndiaAnna Fali QUALIFIED
Faith S DilliardIndiaStephen Shaw NEGOTIATION
Ivar G StensethAustraliaOnyama Limba RENEWAL
Francesco Y MaletAustraliaAnna Fali PROPOSAL
Mujtaba B PerinAustraliaStephen Shaw QUALIFIED
Octavia H RulapaughCanadaAnna Fali NEW
Isabel I KuskoSpainStephen Shaw PROPOSAL
Morrow D GauchoGermanyStephen Shaw NEW
Leon V GauchoGermanyXuxue Feng RENEWAL
Silvio J FigeroaGermanyElwin Sharvill UNQUALIFIED
Sinclair F NestleFranceIvan Magalhaes 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>