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 F CaldareraIndiaOnyama Limba UNQUALIFIED
Smith D FigeroaFranceBernardo Dominic RENEWAL
Jeanfrancois D MacleadAustraliaOnyama Limba UNQUALIFIED
Greenwood C BologniaRussiaAsiya Javayant NEGOTIATION
Silvio S WhobreyCanadaElwin Sharvill QUALIFIED
Jennifer E NestleBrazilIoni Bowcher NEGOTIATION
Murillo E BologniaAustraliaAmy Elsner RENEWAL
Isabel G BowleyCanadaIvan Magalhaes UNQUALIFIED
Costa T MaletCanadaAmy Elsner UNQUALIFIED
Wickens J PoquetteRussiaAnna Fali QUALIFIED
Maria H PoquetteItalyIvan Magalhaes NEGOTIATION
Francesco H FollerCanadaIvan Magalhaes UNQUALIFIED
Claire Q CaldareraGermanyOnyama Limba NEGOTIATION
Silvio N OldroydGermanyOnyama Limba RENEWAL
Tony V SlusarskiSpainIoni Bowcher NEGOTIATION
Isabel T CaldareraSpainElwin Sharvill RENEWAL
Arvin J VenereFranceBernardo Dominic PROPOSAL
Claire D CampainRussiaStephen Shaw RENEWAL
Misaki T RoysterJapanElwin Sharvill UNQUALIFIED
Julie Q CaudyUnited KingdomElwin Sharvill RENEWAL
Mayumi X NickaRussiaAmy Elsner RENEWAL
Aika H BriddickCanadaAmy Elsner NEGOTIATION
Kaitlin Y MarrierAustraliaBernardo Dominic NEW
Alejandro V GlickUnited KingdomIoni Bowcher NEW
Jones F DilliardCanadaElwin Sharvill NEW
Izzy W FerenczCanadaAsiya Javayant QUALIFIED
Jones Q RimFranceXuxue Feng QUALIFIED
Wickens R WieserUnited KingdomAmy Elsner NEW
Sinclair J VocelkaGermanyAsiya Javayant QUALIFIED
Aditya A VenereBrazilElwin Sharvill NEW
Leja H VenereArgentinaStephen Shaw NEW
Emily T GlickJapanXuxue Feng NEGOTIATION
Cody L DoeGermanyElwin Sharvill QUALIFIED
Silvio S FigeroaCanadaIvan Magalhaes UNQUALIFIED
Aika B NickaAustraliaStephen Shaw UNQUALIFIED
Nicolas H RulapaughUnited KingdomAnna Fali PROPOSAL
Jones O DoeJapanAsiya Javayant PROPOSAL
Nicolas Z SaylorsArgentinaStephen Shaw RENEWAL
Stacey E FerenczRussiaOnyama Limba PROPOSAL
Chavez E MaletUnited KingdomStephen Shaw RENEWAL
Kadeem H CaldareraIndiaAnna Fali NEW
Cody V CaudyArgentinaIvan Magalhaes UNQUALIFIED
Jones H WaycottAustraliaStephen Shaw PROPOSAL
Arvin I FlosiBrazilAsiya Javayant NEW
Isabel N DarakjyGermanyIvan Magalhaes QUALIFIED
Wickens I BriddickCanadaBernardo Dominic PROPOSAL
Morrow O GlickUnited KingdomBernardo Dominic NEW
James U FigeroaAustraliaBernardo Dominic RENEWAL
Darci U PerinFranceAmy Elsner NEGOTIATION
Silvio J OstroskyJapanIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi T CaldareraBrazilOnyama Limba RENEWAL
Greenwood B MacleadArgentinaAmy Elsner PROPOSAL
Clifford M KuskoUnited KingdomStephen Shaw NEW
Adams H RutaSpainAsiya Javayant RENEWAL
Kadeem O BriddickSpainIoni Bowcher RENEWAL
Morrow C ShinkoBrazilOnyama Limba NEW
Greenwood F InouyeUnited KingdomOnyama Limba UNQUALIFIED
Alejandro O OstroskyArgentinaAsiya Javayant UNQUALIFIED
Sinclair V StockhamRussiaXuxue Feng UNQUALIFIED
Costa B InouyeAustraliaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco C RulapaughFrance2024-04-19Benton, John B Jr RENEWAL99Onyama Limba
1001Claire M GauchoItaly2024-04-12Morlong Associates RENEWAL50Bernardo Dominic
1002Greenwood T WaycottSpain2024-04-15King, Christopher A Esq QUALIFIED58Amy Elsner
1003Kaitlin P MaletIndia2024-04-28Printing Dimensions QUALIFIED58Ivan Magalhaes
1004Octavia H SaylorsIndia2024-04-10Chanay, Jeffrey A Esq UNQUALIFIED35Amy Elsner
1005Salvatore H FerenczRussia2024-04-18Rousseaux, Michael Esq RENEWAL80Onyama Limba
1006Jeanfrancois T IturbideSpain2024-04-15Feiner Bros RENEWAL34Onyama Limba
1007Francesco L ShinkoCanada2024-04-09Benton, John B Jr QUALIFIED67Ioni Bowcher
1008Leon A SchemmerIndia2024-04-24King, Christopher A Esq RENEWAL63Ioni Bowcher
1009Julie M KuskoSpain2024-04-28Benton, John B Jr QUALIFIED72Elwin Sharvill
1010Mayumi D MaletBrazil2024-04-08Chanay, Jeffrey A Esq PROPOSAL25Asiya Javayant
1011Deepesh F NickaArgentina2024-05-05Truhlar And Truhlar Attys PROPOSAL77Stephen Shaw
1012Wickens I VocelkaAustralia2024-04-15Buckley Miller Wright NEGOTIATION22Amy Elsner
1013Aika Q KolmetzGermany2024-05-03Chapman, Ross E Esq NEW12Ioni Bowcher
1014Silvio G GauchoArgentina2024-04-08King, Christopher A Esq RENEWAL1Anna Fali
1015Kaitlin C DarakjyUnited Kingdom2024-04-17Morlong Associates PROPOSAL74Stephen Shaw
1016Mujtaba K RoysterArgentina2024-04-26Buckley Miller Wright RENEWAL34Ioni Bowcher
1017Francesco K SchemmerRussia2024-04-28Printing Dimensions RENEWAL10Ioni Bowcher
1018Ricardo V BologniaFrance2024-04-12Rangoni Of Florence UNQUALIFIED10Stephen Shaw
1019Mayumi S CaldareraCanada2024-04-07Printing Dimensions PROPOSAL86Bernardo Dominic
1020Murillo A MorascaBrazil2024-04-07Morlong Associates NEGOTIATION26Stephen Shaw
1021Jennifer P DilliardIndia2024-04-13Feiner Bros UNQUALIFIED17Asiya Javayant
1022Costa U FerenczSpain2024-05-02Feltz Printing Service UNQUALIFIED14Onyama Limba
1023Darci M DoeSpain2024-04-11Commercial Press UNQUALIFIED81Asiya Javayant
1024Stacey F FigeroaUnited Kingdom2024-04-20Chemel, James L Cpa PROPOSAL92Stephen Shaw
1025Munro X PoquetteCanada2024-04-14Benton, John B Jr UNQUALIFIED56Ioni Bowcher
1026Morrow X WieserIndia2024-04-28King, Christopher A Esq RENEWAL21Amy Elsner
1027Ashley Z DilliardUnited Kingdom2024-04-30Morlong Associates NEW74Elwin Sharvill
1028Maria E NickaFrance2024-04-08Commercial Press NEW98Anna Fali
1029Wickens H VenereCanada2024-04-25Feltz Printing Service NEW30Ivan Magalhaes
1030Rodrigues Y GillianArgentina2024-04-23Printing Dimensions PROPOSAL56Stephen Shaw
1031Munro M GlickItaly2024-04-28Benton, John B Jr NEW73Onyama Limba
1032James U AmigonCanada2024-05-04King, Christopher A Esq RENEWAL59Xuxue Feng
1033Sinclair Z MaletIndia2024-04-08Feltz Printing Service UNQUALIFIED61Asiya Javayant
1034Maisha L SaylorsItaly2024-05-02Feltz Printing Service RENEWAL49Xuxue Feng
1035Deepesh V GlickAustralia2024-04-11Chemel, James L Cpa NEW73Asiya Javayant
1036Kadeem O SchemmerIndia2024-04-24King, Christopher A Esq QUALIFIED18Bernardo Dominic
1037Munro W OldroydArgentina2024-04-27Printing Dimensions QUALIFIED90Stephen Shaw
1038Aruna N ButtGermany2024-04-24Truhlar And Truhlar Attys PROPOSAL41Elwin Sharvill
1039Jeanfrancois T AlbaresIndia2024-04-26Benton, John B Jr NEW10Onyama Limba
1040Darci A DarakjyBrazil2024-04-30Feltz Printing Service PROPOSAL42Asiya Javayant
1041Julie J PaprockiGermany2024-04-14King, Christopher A Esq UNQUALIFIED70Bernardo Dominic
1042Mujtaba J KuskoFrance2024-04-13Chanay, Jeffrey A Esq QUALIFIED18Bernardo Dominic
1043Murillo Y VenereRussia2024-04-08Rousseaux, Michael Esq NEGOTIATION61Amy Elsner
1044Leon Q GillianArgentina2024-04-19Commercial Press NEGOTIATION59Anna Fali
1045Julie B NickaGermany2024-04-13Rousseaux, Michael Esq QUALIFIED56Stephen Shaw
1046Julie K StockhamSpain2024-04-20Buckley Miller Wright NEGOTIATION40Stephen Shaw
1047Aika R MarrierArgentina2024-04-16King, Christopher A Esq PROPOSAL36Asiya Javayant
1048Ashley R DarakjyAustralia2024-04-21King, Christopher A Esq RENEWAL28Amy Elsner
1049Kadeem A NestleCanada2024-04-29Dorl, James J Esq NEW13Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Clifford S GarufiGermanyAsiya Javayant UNQUALIFIED
Leon M DarakjyGermanyOnyama Limba QUALIFIED
Isabel P DilliardUnited KingdomElwin Sharvill PROPOSAL
Jeanfrancois P NickaBrazilOnyama Limba PROPOSAL
Emily D KuskoGermanyAmy Elsner QUALIFIED
Faith B WhobreyCanadaIoni Bowcher NEW
James V DoeGermanyBernardo Dominic PROPOSAL
Greenwood V WhobreyIndiaIvan Magalhaes QUALIFIED
Johnson Y SergiJapanIoni Bowcher NEGOTIATION
David X ShinkoGermanyIvan Magalhaes QUALIFIED
Adams S DoeItalyOnyama Limba NEW
Maisha J CampainJapanOnyama Limba NEW
Claire G FerenczBrazilAnna Fali QUALIFIED
Maria A MacleadUnited KingdomElwin Sharvill QUALIFIED
Costa L DoeIndiaAnna Fali QUALIFIED
Nicolas L AmigonArgentinaIoni Bowcher QUALIFIED
Isabel C NickaItalyBernardo Dominic UNQUALIFIED
Antonio L AlbaresAustraliaXuxue Feng PROPOSAL
James Z DilliardCanadaOnyama Limba RENEWAL
Mujtaba P NickaUnited KingdomIvan Magalhaes PROPOSAL
James U WhobreyUnited KingdomBernardo Dominic RENEWAL
Juan Y InouyeItalyAsiya Javayant UNQUALIFIED
Antonio X MacleadArgentinaBernardo Dominic RENEWAL
Ashley Z MaletCanadaElwin Sharvill PROPOSAL
Adams J VocelkaFranceOnyama Limba UNQUALIFIED
Murillo R MacleadAustraliaOnyama Limba QUALIFIED
Ivar C PoquetteSpainIoni Bowcher NEW
James P WieserJapanAmy Elsner PROPOSAL
Mujtaba A KolmetzFranceIvan Magalhaes QUALIFIED
Nicolas D SergiJapanElwin Sharvill RENEWAL
Munro I IturbideItalyXuxue Feng QUALIFIED
Juan K MarrierItalyIvan Magalhaes RENEWAL
Rodrigues N PerinCanadaStephen Shaw QUALIFIED
Murillo U PerinIndiaOnyama Limba PROPOSAL
Nicolas J NickaCanadaOnyama Limba NEGOTIATION
Greenwood G CaldareraArgentinaAmy Elsner UNQUALIFIED
Juan H SergiJapanAsiya Javayant RENEWAL
Leon A DarakjyJapanBernardo Dominic PROPOSAL
Juan O PerinBrazilIvan Magalhaes QUALIFIED
Kadeem N KolmetzSpainStephen Shaw RENEWAL
Jeanfrancois J NestleAustraliaOnyama Limba UNQUALIFIED
Kaitlin N GauchoItalyBernardo Dominic QUALIFIED
Deepesh V IturbideRussiaIoni Bowcher PROPOSAL
Johnson M AmigonCanadaStephen Shaw UNQUALIFIED
Octavia A SchemmerFranceXuxue Feng NEW
Ricardo K CampainSpainBernardo Dominic QUALIFIED
Morrow A FerenczFranceAnna Fali RENEWAL
Munro G GillianGermanyIvan Magalhaes PROPOSAL
James J ShinkoItalyIoni Bowcher PROPOSAL
Francesco Y DarakjyItalyElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Claire L Dilliard
Aruna P Sergi
Wickens D Dilliard
Ashley H Slusarski
Munro X Malet
Leja N Rulapaugh
Aruna H Chui
Mayumi M Butt
Claire X Campain
Deepesh T Ferencz
Munro E Kusko
Darci B Inouye
Juan C Flosi
Juan A Kusko
Ivar T Schemmer
Sinclair D Royster
Octavia R Caudy
Maria R Gillian
Jones S Butt
Wickens L Stenseth
Isabel K Caudy
Wickens I Ostrosky
Murillo Q Kusko
Darci O Figeroa
Octavia V Malet
Jeanfrancois C Ostrosky
Wickens G Iturbide
Mayumi U Inouye
Jeanfrancois L Vocelka
Stacey W Bolognia
Greenwood D Morasca
Ivar F Amigon
Jeanfrancois G Venere
Rodrigues U Whobrey
Chavez W Campain
Cody W Figeroa
Francesco L Figeroa
Alejandro H Figeroa
Misaki Y Albares
Maria W Oldroyd
Aika S Inouye
Jefferson Q Figeroa
Jennifer L Bolognia
Nicolas R Foller
Leja G Oldroyd
Maria N Chui
Munro M Malet
Smith X Glick
Francesco C Nestle
Darci S Rim
IdCountryDate
1000Italy2024-04-09
1001France2024-04-26
1002Germany2024-04-11
1003United Kingdom2024-04-16
1004Russia2024-04-09
1005Germany2024-04-23
1006Australia2024-04-24
1007Canada2024-04-13
1008Argentina2024-04-15
1009Japan2024-04-28
1010Argentina2024-04-17
1011Spain2024-04-23
1012Spain2024-04-10
1013Italy2024-05-04
1014France2024-04-24
1015Australia2024-04-06
1016France2024-04-16
1017Spain2024-04-09
1018Germany2024-04-12
1019Germany2024-04-29
1020Italy2024-05-05
1021Germany2024-04-17
1022Brazil2024-04-12
1023Italy2024-04-22
1024Italy2024-04-19
1025United Kingdom2024-04-13
1026Canada2024-05-03
1027India2024-04-20
1028France2024-05-05
1029Japan2024-04-17
1030Brazil2024-04-14
1031Brazil2024-05-03
1032Russia2024-04-11
1033France2024-04-22
1034Canada2024-04-09
1035France2024-04-20
1036United Kingdom2024-04-10
1037Italy2024-04-26
1038India2024-04-22
1039Italy2024-04-13
1040Italy2024-05-04
1041Australia2024-04-30
1042France2024-04-28
1043Argentina2024-04-13
1044Russia2024-04-28
1045Germany2024-04-21
1046India2024-04-13
1047Spain2024-04-14
1048France2024-04-20
1049Australia2024-04-26

On-Demand Data

NameIdCountryDate
Julie K Nicka1000Australia2024-05-01
Maisha O Marrier1001Canada2024-04-10
Munro X Royster1002Australia2024-04-16
Cody J Briddick1003India2024-04-06
Julie V Stenseth1004Russia2024-04-13
Antonio Y Iturbide1005Canada2024-04-08
Wickens T Morasca1006Russia2024-04-08
Salvatore M Iturbide1007Australia2024-04-06
Francesco B Rulapaugh1008Argentina2024-04-14
Aruna N Sergi1009Argentina2024-04-06
Octavia I Gaucho1010Italy2024-04-19
Jefferson U Gaucho1011Argentina2024-04-29
Antonio D Paprocki1012Russia2024-04-24
Jennifer K Gillian1013Brazil2024-04-20
Mujtaba N Briddick1014Italy2024-04-29
Sinclair J Paprocki1015Canada2024-05-03
Jeanfrancois B Bowley1016Russia2024-05-05
Jeanfrancois Q Foller1017Spain2024-04-07
Clifford E Briddick1018France2024-04-25
Silvio F Butt1019France2024-05-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair R GlickArgentinaIvan Magalhaes QUALIFIED
Kaitlin V CaudySpainAnna Fali UNQUALIFIED
Stacey K PoquetteArgentinaAsiya Javayant NEGOTIATION
Claire K OldroydAustraliaIoni Bowcher RENEWAL
Jones S PoquetteAustraliaOnyama Limba NEW
Antonio Q TollnerAustraliaStephen Shaw PROPOSAL
Morrow U IturbideAustraliaIoni Bowcher PROPOSAL
Greenwood R MaletItalyIvan Magalhaes NEW
Claire V CaudyIndiaIvan Magalhaes RENEWAL
Clifford X StensethBrazilAsiya Javayant QUALIFIED
Emily G FerenczJapanStephen Shaw UNQUALIFIED
Adams S WaycottBrazilElwin Sharvill UNQUALIFIED
Johnson J OldroydSpainAsiya Javayant RENEWAL
Kaitlin I NestleUnited KingdomIvan Magalhaes NEW
Deepesh U DilliardSpainAmy Elsner NEW
Rodrigues G ButtRussiaAnna Fali QUALIFIED
Cody B RoysterIndiaBernardo Dominic PROPOSAL
Silvio E SchemmerFranceIvan Magalhaes UNQUALIFIED
Alejandro O StensethArgentinaIoni Bowcher PROPOSAL
Rodrigues S KuskoRussiaAnna Fali QUALIFIED
Nicolas X TollnerFranceAmy Elsner QUALIFIED
Deepesh H AlbaresItalyAsiya Javayant QUALIFIED
Rodrigues W RimJapanAnna Fali QUALIFIED
Sinclair I MaletAustraliaElwin Sharvill PROPOSAL
Arvin H DarakjyFranceStephen Shaw PROPOSAL
Faith A DarakjyCanadaAnna Fali QUALIFIED
Silvio W TollnerItalyIvan Magalhaes RENEWAL
Claire N KuskoIndiaBernardo Dominic NEW
Adams V WhobreyRussiaAmy Elsner UNQUALIFIED
Cody Q RulapaughItalyAnna Fali QUALIFIED
Costa L MorascaUnited KingdomIvan Magalhaes PROPOSAL
Jones F BologniaUnited KingdomAsiya Javayant NEGOTIATION
James W InouyeGermanyXuxue Feng UNQUALIFIED
Francesco R RulapaughItalyOnyama Limba NEW
Emily E BowleyArgentinaXuxue Feng PROPOSAL
Izzy S VocelkaArgentinaAsiya Javayant QUALIFIED
Emily A GarufiSpainIoni Bowcher RENEWAL
Octavia S PaprockiUnited KingdomIoni Bowcher PROPOSAL
Claire R WaycottSpainIvan Magalhaes NEW
Francesco X GarufiGermanyAsiya Javayant 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>