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
Deepesh R ButtJapanIoni Bowcher RENEWAL
Nicolas G VenereItalyIoni Bowcher RENEWAL
Greenwood K GlickSpainStephen Shaw RENEWAL
Mujtaba M FlosiArgentinaBernardo Dominic QUALIFIED
Jefferson M WieserUnited KingdomBernardo Dominic NEGOTIATION
Ivar P MarrierJapanXuxue Feng QUALIFIED
Maria K MarrierCanadaIvan Magalhaes PROPOSAL
Murillo K BologniaGermanyAnna Fali QUALIFIED
Nicolas X AlbaresUnited KingdomOnyama Limba RENEWAL
Darci T RutaSpainBernardo Dominic PROPOSAL
Chavez J KolmetzJapanStephen Shaw NEW
Tony L MarrierBrazilStephen Shaw PROPOSAL
Ricardo L KolmetzFranceStephen Shaw UNQUALIFIED
Leon K AlbaresItalyOnyama Limba PROPOSAL
Munro S StockhamItalyAmy Elsner UNQUALIFIED
Octavia Q GillianJapanOnyama Limba UNQUALIFIED
Darci X RulapaughFranceStephen Shaw NEGOTIATION
Ivar C RoysterAustraliaAmy Elsner UNQUALIFIED
David O ChuiAustraliaAsiya Javayant NEW
Izzy H SaylorsItalyElwin Sharvill QUALIFIED
Isabel G ShinkoItalyAnna Fali NEGOTIATION
Emily A GlickSpainAnna Fali QUALIFIED
Jennifer T KolmetzFranceOnyama Limba RENEWAL
Cody S MorascaRussiaAsiya Javayant RENEWAL
Alejandro Q MacleadRussiaAmy Elsner NEW
Rodrigues H SaylorsIndiaOnyama Limba RENEWAL
Mayumi P MacleadItalyAsiya Javayant PROPOSAL
Alejandro A DoeAustraliaStephen Shaw NEW
Darci L WieserAustraliaIoni Bowcher QUALIFIED
Julie K DilliardIndiaOnyama Limba QUALIFIED
Julie W MaletJapanXuxue Feng RENEWAL
Aika Q MaletArgentinaBernardo Dominic NEGOTIATION
Mayumi D RutaItalyXuxue Feng NEGOTIATION
Stacey L BriddickArgentinaBernardo Dominic RENEWAL
Claire R SaylorsUnited KingdomBernardo Dominic RENEWAL
Kadeem X ButtArgentinaStephen Shaw NEGOTIATION
Claire A MaletBrazilIoni Bowcher RENEWAL
Kaitlin J WaycottFranceAnna Fali NEW
Deepesh Y NickaIndiaOnyama Limba NEW
Smith E CaudyIndiaAsiya Javayant NEW
Misaki U FerenczAustraliaIvan Magalhaes NEGOTIATION
Smith L ChuiAustraliaAmy Elsner NEW
Chavez C GauchoBrazilIoni Bowcher QUALIFIED
Ricardo S PerinFranceOnyama Limba RENEWAL
Francesco C BologniaBrazilIvan Magalhaes NEW
Isabel B SergiSpainAmy Elsner PROPOSAL
Claire C BriddickItalyAnna Fali NEGOTIATION
Emily A PerinJapanElwin Sharvill UNQUALIFIED
Juan L GauchoArgentinaAsiya Javayant NEW
Octavia X RoysterGermanyAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois X NestleFranceStephen Shaw PROPOSAL
Jones I NickaAustraliaIvan Magalhaes QUALIFIED
Johnson H StensethUnited KingdomOnyama Limba PROPOSAL
Salvatore D IturbideAustraliaXuxue Feng PROPOSAL
Claire T BriddickUnited KingdomIvan Magalhaes NEW
Jeanfrancois S MacleadSpainElwin Sharvill UNQUALIFIED
Tony S NickaJapanAsiya Javayant QUALIFIED
Rodrigues V NickaUnited KingdomAnna Fali UNQUALIFIED
Stacey Q MaletCanadaIoni Bowcher PROPOSAL
Mayumi Q RutaIndiaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kadeem E StensethRussia2024-04-08Benton, John B Jr NEW66Ioni Bowcher
1001Mujtaba G PaprockiAustralia2024-04-10Rousseaux, Michael Esq PROPOSAL68Anna Fali
1002Clifford T MaletSpain2024-04-25Benton, John B Jr NEGOTIATION41Ioni Bowcher
1003Wickens J SchemmerItaly2024-03-29Dorl, James J Esq NEW67Bernardo Dominic
1004Emily J StockhamGermany2024-04-08Truhlar And Truhlar Attys NEGOTIATION68Stephen Shaw
1005Mujtaba E SlusarskiIndia2024-04-02Buckley Miller Wright NEW66Ioni Bowcher
1006Smith G AmigonBrazil2024-04-01Rangoni Of Florence NEW97Xuxue Feng
1007Juan A SlusarskiRussia2024-04-27Dorl, James J Esq PROPOSAL54Asiya Javayant
1008Faith Y OldroydCanada2024-04-21King, Christopher A Esq NEW56Ivan Magalhaes
1009Octavia M PoquetteSpain2024-04-02Buckley Miller Wright QUALIFIED23Asiya Javayant
1010Jeanfrancois W FollerRussia2024-04-14Rousseaux, Michael Esq QUALIFIED28Bernardo Dominic
1011Rodrigues T MaletArgentina2024-04-06Truhlar And Truhlar Attys NEW10Elwin Sharvill
1012Misaki D ChuiBrazil2024-04-09Chanay, Jeffrey A Esq PROPOSAL27Onyama Limba
1013James O WhobreyCanada2024-04-20Dorl, James J Esq PROPOSAL47Amy Elsner
1014Chavez C KuskoFrance2024-04-06Chemel, James L Cpa NEGOTIATION43Elwin Sharvill
1015Deepesh K SergiJapan2024-04-22Rangoni Of Florence RENEWAL19Xuxue Feng
1016Jeanfrancois Y BriddickIndia2024-04-07Printing Dimensions RENEWAL11Bernardo Dominic
1017Faith T ShinkoRussia2024-04-25Printing Dimensions UNQUALIFIED16Xuxue Feng
1018Greenwood S CampainIndia2024-04-11Feltz Printing Service NEGOTIATION56Ivan Magalhaes
1019Salvatore I ShinkoIndia2024-04-04King, Christopher A Esq NEGOTIATION50Elwin Sharvill
1020James T MaletJapan2024-03-31Rousseaux, Michael Esq NEW43Elwin Sharvill
1021Smith R SchemmerAustralia2024-04-12Benton, John B Jr UNQUALIFIED78Ioni Bowcher
1022Munro S RutaItaly2024-04-07Morlong Associates NEGOTIATION2Xuxue Feng
1023Faith V ButtSpain2024-04-10Printing Dimensions RENEWAL22Elwin Sharvill
1024Jeanfrancois F KuskoBrazil2024-03-29Chemel, James L Cpa PROPOSAL29Elwin Sharvill
1025Rodrigues J AmigonFrance2024-04-14Buckley Miller Wright PROPOSAL3Elwin Sharvill
1026Antonio O GlickAustralia2024-04-04Truhlar And Truhlar Attys RENEWAL3Bernardo Dominic
1027Isabel C MaletArgentina2024-04-23Chemel, James L Cpa NEW58Asiya Javayant
1028Kadeem G TollnerItaly2024-04-08Rangoni Of Florence UNQUALIFIED65Asiya Javayant
1029Stacey L NickaGermany2024-04-16Dorl, James J Esq RENEWAL22Elwin Sharvill
1030Mayumi Y SergiItaly2024-04-17Morlong Associates RENEWAL95Elwin Sharvill
1031Maria C SchemmerSpain2024-04-16Benton, John B Jr RENEWAL16Amy Elsner
1032Wickens D VenereAustralia2024-04-17Benton, John B Jr NEW17Anna Fali
1033Chavez H MarrierJapan2024-03-29Benton, John B Jr UNQUALIFIED60Ivan Magalhaes
1034Adams A CaldareraUnited Kingdom2024-04-09Benton, John B Jr NEW50Onyama Limba
1035Maria A RoysterRussia2024-04-20Rangoni Of Florence QUALIFIED49Anna Fali
1036Juan M FlosiBrazil2024-04-06Chanay, Jeffrey A Esq QUALIFIED0Asiya Javayant
1037James Z ChuiArgentina2024-04-11Feiner Bros NEGOTIATION52Ioni Bowcher
1038Darci P WaycottAustralia2024-04-13Chapman, Ross E Esq NEGOTIATION80Anna Fali
1039Maisha F BowleyRussia2024-04-18Buckley Miller Wright QUALIFIED10Amy Elsner
1040Maisha Q ChuiJapan2024-04-09Morlong Associates PROPOSAL15Stephen Shaw
1041Jennifer R ButtAustralia2024-04-27Rousseaux, Michael Esq NEW75Ioni Bowcher
1042Jeanfrancois L BologniaRussia2024-04-24Morlong Associates NEW97Ivan Magalhaes
1043Costa U AmigonBrazil2024-04-17Feltz Printing Service PROPOSAL4Asiya Javayant
1044Munro C ShinkoIndia2024-04-12Rangoni Of Florence UNQUALIFIED43Stephen Shaw
1045Salvatore Y InouyeBrazil2024-04-25Feiner Bros NEGOTIATION31Onyama Limba
1046Maisha Z GlickGermany2024-03-31Benton, John B Jr UNQUALIFIED73Xuxue Feng
1047Nicolas J KolmetzArgentina2024-04-08Feltz Printing Service RENEWAL41Amy Elsner
1048Rodrigues R SlusarskiUnited Kingdom2024-03-30Buckley Miller Wright PROPOSAL65Stephen Shaw
1049Julie A OldroydFrance2024-04-08King, Christopher A Esq PROPOSAL74Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Faith S VenereRussiaAsiya Javayant PROPOSAL
Mujtaba L VenereItalyXuxue Feng NEW
Tony T MarrierRussiaElwin Sharvill UNQUALIFIED
Faith Q RimGermanyAnna Fali PROPOSAL
Smith S SergiRussiaXuxue Feng QUALIFIED
Izzy Q BologniaBrazilElwin Sharvill NEW
Jefferson V BriddickCanadaStephen Shaw NEW
Aika G KolmetzAustraliaXuxue Feng RENEWAL
Claire O DilliardIndiaAnna Fali NEW
Mayumi P ShinkoAustraliaIoni Bowcher PROPOSAL
Salvatore C FigeroaSpainIvan Magalhaes NEGOTIATION
Ricardo X DarakjyAustraliaAmy Elsner NEGOTIATION
Jones G DarakjyGermanyBernardo Dominic QUALIFIED
Jennifer V OldroydRussiaElwin Sharvill PROPOSAL
Wickens T StockhamItalyIoni Bowcher NEGOTIATION
Stacey W SaylorsAustraliaIvan Magalhaes RENEWAL
Morrow Q InouyeGermanyElwin Sharvill PROPOSAL
Aruna K NickaItalyXuxue Feng PROPOSAL
Mujtaba W NestleFranceAsiya Javayant NEGOTIATION
Jefferson U RimFranceElwin Sharvill NEGOTIATION
Maria I FollerGermanyStephen Shaw UNQUALIFIED
Clifford S InouyeBrazilAnna Fali PROPOSAL
Leja H BriddickSpainIvan Magalhaes RENEWAL
Rodrigues S SchemmerAustraliaAsiya Javayant NEW
Francesco O InouyeGermanyBernardo Dominic NEW
Morrow K SergiItalyOnyama Limba UNQUALIFIED
Clifford E FollerUnited KingdomAnna Fali QUALIFIED
Greenwood T FerenczFranceXuxue Feng UNQUALIFIED
Faith V AlbaresAustraliaIoni Bowcher NEGOTIATION
Wickens R MarrierIndiaBernardo Dominic RENEWAL
Mayumi M SlusarskiJapanAsiya Javayant QUALIFIED
Isabel T MaletJapanStephen Shaw PROPOSAL
Maria V KolmetzItalyStephen Shaw NEW
Leja I WaycottAustraliaXuxue Feng UNQUALIFIED
Juan A GillianJapanAmy Elsner PROPOSAL
Clifford Y WhobreyJapanStephen Shaw QUALIFIED
Octavia Z TollnerItalyAmy Elsner NEGOTIATION
Arvin Q InouyeIndiaXuxue Feng PROPOSAL
Emily V WaycottUnited KingdomAmy Elsner UNQUALIFIED
Greenwood F FerenczBrazilStephen Shaw NEW
Ricardo I BologniaIndiaAmy Elsner PROPOSAL
Salvatore P WaycottJapanAsiya Javayant PROPOSAL
Deepesh W SaylorsIndiaBernardo Dominic UNQUALIFIED
Wickens S VocelkaJapanIvan Magalhaes PROPOSAL
Izzy J MaletUnited KingdomAnna Fali QUALIFIED
Isabel W WaycottItalyIoni Bowcher QUALIFIED
Wickens L AlbaresGermanyAmy Elsner QUALIFIED
Faith G CaldareraCanadaBernardo Dominic PROPOSAL
Kaitlin X VenereJapanOnyama Limba PROPOSAL
Rodrigues Y BowleyRussiaBernardo Dominic NEW
Frozen Columns
Name
Munro G Butt
Maisha K Ostrosky
Misaki F Paprocki
Alejandro G Foller
Jennifer C Foller
Johnson I Inouye
Julie G Schemmer
Smith P Ferencz
Izzy L Caldarera
Jones P Darakjy
Salvatore I Darakjy
Izzy O Campain
Silvio L Saylors
Adams N Schemmer
Leon G Chui
Cody L Stockham
Johnson X Marrier
Claire R Stenseth
Stacey Q Figeroa
Jefferson L Oldroyd
Isabel G Malet
Greenwood G Maclead
Kadeem X Nestle
Jones W Campain
Aika K Perin
Salvatore V Ferencz
Arvin J Bolognia
James V Vocelka
Kaitlin X Venere
Costa X Darakjy
Wickens U Slusarski
Julie D Rim
Isabel R Slusarski
Silvio D Darakjy
Morrow F Maclead
Smith F Saylors
Adams R Poquette
Wickens E Morasca
Maisha X Shinko
Maria J Royster
Tony H Saylors
Costa C Sergi
Octavia I Malet
Silvio G Foller
Costa G Paprocki
Morrow O Venere
Isabel W Royster
Aruna R Royster
Kadeem N Gillian
Mayumi B Rulapaugh
IdCountryDate
1000Japan2024-04-12
1001Germany2024-04-06
1002Germany2024-04-15
1003India2024-04-10
1004Germany2024-04-14
1005Japan2024-04-04
1006Spain2024-04-27
1007Argentina2024-03-29
1008Argentina2024-03-29
1009Brazil2024-04-01
1010Canada2024-04-20
1011Argentina2024-03-30
1012France2024-04-27
1013United Kingdom2024-04-06
1014Spain2024-04-10
1015Brazil2024-04-15
1016United Kingdom2024-04-01
1017Brazil2024-04-05
1018Brazil2024-04-11
1019Brazil2024-04-09
1020Spain2024-04-05
1021Argentina2024-04-24
1022Russia2024-04-26
1023India2024-04-03
1024Canada2024-04-16
1025India2024-04-27
1026United Kingdom2024-04-25
1027France2024-04-23
1028Spain2024-04-23
1029Brazil2024-03-30
1030Spain2024-04-04
1031India2024-04-24
1032Brazil2024-04-25
1033Argentina2024-04-13
1034India2024-03-30
1035France2024-04-22
1036Italy2024-04-26
1037Russia2024-04-03
1038Canada2024-03-30
1039India2024-04-19
1040Russia2024-04-21
1041Brazil2024-04-15
1042Brazil2024-04-13
1043Spain2024-04-16
1044United Kingdom2024-04-11
1045Canada2024-04-14
1046India2024-04-12
1047Japan2024-04-27
1048Germany2024-03-30
1049Germany2024-04-17

On-Demand Data

NameIdCountryDate
Juan N Foller1000Germany2024-04-03
Adams I Glick1001Brazil2024-04-17
Francesco W Shinko1002France2024-04-10
David A Stenseth1003Japan2024-04-07
Rodrigues I Royster1004Spain2024-04-03
Adams O Caudy1005India2024-04-03
Salvatore G Ferencz1006Australia2024-04-05
Mujtaba M Briddick1007Germany2024-03-31
Ashley U Vocelka1008India2024-04-13
Greenwood P Gaucho1009Canada2024-04-18
Jennifer J Rim1010Brazil2024-04-06
Cody E Chui1011Spain2024-04-24
Alejandro A Dilliard1012Brazil2024-04-15
Nicolas G Royster1013United Kingdom2024-04-12
Nicolas F Royster1014Canada2024-04-26
Octavia X Briddick1015Germany2024-04-18
Faith U Dilliard1016Spain2024-04-15
Chavez B Foller1017India2024-04-15
Murillo L Malet1018France2024-04-15
Munro G Stockham1019Japan2024-04-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja F WieserSpainAnna Fali PROPOSAL
Leja D MaletBrazilAnna Fali NEGOTIATION
Kadeem T WieserBrazilAnna Fali NEGOTIATION
Claire W RulapaughGermanyAsiya Javayant RENEWAL
Greenwood K VocelkaGermanyAmy Elsner QUALIFIED
Kaitlin J MaletItalyAnna Fali QUALIFIED
Tony L RulapaughAustraliaElwin Sharvill PROPOSAL
Silvio M RulapaughSpainStephen Shaw PROPOSAL
Ivar C CaudyCanadaIoni Bowcher NEGOTIATION
Jennifer X WieserFranceIoni Bowcher RENEWAL
Murillo G OstroskyAustraliaOnyama Limba PROPOSAL
Maria M OstroskyBrazilIvan Magalhaes PROPOSAL
Salvatore B TollnerFranceIvan Magalhaes NEGOTIATION
Faith W AmigonSpainStephen Shaw NEGOTIATION
Ivar W DilliardRussiaIoni Bowcher NEW
Maria L NestleSpainStephen Shaw UNQUALIFIED
Faith I ShinkoAustraliaXuxue Feng QUALIFIED
Octavia J InouyeJapanAmy Elsner NEGOTIATION
Wickens L PaprockiArgentinaElwin Sharvill PROPOSAL
Jennifer U BowleyItalyBernardo Dominic NEGOTIATION
Stacey E CaldareraGermanyAsiya Javayant PROPOSAL
Darci N MarrierGermanyIoni Bowcher QUALIFIED
Claire W FerenczGermanyOnyama Limba NEGOTIATION
Stacey L DarakjyGermanyElwin Sharvill QUALIFIED
Darci D WaycottUnited KingdomOnyama Limba QUALIFIED
Wickens E CaudyRussiaAnna Fali NEW
Munro B OstroskyBrazilAmy Elsner RENEWAL
David N MorascaAustraliaIvan Magalhaes NEGOTIATION
David A FollerUnited KingdomIvan Magalhaes NEGOTIATION
David D StockhamBrazilStephen Shaw UNQUALIFIED
Claire I InouyeGermanyBernardo Dominic RENEWAL
Antonio W CaldareraItalyXuxue Feng NEGOTIATION
Tony Z MacleadRussiaIoni Bowcher QUALIFIED
Clifford P StockhamIndiaIvan Magalhaes UNQUALIFIED
Wickens A FollerGermanyBernardo Dominic UNQUALIFIED
Deepesh I GlickSpainIvan Magalhaes RENEWAL
Wickens Q SchemmerSpainXuxue Feng NEW
Claire H KolmetzIndiaOnyama Limba NEW
Francesco C StensethIndiaBernardo Dominic PROPOSAL
Stacey I ChuiItalyAmy Elsner 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>