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
Misaki W PaprockiFranceAsiya Javayant QUALIFIED
Leon S SlusarskiCanadaAnna Fali UNQUALIFIED
Ricardo L RutaItalyIoni Bowcher PROPOSAL
Rodrigues E RulapaughCanadaOnyama Limba PROPOSAL
Rodrigues B TollnerAustraliaAnna Fali PROPOSAL
Stacey H NestleFranceStephen Shaw NEGOTIATION
James O NickaUnited KingdomIvan Magalhaes RENEWAL
Juan D ChuiBrazilAmy Elsner QUALIFIED
Mayumi I WaycottAustraliaXuxue Feng RENEWAL
Greenwood M NickaFranceIvan Magalhaes RENEWAL
Deepesh E DoeCanadaIvan Magalhaes QUALIFIED
Morrow W PaprockiSpainAnna Fali NEW
Izzy V BriddickArgentinaAnna Fali UNQUALIFIED
Sinclair A MorascaSpainAsiya Javayant RENEWAL
Tony J MacleadAustraliaXuxue Feng NEGOTIATION
Darci D AmigonGermanyXuxue Feng NEW
Tony N BriddickArgentinaBernardo Dominic PROPOSAL
Julie H KolmetzSpainAmy Elsner UNQUALIFIED
Clifford O IturbideArgentinaAmy Elsner QUALIFIED
Claire I StockhamGermanyIoni Bowcher NEGOTIATION
Jeanfrancois J BowleyGermanyIoni Bowcher UNQUALIFIED
Misaki U GarufiAustraliaStephen Shaw PROPOSAL
Rodrigues N SaylorsSpainStephen Shaw UNQUALIFIED
Antonio Q MorascaGermanyXuxue Feng QUALIFIED
Adams P PaprockiCanadaStephen Shaw UNQUALIFIED
Leon R RimIndiaAnna Fali NEGOTIATION
Jennifer F MaletBrazilXuxue Feng RENEWAL
Emily K GauchoAustraliaIvan Magalhaes PROPOSAL
Mujtaba M RoysterJapanOnyama Limba UNQUALIFIED
David W MaletFranceAmy Elsner RENEWAL
Aika O SaylorsArgentinaStephen Shaw UNQUALIFIED
Adams L FigeroaCanadaXuxue Feng QUALIFIED
Silvio W WieserGermanyXuxue Feng UNQUALIFIED
Greenwood L RoysterItalyAsiya Javayant RENEWAL
Costa G PoquetteItalyOnyama Limba UNQUALIFIED
Tony Y RimIndiaAnna Fali UNQUALIFIED
Maisha F FerenczUnited KingdomAmy Elsner PROPOSAL
Greenwood W RulapaughCanadaStephen Shaw RENEWAL
Chavez S OstroskyItalyIvan Magalhaes PROPOSAL
Octavia B SchemmerGermanyIoni Bowcher RENEWAL
Jones K NickaItalyOnyama Limba QUALIFIED
Leon R MacleadRussiaAnna Fali NEGOTIATION
Francesco S CampainCanadaOnyama Limba UNQUALIFIED
Sinclair V CaudyUnited KingdomAmy Elsner QUALIFIED
Darci X CaldareraItalyBernardo Dominic RENEWAL
David E MaletCanadaElwin Sharvill NEW
Murillo P IturbideRussiaIoni Bowcher NEGOTIATION
Octavia M NickaJapanBernardo Dominic NEW
Darci H StensethCanadaElwin Sharvill RENEWAL
Jefferson N PerinArgentinaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Sinclair X ChuiAustraliaAsiya Javayant PROPOSAL
Juan U SchemmerGermanyIvan Magalhaes PROPOSAL
Smith C BologniaGermanyAmy Elsner UNQUALIFIED
Smith E WhobreySpainIvan Magalhaes NEGOTIATION
Antonio Y RimRussiaElwin Sharvill NEW
Darci C StockhamUnited KingdomAsiya Javayant RENEWAL
Aika N FollerBrazilBernardo Dominic RENEWAL
Clifford R GarufiItalyAmy Elsner QUALIFIED
Izzy C RutaCanadaAmy Elsner NEGOTIATION
Alejandro Y AmigonAustraliaBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel U OstroskyArgentina2024-04-25Buckley Miller Wright NEW74Ivan Magalhaes
1001Emily S TollnerFrance2024-04-11Morlong Associates NEGOTIATION44Bernardo Dominic
1002Ivar J NestleItaly2024-04-11Chanay, Jeffrey A Esq NEW85Ioni Bowcher
1003Julie W MacleadBrazil2024-04-06Feltz Printing Service NEW67Stephen Shaw
1004Emily J PoquetteBrazil2024-04-01Chanay, Jeffrey A Esq QUALIFIED30Elwin Sharvill
1005Aruna F AlbaresIndia2024-04-24Buckley Miller Wright PROPOSAL10Elwin Sharvill
1006Arvin T TollnerGermany2024-04-24Printing Dimensions NEGOTIATION43Onyama Limba
1007Greenwood H CampainCanada2024-04-01Rousseaux, Michael Esq UNQUALIFIED33Bernardo Dominic
1008Juan O WhobreyIndia2024-03-28Benton, John B Jr UNQUALIFIED1Asiya Javayant
1009Leja O CaldareraUnited Kingdom2024-04-09Feltz Printing Service RENEWAL37Anna Fali
1010Leon U ShinkoCanada2024-04-08Morlong Associates QUALIFIED98Ioni Bowcher
1011Jennifer I ChuiArgentina2024-04-23Dorl, James J Esq NEGOTIATION82Ivan Magalhaes
1012Johnson V NickaIndia2024-03-30Chanay, Jeffrey A Esq NEW97Elwin Sharvill
1013Sinclair O MacleadJapan2024-04-02Morlong Associates PROPOSAL94Xuxue Feng
1014Darci J NickaGermany2024-04-07Morlong Associates UNQUALIFIED31Elwin Sharvill
1015Julie T GillianFrance2024-04-14Feltz Printing Service RENEWAL95Elwin Sharvill
1016Sinclair Y AlbaresArgentina2024-04-07Rousseaux, Michael Esq UNQUALIFIED56Xuxue Feng
1017Tony H MaletUnited Kingdom2024-03-29Buckley Miller Wright QUALIFIED73Xuxue Feng
1018Adams N CaudyRussia2024-03-28Chapman, Ross E Esq QUALIFIED6Xuxue Feng
1019Tony W InouyeArgentina2024-04-03Feiner Bros NEGOTIATION86Asiya Javayant
1020Mayumi N TollnerFrance2024-04-07Morlong Associates UNQUALIFIED43Anna Fali
1021Julie U BowleyCanada2024-03-30Chapman, Ross E Esq PROPOSAL52Bernardo Dominic
1022Ashley B RoysterUnited Kingdom2024-04-19Chemel, James L Cpa QUALIFIED53Anna Fali
1023Maria X OldroydGermany2024-04-24Morlong Associates NEGOTIATION61Xuxue Feng
1024Ashley H TollnerJapan2024-04-06Buckley Miller Wright PROPOSAL43Asiya Javayant
1025Kadeem V AlbaresCanada2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED62Anna Fali
1026Isabel J PerinArgentina2024-04-19Chemel, James L Cpa NEW70Stephen Shaw
1027Greenwood S ChuiItaly2024-04-04Commercial Press QUALIFIED10Anna Fali
1028Octavia S WhobreyIndia2024-04-08Buckley Miller Wright PROPOSAL48Elwin Sharvill
1029Jeanfrancois W PerinBrazil2024-04-20Rousseaux, Michael Esq PROPOSAL96Elwin Sharvill
1030Mayumi A DarakjyFrance2024-04-13Feltz Printing Service NEGOTIATION51Bernardo Dominic
1031David V CaudySpain2024-04-04Chemel, James L Cpa RENEWAL47Ioni Bowcher
1032Greenwood A ChuiItaly2024-04-02Chapman, Ross E Esq NEW53Xuxue Feng
1033Antonio A AmigonUnited Kingdom2024-04-14Truhlar And Truhlar Attys PROPOSAL56Asiya Javayant
1034David K SergiItaly2024-03-29Feltz Printing Service RENEWAL94Stephen Shaw
1035Rodrigues B DilliardIndia2024-04-09Feltz Printing Service NEGOTIATION13Amy Elsner
1036Antonio K SlusarskiFrance2024-04-10Printing Dimensions PROPOSAL24Onyama Limba
1037Jeanfrancois M RutaIndia2024-04-03Dorl, James J Esq PROPOSAL67Amy Elsner
1038Kaitlin H VenereItaly2024-04-06Rousseaux, Michael Esq NEW70Stephen Shaw
1039Nicolas X AmigonAustralia2024-04-03Chapman, Ross E Esq UNQUALIFIED57Ivan Magalhaes
1040Kaitlin L RutaItaly2024-04-14Dorl, James J Esq PROPOSAL86Onyama Limba
1041Arvin Z MarrierJapan2024-04-02Buckley Miller Wright PROPOSAL86Bernardo Dominic
1042Antonio S BowleyAustralia2024-04-06Feltz Printing Service NEW27Asiya Javayant
1043Claire P OstroskyItaly2024-04-22Printing Dimensions UNQUALIFIED68Asiya Javayant
1044Ashley I NickaItaly2024-04-15Chemel, James L Cpa PROPOSAL15Ivan Magalhaes
1045Costa N InouyeRussia2024-03-27Truhlar And Truhlar Attys QUALIFIED58Asiya Javayant
1046Mujtaba N SergiGermany2024-04-24Commercial Press NEW3Stephen Shaw
1047Cody X TollnerAustralia2024-04-08King, Christopher A Esq NEW17Elwin Sharvill
1048James C VenereBrazil2024-04-08Rangoni Of Florence UNQUALIFIED7Xuxue Feng
1049Silvio J TollnerUnited Kingdom2024-04-18Chapman, Ross E Esq NEW32Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Sinclair S FollerArgentinaElwin Sharvill RENEWAL
Aika L StockhamCanadaElwin Sharvill QUALIFIED
Morrow H WhobreySpainStephen Shaw QUALIFIED
Costa B PoquetteCanadaStephen Shaw PROPOSAL
Ashley I SergiFranceAsiya Javayant UNQUALIFIED
Adams I PoquetteSpainAsiya Javayant RENEWAL
Greenwood D RoysterRussiaIoni Bowcher UNQUALIFIED
Kaitlin K InouyeCanadaAmy Elsner NEGOTIATION
Adams N MaletRussiaOnyama Limba NEGOTIATION
Alejandro V RutaItalyIoni Bowcher NEW
Adams K BowleyFranceIvan Magalhaes NEW
Faith K RimBrazilAmy Elsner NEW
Ashley U NickaArgentinaAnna Fali QUALIFIED
Stacey D WhobreyAustraliaAsiya Javayant NEGOTIATION
Costa L InouyeUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues S WaycottGermanyIvan Magalhaes QUALIFIED
Jennifer Y CaldareraArgentinaStephen Shaw PROPOSAL
Aruna M StockhamRussiaIoni Bowcher PROPOSAL
Rodrigues X StensethFranceAnna Fali NEW
Aditya G SchemmerItalyXuxue Feng UNQUALIFIED
Izzy K IturbideFranceXuxue Feng NEW
Silvio M DoeJapanElwin Sharvill NEW
Alejandro A RulapaughRussiaIoni Bowcher QUALIFIED
Maria U NestleArgentinaXuxue Feng QUALIFIED
Silvio K BriddickUnited KingdomBernardo Dominic NEW
James U CaudyRussiaAnna Fali QUALIFIED
Claire G WieserFranceStephen Shaw UNQUALIFIED
Leja R MaletArgentinaAmy Elsner QUALIFIED
Salvatore Y CaldareraGermanyAmy Elsner PROPOSAL
Chavez H ChuiBrazilAnna Fali NEGOTIATION
Juan K PoquetteJapanElwin Sharvill UNQUALIFIED
Julie L VocelkaGermanyXuxue Feng PROPOSAL
Leon D BriddickAustraliaAsiya Javayant PROPOSAL
Alejandro D VenereArgentinaIoni Bowcher NEGOTIATION
Ashley D SaylorsBrazilAnna Fali PROPOSAL
Stacey U NickaUnited KingdomAmy Elsner NEW
Rodrigues Q WaycottArgentinaAsiya Javayant RENEWAL
Kadeem F BriddickSpainXuxue Feng RENEWAL
Wickens J WaycottCanadaAnna Fali NEW
Leon S SlusarskiAustraliaAnna Fali RENEWAL
Misaki K BowleyFranceAnna Fali RENEWAL
Octavia Q VenereRussiaOnyama Limba RENEWAL
Jeanfrancois L MaletBrazilAnna Fali QUALIFIED
Smith W CaudyBrazilAmy Elsner QUALIFIED
Leja H StockhamFranceIvan Magalhaes RENEWAL
Rodrigues G FerenczJapanAsiya Javayant NEGOTIATION
Wickens Z MaletRussiaAsiya Javayant QUALIFIED
Cody P RulapaughFranceElwin Sharvill QUALIFIED
Costa Z RutaSpainOnyama Limba RENEWAL
Juan M StockhamItalyStephen Shaw NEGOTIATION
Frozen Columns
Name
Adams G Ferencz
Smith L Darakjy
Francesco A Slusarski
Nicolas T Venere
Kadeem R Bowley
Cody S Foller
Misaki E Iturbide
Morrow F Kusko
Juan E Gillian
Emily J Butt
Emily S Royster
Francesco G Flosi
Izzy H Albares
Aditya H Paprocki
Emily T Malet
Antonio C Gaucho
Aditya P Shinko
Ivar T Amigon
Maisha Z Chui
Emily P Albares
Deepesh M Rulapaugh
Greenwood O Poquette
Salvatore Q Stockham
Morrow W Poquette
Salvatore O Morasca
Misaki A Venere
Aika B Rim
Munro C Gillian
Sinclair Y Chui
Isabel J Rulapaugh
Maria E Saylors
Nicolas T Albares
Wickens H Morasca
Stacey U Chui
Claire W Bolognia
Isabel G Chui
Julie N Shinko
Darci C Nestle
Isabel Y Schemmer
Salvatore H Slusarski
Arvin K Caudy
Aditya E Nicka
Nicolas I Ostrosky
Misaki C Saylors
Chavez K Albares
Wickens X Ferencz
Murillo B Caldarera
Munro X Oldroyd
Sinclair F Gaucho
Mayumi P Nicka
IdCountryDate
1000Italy2024-04-24
1001Russia2024-04-04
1002Germany2024-03-29
1003Brazil2024-04-23
1004France2024-04-21
1005Brazil2024-04-20
1006Canada2024-04-18
1007Spain2024-03-30
1008Brazil2024-04-01
1009Germany2024-04-10
1010Germany2024-03-29
1011India2024-04-18
1012India2024-04-13
1013Germany2024-04-17
1014Italy2024-04-08
1015Japan2024-04-03
1016Japan2024-04-05
1017India2024-04-19
1018India2024-03-29
1019Brazil2024-04-03
1020Italy2024-03-29
1021Italy2024-04-12
1022Spain2024-04-12
1023Spain2024-04-23
1024Argentina2024-04-18
1025Japan2024-04-01
1026France2024-04-07
1027France2024-04-15
1028France2024-04-10
1029Brazil2024-04-02
1030Argentina2024-04-10
1031United Kingdom2024-04-23
1032India2024-04-06
1033Japan2024-04-21
1034France2024-04-18
1035United Kingdom2024-04-07
1036India2024-04-03
1037France2024-04-07
1038United Kingdom2024-04-14
1039Italy2024-04-16
1040Argentina2024-04-01
1041India2024-04-24
1042Canada2024-04-05
1043Brazil2024-04-10
1044Russia2024-04-11
1045Russia2024-04-17
1046Russia2024-03-31
1047Germany2024-04-23
1048Japan2024-04-11
1049Argentina2024-04-03

On-Demand Data

NameIdCountryDate
Leja X Figeroa1000United Kingdom2024-04-12
David N Marrier1001India2024-03-30
Claire V Albares1002Russia2024-04-06
Isabel O Caldarera1003Japan2024-04-21
Costa F Paprocki1004Argentina2024-04-21
Leon U Kolmetz1005Canada2024-04-24
Jones Y Nicka1006Italy2024-04-01
Tony A Whobrey1007Canada2024-04-08
Jones B Sergi1008Japan2024-04-20
Deepesh X Caldarera1009Australia2024-04-02
Stacey S Briddick1010India2024-04-06
Aruna B Venere1011Italy2024-03-27
Johnson H Figeroa1012France2024-04-05
Stacey V Morasca1013Argentina2024-04-15
Greenwood F Caldarera1014Italy2024-03-29
Munro W Venere1015France2024-04-03
Isabel W Sergi1016Japan2024-04-14
Cody L Oldroyd1017Russia2024-04-20
Leon N Kolmetz1018Australia2024-04-10
Aditya C Butt1019India2024-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro M MacleadGermanyIoni Bowcher UNQUALIFIED
Julie Z DoeArgentinaElwin Sharvill PROPOSAL
Cody Y TollnerSpainIvan Magalhaes NEW
Izzy Q StensethFranceAmy Elsner RENEWAL
Jennifer W KuskoGermanyBernardo Dominic NEW
Morrow P WhobreyCanadaElwin Sharvill PROPOSAL
Adams N NestleUnited KingdomAnna Fali QUALIFIED
Wickens D NickaArgentinaElwin Sharvill RENEWAL
Nicolas F SaylorsFranceIvan Magalhaes UNQUALIFIED
David P VocelkaArgentinaAmy Elsner RENEWAL
Sinclair H StensethFranceIvan Magalhaes NEGOTIATION
Smith Z PoquetteCanadaOnyama Limba RENEWAL
Nicolas K ChuiAustraliaBernardo Dominic PROPOSAL
Mujtaba S RimFranceXuxue Feng UNQUALIFIED
Aika N ShinkoJapanStephen Shaw PROPOSAL
Greenwood U NickaBrazilXuxue Feng RENEWAL
Mayumi D IturbideBrazilAsiya Javayant UNQUALIFIED
Rodrigues H IturbideFranceAmy Elsner QUALIFIED
Julie S SchemmerAustraliaElwin Sharvill UNQUALIFIED
Jennifer G RutaJapanBernardo Dominic PROPOSAL
James Z SergiArgentinaBernardo Dominic RENEWAL
Juan E NestleSpainBernardo Dominic RENEWAL
Clifford G RulapaughGermanyAmy Elsner PROPOSAL
Smith Y AmigonUnited KingdomAsiya Javayant QUALIFIED
Darci J SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Maria M RimArgentinaAsiya Javayant NEW
Costa M TollnerItalyAnna Fali UNQUALIFIED
Misaki W MarrierArgentinaBernardo Dominic NEGOTIATION
Ricardo H RimBrazilAmy Elsner QUALIFIED
Silvio T MacleadUnited KingdomBernardo Dominic QUALIFIED
David X DoeSpainXuxue Feng UNQUALIFIED
Costa B VenereUnited KingdomAsiya Javayant UNQUALIFIED
James E PaprockiGermanyAmy Elsner NEGOTIATION
Maisha U CaldareraFranceAnna Fali NEW
Misaki J RulapaughJapanOnyama Limba NEW
Murillo B OstroskyUnited KingdomAsiya Javayant NEGOTIATION
Alejandro P AmigonIndiaElwin Sharvill NEGOTIATION
Silvio K SlusarskiCanadaIoni Bowcher PROPOSAL
Sinclair U GillianUnited KingdomAnna Fali QUALIFIED
Jennifer V DoeAustraliaStephen Shaw UNQUALIFIED

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