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 Z PoquetteGermanyAnna Fali UNQUALIFIED
Munro A SergiRussiaStephen Shaw NEW
Claire D IturbideUnited KingdomBernardo Dominic NEW
Munro E NickaSpainOnyama Limba PROPOSAL
Ashley O BowleyCanadaOnyama Limba RENEWAL
Aruna L WieserSpainAnna Fali QUALIFIED
Octavia R BowleyRussiaIoni Bowcher QUALIFIED
Isabel S MarrierArgentinaAnna Fali NEGOTIATION
Adams N ShinkoCanadaXuxue Feng QUALIFIED
Ashley W WaycottFranceXuxue Feng RENEWAL
Leja G InouyeGermanyStephen Shaw NEW
Ashley F GarufiAustraliaAsiya Javayant UNQUALIFIED
Adams H GarufiSpainBernardo Dominic QUALIFIED
Greenwood K RutaFranceIoni Bowcher PROPOSAL
Julie W MarrierFranceAmy Elsner PROPOSAL
Jeanfrancois A WieserSpainIvan Magalhaes UNQUALIFIED
Juan R StensethBrazilOnyama Limba NEGOTIATION
Aika Z RulapaughUnited KingdomAmy Elsner NEGOTIATION
Nicolas C DarakjyJapanAsiya Javayant QUALIFIED
Clifford Y CampainAustraliaBernardo Dominic UNQUALIFIED
Murillo M CampainItalyAnna Fali PROPOSAL
Ivar O PoquetteCanadaAsiya Javayant PROPOSAL
Claire M MorascaUnited KingdomAnna Fali NEGOTIATION
David F KolmetzUnited KingdomAnna Fali QUALIFIED
Julie J ChuiItalyOnyama Limba NEGOTIATION
Jeanfrancois C KuskoArgentinaIoni Bowcher NEGOTIATION
Kaitlin T GarufiFranceAnna Fali QUALIFIED
Johnson S BowleyUnited KingdomStephen Shaw UNQUALIFIED
Adams P BriddickBrazilElwin Sharvill NEGOTIATION
Aika S ButtUnited KingdomOnyama Limba NEGOTIATION
Arvin K RulapaughArgentinaAnna Fali NEW
Silvio R KolmetzItalyOnyama Limba PROPOSAL
Adams X MaletJapanIoni Bowcher NEGOTIATION
Kadeem R CaudyFranceIvan Magalhaes NEGOTIATION
Jones T MaletRussiaOnyama Limba UNQUALIFIED
David I RoysterGermanyOnyama Limba NEGOTIATION
Antonio X WieserRussiaElwin Sharvill QUALIFIED
Deepesh J MarrierUnited KingdomOnyama Limba RENEWAL
Ashley C VocelkaFranceXuxue Feng RENEWAL
Johnson M MacleadSpainStephen Shaw NEW
Leon X AlbaresFranceXuxue Feng QUALIFIED
Darci E BowleyIndiaIvan Magalhaes UNQUALIFIED
Aruna G CaldareraBrazilAmy Elsner NEW
Silvio G PaprockiUnited KingdomAmy Elsner NEW
James O GauchoFranceStephen Shaw RENEWAL
Aika Z ChuiAustraliaElwin Sharvill NEW
Aruna T BologniaJapanStephen Shaw NEW
Leon N BriddickGermanyOnyama Limba NEW
Munro O SlusarskiUnited KingdomIoni Bowcher UNQUALIFIED
Rodrigues U RoysterArgentinaIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Kadeem X SchemmerUnited KingdomStephen Shaw QUALIFIED
Kaitlin C WhobreyCanadaAnna Fali QUALIFIED
Smith Z PoquetteSpainOnyama Limba PROPOSAL
Ricardo X KuskoGermanyAnna Fali QUALIFIED
Isabel X RutaUnited KingdomElwin Sharvill PROPOSAL
Isabel V WhobreyJapanStephen Shaw UNQUALIFIED
Cody N DilliardSpainElwin Sharvill RENEWAL
Isabel O NestleBrazilAsiya Javayant PROPOSAL
Ivar L RutaGermanyBernardo Dominic RENEWAL
Jefferson I TollnerJapanXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika T VenereArgentina2024-05-01Feltz Printing Service RENEWAL44Ioni Bowcher
1001Mujtaba Y PaprockiBrazil2024-04-18Rousseaux, Michael Esq NEGOTIATION69Asiya Javayant
1002Jefferson H MaletAustralia2024-04-07Chemel, James L Cpa RENEWAL58Ioni Bowcher
1003Munro R KolmetzIndia2024-04-25Commercial Press UNQUALIFIED3Bernardo Dominic
1004Izzy X OldroydJapan2024-04-30Buckley Miller Wright RENEWAL98Asiya Javayant
1005Jefferson F NestleSpain2024-04-08Chemel, James L Cpa RENEWAL71Bernardo Dominic
1006Greenwood X FlosiItaly2024-04-13Dorl, James J Esq UNQUALIFIED28Bernardo Dominic
1007Mujtaba G KuskoBrazil2024-04-08King, Christopher A Esq PROPOSAL24Asiya Javayant
1008Morrow G GarufiFrance2024-04-14Rousseaux, Michael Esq NEW19Bernardo Dominic
1009Isabel J StockhamItaly2024-04-03Chapman, Ross E Esq QUALIFIED32Anna Fali
1010James Q ButtRussia2024-04-25Commercial Press NEW33Amy Elsner
1011Costa G TollnerRussia2024-04-27Dorl, James J Esq NEW1Asiya Javayant
1012Salvatore H BriddickSpain2024-04-02Buckley Miller Wright UNQUALIFIED66Xuxue Feng
1013James J ShinkoBrazil2024-04-13Feltz Printing Service RENEWAL23Amy Elsner
1014Francesco X WhobreyGermany2024-04-07Rangoni Of Florence UNQUALIFIED68Asiya Javayant
1015Kaitlin Y StockhamJapan2024-04-30Truhlar And Truhlar Attys UNQUALIFIED0Elwin Sharvill
1016Isabel W StockhamArgentina2024-04-28Rousseaux, Michael Esq UNQUALIFIED92Stephen Shaw
1017Mayumi Z WaycottRussia2024-04-10Commercial Press QUALIFIED16Elwin Sharvill
1018Nicolas O FlosiFrance2024-04-28Chemel, James L Cpa NEW36Stephen Shaw
1019Johnson D MarrierArgentina2024-04-02Rangoni Of Florence UNQUALIFIED99Ivan Magalhaes
1020Munro D FlosiAustralia2024-04-26Dorl, James J Esq UNQUALIFIED78Amy Elsner
1021Leja N NickaIndia2024-04-20Truhlar And Truhlar Attys NEGOTIATION64Amy Elsner
1022Ashley H ChuiUnited Kingdom2024-04-21Rangoni Of Florence QUALIFIED59Onyama Limba
1023Clifford A IturbideFrance2024-04-22Morlong Associates PROPOSAL88Elwin Sharvill
1024Cody J MaletFrance2024-04-05Truhlar And Truhlar Attys QUALIFIED55Amy Elsner
1025Maisha P BologniaRussia2024-04-08Feiner Bros QUALIFIED81Ioni Bowcher
1026Murillo A FollerGermany2024-04-19Feiner Bros NEW61Ivan Magalhaes
1027Jennifer I BowleyCanada2024-04-26Feltz Printing Service NEGOTIATION33Stephen Shaw
1028Deepesh B StockhamJapan2024-04-17Feiner Bros PROPOSAL45Asiya Javayant
1029Ricardo W FollerJapan2024-04-06Printing Dimensions RENEWAL14Onyama Limba
1030Murillo B OstroskyArgentina2024-04-28Rangoni Of Florence UNQUALIFIED19Onyama Limba
1031Mayumi I CampainRussia2024-04-29King, Christopher A Esq RENEWAL46Xuxue Feng
1032Arvin Q MaletBrazil2024-04-06Rousseaux, Michael Esq RENEWAL20Amy Elsner
1033Greenwood K RoysterUnited Kingdom2024-04-14Morlong Associates NEGOTIATION92Asiya Javayant
1034Darci R MaletUnited Kingdom2024-04-23Chemel, James L Cpa QUALIFIED37Stephen Shaw
1035David E PoquetteAustralia2024-04-03Rousseaux, Michael Esq RENEWAL3Onyama Limba
1036Tony D SergiJapan2024-04-07Rousseaux, Michael Esq RENEWAL2Anna Fali
1037Isabel U RimArgentina2024-04-19Chanay, Jeffrey A Esq QUALIFIED16Onyama Limba
1038Greenwood H FigeroaCanada2024-04-04Chapman, Ross E Esq NEGOTIATION66Xuxue Feng
1039Jefferson K DoeCanada2024-04-17Commercial Press NEGOTIATION50Elwin Sharvill
1040Kadeem B MarrierBrazil2024-04-17Chemel, James L Cpa NEW76Asiya Javayant
1041Emily M OstroskyCanada2024-04-16Buckley Miller Wright UNQUALIFIED44Onyama Limba
1042Jones Z PoquetteRussia2024-04-06Feltz Printing Service PROPOSAL11Amy Elsner
1043Morrow Z PoquetteFrance2024-04-04Commercial Press QUALIFIED80Onyama Limba
1044Jennifer I NickaRussia2024-04-26Commercial Press PROPOSAL28Ioni Bowcher
1045Stacey W SergiGermany2024-04-15Feltz Printing Service UNQUALIFIED43Bernardo Dominic
1046Adams A KolmetzCanada2024-04-25Chanay, Jeffrey A Esq UNQUALIFIED3Ioni Bowcher
1047Johnson C DarakjyRussia2024-04-28Printing Dimensions QUALIFIED60Onyama Limba
1048Ivar F GlickCanada2024-04-07Rousseaux, Michael Esq NEGOTIATION63Ioni Bowcher
1049Smith O DoeItaly2024-04-25Chanay, Jeffrey A Esq QUALIFIED14Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jennifer E InouyeBrazilOnyama Limba NEW
Munro F RoysterRussiaAmy Elsner RENEWAL
Kadeem V MaletItalyOnyama Limba RENEWAL
Izzy D GlickCanadaOnyama Limba NEW
James O RulapaughUnited KingdomBernardo Dominic UNQUALIFIED
Mayumi O SergiSpainIvan Magalhaes UNQUALIFIED
Aruna D FlosiUnited KingdomAsiya Javayant RENEWAL
Misaki G MaletIndiaBernardo Dominic QUALIFIED
Johnson Z IturbideCanadaStephen Shaw UNQUALIFIED
Aika I OldroydItalyStephen Shaw NEW
Greenwood R BriddickJapanOnyama Limba UNQUALIFIED
Octavia N PoquetteIndiaAsiya Javayant RENEWAL
Jeanfrancois T OstroskyGermanyAmy Elsner NEW
Jefferson V DoeGermanyAsiya Javayant PROPOSAL
Antonio C IturbideBrazilBernardo Dominic PROPOSAL
Claire N RulapaughRussiaStephen Shaw QUALIFIED
Salvatore D PoquetteCanadaIvan Magalhaes NEW
Emily A RoysterJapanOnyama Limba NEW
Salvatore U PaprockiFranceIoni Bowcher QUALIFIED
Adams R KuskoUnited KingdomStephen Shaw UNQUALIFIED
Sinclair T DoeCanadaAmy Elsner UNQUALIFIED
Jones K CaldareraAustraliaXuxue Feng UNQUALIFIED
Tony P VenereAustraliaIoni Bowcher QUALIFIED
Ricardo J VocelkaRussiaAnna Fali RENEWAL
Adams O CaudyBrazilIvan Magalhaes NEW
Smith R TollnerItalyAnna Fali PROPOSAL
Jefferson N FlosiBrazilXuxue Feng PROPOSAL
Leon W NestleGermanyIoni Bowcher NEW
Wickens V PerinFranceStephen Shaw RENEWAL
Smith M SergiBrazilOnyama Limba NEW
David O DarakjyAustraliaStephen Shaw UNQUALIFIED
Jones Y AlbaresItalyXuxue Feng NEGOTIATION
Arvin I KolmetzSpainAnna Fali UNQUALIFIED
Clifford A RoysterJapanAnna Fali PROPOSAL
Greenwood E ChuiSpainIoni Bowcher UNQUALIFIED
Izzy B GillianUnited KingdomIoni Bowcher NEGOTIATION
Jones P DarakjyCanadaXuxue Feng RENEWAL
Mujtaba V KuskoArgentinaXuxue Feng QUALIFIED
Wickens N FlosiUnited KingdomAnna Fali NEW
Leja Q DoeArgentinaOnyama Limba NEGOTIATION
Jeanfrancois E DoeItalyAmy Elsner NEGOTIATION
Octavia Q StensethArgentinaOnyama Limba NEW
Adams C NestleCanadaIvan Magalhaes QUALIFIED
Aika G MorascaUnited KingdomStephen Shaw NEW
Cody I CaldareraFranceOnyama Limba NEGOTIATION
Morrow K BriddickFranceIvan Magalhaes UNQUALIFIED
James S FollerRussiaAnna Fali RENEWAL
Ricardo T BologniaSpainBernardo Dominic RENEWAL
Clifford Z MacleadJapanIoni Bowcher PROPOSAL
Isabel D DilliardUnited KingdomOnyama Limba QUALIFIED
Frozen Columns
Name
Chavez G Tollner
Alejandro E Ferencz
Cody W Malet
Rodrigues W Foller
Stacey T Campain
Sinclair U Waycott
Francesco R Bolognia
Emily F Saylors
Faith Z Gaucho
Julie A Slusarski
Jeanfrancois B Butt
Stacey T Royster
Smith W Ostrosky
Faith W Ferencz
Aika T Gaucho
Mayumi E Iturbide
Smith U Royster
Leja A Nicka
Aruna A Venere
Clifford G Schemmer
Nicolas D Paprocki
Deepesh H Perin
Claire B Poquette
Aditya N Perin
Sinclair R Dilliard
Deepesh F Vocelka
Munro F Chui
Kadeem U Ostrosky
Julie V Ruta
Chavez F Bolognia
Ashley C Vocelka
Greenwood M Oldroyd
Emily D Bowley
Wickens X Chui
Antonio O Slusarski
Kadeem T Marrier
Mayumi T Sergi
Deepesh V Malet
Ashley K Slusarski
Aruna H Foller
Ivar S Perin
Ivar V Campain
Ivar N Vocelka
Misaki L Flosi
Aika W Doe
Sinclair P Morasca
Cody U Doe
Silvio Y Ferencz
Munro N Schemmer
Murillo U Campain
IdCountryDate
1000United Kingdom2024-04-17
1001Japan2024-04-04
1002Japan2024-04-10
1003Japan2024-04-22
1004Russia2024-04-06
1005Japan2024-04-08
1006Spain2024-04-13
1007Germany2024-04-02
1008Brazil2024-04-15
1009France2024-04-17
1010Argentina2024-04-23
1011Argentina2024-04-26
1012Brazil2024-04-02
1013Russia2024-04-19
1014Spain2024-04-24
1015Russia2024-04-20
1016Russia2024-04-25
1017Argentina2024-04-12
1018Australia2024-04-07
1019Argentina2024-04-09
1020India2024-04-13
1021Argentina2024-04-26
1022Australia2024-04-10
1023Spain2024-04-21
1024Australia2024-04-12
1025Spain2024-04-05
1026Germany2024-04-05
1027France2024-04-28
1028Japan2024-04-12
1029France2024-04-27
1030Italy2024-04-10
1031Italy2024-04-28
1032India2024-04-16
1033Italy2024-04-28
1034Australia2024-04-14
1035United Kingdom2024-04-04
1036France2024-05-01
1037Australia2024-04-19
1038Spain2024-04-22
1039Russia2024-04-20
1040Germany2024-04-22
1041Australia2024-04-07
1042France2024-04-21
1043Italy2024-04-29
1044Germany2024-04-16
1045Japan2024-04-05
1046France2024-04-10
1047France2024-04-04
1048Russia2024-04-27
1049United Kingdom2024-04-14

On-Demand Data

NameIdCountryDate
Jones J Oldroyd1000France2024-04-22
Cody S Caldarera1001Japan2024-04-26
Clifford E Amigon1002Argentina2024-04-08
Wickens U Bowley1003Japan2024-04-03
Deepesh R Whobrey1004Germany2024-04-06
Kaitlin L Gillian1005Brazil2024-04-28
Kaitlin I Ruta1006Italy2024-04-24
Leja K Inouye1007Germany2024-04-10
David W Amigon1008Brazil2024-04-15
Cody I Ruta1009France2024-04-12
Adams O Schemmer1010Italy2024-04-15
Costa Y Campain1011Brazil2024-04-04
Rodrigues I Ruta1012Italy2024-04-30
Wickens E Foller1013Japan2024-04-21
Alejandro O Caudy1014Brazil2024-04-06
Munro B Sergi1015Italy2024-04-13
Emily Q Foller1016Germany2024-04-12
Cody O Albares1017France2024-04-11
Izzy U Royster1018India2024-04-24
Johnson G Foller1019Italy2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois G PoquetteFranceXuxue Feng RENEWAL
Jeanfrancois K InouyeCanadaBernardo Dominic NEGOTIATION
Johnson M SaylorsIndiaElwin Sharvill QUALIFIED
Emily C PoquetteCanadaAmy Elsner NEW
Francesco M IturbideUnited KingdomAnna Fali RENEWAL
Leja N FerenczGermanyStephen Shaw UNQUALIFIED
Octavia K MacleadGermanyAsiya Javayant NEW
Costa H GillianSpainElwin Sharvill RENEWAL
Jennifer L NestleRussiaBernardo Dominic PROPOSAL
Salvatore W MacleadItalyIoni Bowcher UNQUALIFIED
Antonio M MacleadItalyAnna Fali QUALIFIED
Nicolas B DarakjyIndiaAmy Elsner UNQUALIFIED
David R GlickJapanStephen Shaw QUALIFIED
Francesco I ShinkoGermanyIvan Magalhaes NEGOTIATION
James P WhobreyAustraliaAnna Fali PROPOSAL
Clifford Z ChuiBrazilAmy Elsner RENEWAL
Murillo Q GlickJapanStephen Shaw PROPOSAL
Maisha G SaylorsRussiaIoni Bowcher NEGOTIATION
Smith M MaletBrazilElwin Sharvill RENEWAL
Adams X PaprockiArgentinaOnyama Limba NEW
Kadeem Z PerinFranceIvan Magalhaes NEGOTIATION
Arvin K ButtRussiaIvan Magalhaes UNQUALIFIED
Smith R BowleyIndiaXuxue Feng PROPOSAL
David O GauchoSpainAnna Fali NEGOTIATION
Ricardo F GauchoSpainAnna Fali NEGOTIATION
James D CaudyBrazilStephen Shaw PROPOSAL
Adams M PerinJapanBernardo Dominic QUALIFIED
Chavez L VenereAustraliaAnna Fali RENEWAL
Claire D FlosiIndiaBernardo Dominic NEW
Smith J MacleadUnited KingdomIoni Bowcher NEGOTIATION
Jennifer V GillianItalyElwin Sharvill PROPOSAL
Cody Q NestleUnited KingdomIoni Bowcher NEGOTIATION
Julie R AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
Jones A PoquetteUnited KingdomOnyama Limba RENEWAL
Adams L KuskoCanadaOnyama Limba PROPOSAL
Morrow P BowleyJapanIoni Bowcher QUALIFIED
Nicolas O CampainAustraliaElwin Sharvill QUALIFIED
Adams R GauchoFranceElwin Sharvill NEGOTIATION
Sinclair Z ShinkoIndiaIoni Bowcher RENEWAL
Misaki Q InouyeCanadaElwin 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>