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
Jefferson I VocelkaGermanyXuxue Feng UNQUALIFIED
Juan G FlosiSpainOnyama Limba RENEWAL
Aika Q OstroskyBrazilAnna Fali RENEWAL
Isabel K OldroydFranceIoni Bowcher PROPOSAL
Aditya O ShinkoArgentinaAsiya Javayant PROPOSAL
Misaki Y SchemmerIndiaElwin Sharvill UNQUALIFIED
Julie E FlosiAustraliaBernardo Dominic UNQUALIFIED
Smith X SchemmerRussiaAnna Fali QUALIFIED
Kaitlin N MarrierGermanyXuxue Feng RENEWAL
Francesco H ChuiCanadaXuxue Feng QUALIFIED
Chavez L DarakjyArgentinaElwin Sharvill QUALIFIED
Nicolas H FollerFranceOnyama Limba NEW
Munro I ChuiGermanyAnna Fali PROPOSAL
Darci Y VenereGermanyBernardo Dominic PROPOSAL
Deepesh Z MaletCanadaIvan Magalhaes QUALIFIED
Antonio V PerinJapanElwin Sharvill UNQUALIFIED
Deepesh E StensethAustraliaIoni Bowcher QUALIFIED
James F BowleyFranceOnyama Limba NEGOTIATION
Antonio N FigeroaRussiaAsiya Javayant NEW
Leon F DarakjyCanadaAmy Elsner UNQUALIFIED
Isabel I SlusarskiRussiaOnyama Limba UNQUALIFIED
Adams V FlosiRussiaAnna Fali QUALIFIED
Misaki D GillianRussiaAnna Fali RENEWAL
Emily G RutaAustraliaXuxue Feng NEW
Aditya O RimCanadaOnyama Limba PROPOSAL
Antonio E AlbaresAustraliaIvan Magalhaes RENEWAL
Munro G AmigonBrazilAsiya Javayant NEGOTIATION
Smith D GillianCanadaIvan Magalhaes NEW
Faith C GauchoBrazilBernardo Dominic QUALIFIED
Murillo K CaldareraBrazilAsiya Javayant PROPOSAL
Cody U DilliardGermanyAsiya Javayant RENEWAL
Murillo Q MarrierJapanAnna Fali PROPOSAL
Tony J GillianUnited KingdomAsiya Javayant QUALIFIED
Johnson X InouyeCanadaBernardo Dominic NEW
Jeanfrancois A RutaArgentinaStephen Shaw NEW
Wickens B BriddickFranceIvan Magalhaes PROPOSAL
Julie V StockhamGermanyBernardo Dominic RENEWAL
Mujtaba O OstroskyBrazilStephen Shaw QUALIFIED
Mujtaba S SchemmerArgentinaAmy Elsner NEGOTIATION
Silvio E SaylorsAustraliaElwin Sharvill NEGOTIATION
Maria Q SlusarskiAustraliaElwin Sharvill UNQUALIFIED
Emily E SlusarskiJapanIoni Bowcher UNQUALIFIED
Adams Z BowleyAustraliaOnyama Limba RENEWAL
Darci U CampainGermanyElwin Sharvill NEGOTIATION
Maria E OldroydArgentinaAnna Fali PROPOSAL
Arvin P ShinkoBrazilElwin Sharvill QUALIFIED
Antonio H SchemmerItalyAsiya Javayant QUALIFIED
Clifford N FigeroaUnited KingdomAnna Fali QUALIFIED
Alejandro E SaylorsUnited KingdomAsiya Javayant NEGOTIATION
Costa P FlosiBrazilElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Kaitlin S ShinkoBrazilXuxue Feng QUALIFIED
Faith L MaletSpainAsiya Javayant NEW
Smith C WieserBrazilOnyama Limba UNQUALIFIED
Maisha S MorascaFranceAsiya Javayant PROPOSAL
Cody G RulapaughItalyIoni Bowcher NEW
Ricardo P NestleJapanIvan Magalhaes NEW
Leja O ButtUnited KingdomOnyama Limba RENEWAL
Aika H StockhamItalyAsiya Javayant UNQUALIFIED
Leon X DoeJapanAmy Elsner QUALIFIED
Jefferson Z RimFranceAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez Z MarrierRussia2024-04-16Chanay, Jeffrey A Esq NEW25Xuxue Feng
1001Ricardo P MaletItaly2024-04-12Feiner Bros NEGOTIATION46Amy Elsner
1002Ricardo W VenereAustralia2024-04-18Feiner Bros NEW50Asiya Javayant
1003Clifford Z ChuiBrazil2024-03-30Dorl, James J Esq NEW11Asiya Javayant
1004Stacey H SergiGermany2024-04-05Morlong Associates RENEWAL64Amy Elsner
1005Smith H RoysterUnited Kingdom2024-04-07Buckley Miller Wright NEW48Elwin Sharvill
1006Cody D CaudyJapan2024-04-11Morlong Associates NEGOTIATION15Stephen Shaw
1007Isabel O GlickGermany2024-03-26Feiner Bros RENEWAL34Anna Fali
1008Jeanfrancois M GlickBrazil2024-04-14Rousseaux, Michael Esq QUALIFIED51Bernardo Dominic
1009Ivar P DarakjyItaly2024-04-05Buckley Miller Wright NEW62Anna Fali
1010Stacey D SchemmerBrazil2024-04-06Feiner Bros NEGOTIATION54Stephen Shaw
1011Cody V ChuiRussia2024-04-19King, Christopher A Esq NEGOTIATION8Amy Elsner
1012Kaitlin Y DarakjyCanada2024-03-29Commercial Press UNQUALIFIED36Ivan Magalhaes
1013Isabel P DilliardItaly2024-03-25Rousseaux, Michael Esq NEGOTIATION61Bernardo Dominic
1014Alejandro S WieserItaly2024-04-06Chanay, Jeffrey A Esq NEGOTIATION28Amy Elsner
1015Nicolas E PerinIndia2024-04-11Rangoni Of Florence NEW61Stephen Shaw
1016Aruna Q IturbideItaly2024-04-07Chanay, Jeffrey A Esq QUALIFIED83Elwin Sharvill
1017Emily K RulapaughFrance2024-04-17Rousseaux, Michael Esq RENEWAL79Ioni Bowcher
1018Alejandro O KolmetzIndia2024-03-26Benton, John B Jr PROPOSAL0Anna Fali
1019Jones H OstroskyCanada2024-04-04Buckley Miller Wright NEGOTIATION72Amy Elsner
1020Deepesh U FerenczIndia2024-04-15Feltz Printing Service NEGOTIATION11Ivan Magalhaes
1021Nicolas Z AlbaresUnited Kingdom2024-04-05Chemel, James L Cpa PROPOSAL0Elwin Sharvill
1022Antonio L InouyeRussia2024-04-15Printing Dimensions NEGOTIATION56Onyama Limba
1023Ricardo F IturbideArgentina2024-04-22Feiner Bros UNQUALIFIED36Anna Fali
1024Leon R MacleadIndia2024-04-15Morlong Associates UNQUALIFIED15Ivan Magalhaes
1025Jefferson D WaycottBrazil2024-04-06Benton, John B Jr PROPOSAL6Bernardo Dominic
1026Chavez K GlickUnited Kingdom2024-03-27Buckley Miller Wright QUALIFIED15Onyama Limba
1027Antonio G NickaSpain2024-04-19Printing Dimensions PROPOSAL45Amy Elsner
1028Sinclair H DoeAustralia2024-04-15Printing Dimensions RENEWAL85Onyama Limba
1029Faith Q OldroydJapan2024-04-22Morlong Associates NEGOTIATION48Bernardo Dominic
1030Jefferson J PerinBrazil2024-04-18Feiner Bros NEW59Onyama Limba
1031Deepesh V ChuiUnited Kingdom2024-04-01Rousseaux, Michael Esq RENEWAL8Xuxue Feng
1032David L RimSpain2024-04-22Printing Dimensions NEW31Elwin Sharvill
1033Morrow G NestleGermany2024-04-11Truhlar And Truhlar Attys QUALIFIED92Stephen Shaw
1034Ashley H SergiFrance2024-04-18Feiner Bros PROPOSAL75Ioni Bowcher
1035Leon G WieserGermany2024-04-12Feltz Printing Service UNQUALIFIED72Anna Fali
1036James G CampainIndia2024-04-06Rousseaux, Michael Esq RENEWAL72Bernardo Dominic
1037Deepesh H GauchoFrance2024-04-14Dorl, James J Esq PROPOSAL90Amy Elsner
1038Antonio I GillianSpain2024-04-18Morlong Associates NEW94Xuxue Feng
1039Faith J MorascaAustralia2024-03-26Feiner Bros NEGOTIATION96Anna Fali
1040Alejandro X FerenczCanada2024-04-02Benton, John B Jr UNQUALIFIED49Ivan Magalhaes
1041Jefferson I DoeItaly2024-04-16Dorl, James J Esq QUALIFIED11Amy Elsner
1042Isabel G VenereRussia2024-03-24Buckley Miller Wright RENEWAL59Xuxue Feng
1043Johnson G SergiCanada2024-04-08Benton, John B Jr NEW30Elwin Sharvill
1044Morrow P ButtIndia2024-03-31Feiner Bros NEGOTIATION63Ivan Magalhaes
1045Munro L WaycottIndia2024-04-03Dorl, James J Esq UNQUALIFIED25Stephen Shaw
1046James Q GarufiCanada2024-04-12Buckley Miller Wright NEW82Ioni Bowcher
1047Jefferson T GauchoSpain2024-04-11Rousseaux, Michael Esq NEGOTIATION49Amy Elsner
1048Francesco R WaycottRussia2024-04-04Chapman, Ross E Esq PROPOSAL28Anna Fali
1049Murillo P FlosiIndia2024-04-03Feltz Printing Service RENEWAL43Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Mayumi Z WaycottRussiaAmy Elsner PROPOSAL
Izzy S AmigonItalyXuxue Feng NEW
Murillo N RulapaughSpainStephen Shaw NEW
Smith L CaudyGermanyAnna Fali NEGOTIATION
Morrow W SergiSpainElwin Sharvill UNQUALIFIED
Jones P CampainFranceAmy Elsner UNQUALIFIED
Rodrigues U PerinCanadaAmy Elsner UNQUALIFIED
Stacey J CaudyJapanElwin Sharvill NEW
Johnson M DilliardFranceAmy Elsner RENEWAL
Chavez C IturbideFranceAnna Fali UNQUALIFIED
Smith F WhobreySpainElwin Sharvill UNQUALIFIED
Jeanfrancois X SaylorsJapanAmy Elsner UNQUALIFIED
Mayumi T SergiBrazilAsiya Javayant QUALIFIED
Rodrigues N BowleyCanadaXuxue Feng PROPOSAL
Tony G SergiJapanBernardo Dominic PROPOSAL
Aditya N VocelkaRussiaOnyama Limba NEGOTIATION
Murillo Z WieserArgentinaAsiya Javayant NEW
Aruna T GlickRussiaBernardo Dominic PROPOSAL
Ivar X InouyeBrazilIvan Magalhaes PROPOSAL
Cody S SlusarskiJapanIvan Magalhaes RENEWAL
Mujtaba C OstroskyRussiaStephen Shaw NEGOTIATION
Murillo R CampainAustraliaOnyama Limba QUALIFIED
Adams Y TollnerGermanyIvan Magalhaes PROPOSAL
Ashley C BologniaGermanyXuxue Feng NEGOTIATION
Mayumi A RutaIndiaAsiya Javayant UNQUALIFIED
Stacey F SchemmerCanadaOnyama Limba RENEWAL
Munro E AlbaresArgentinaAnna Fali RENEWAL
Morrow R RimJapanAmy Elsner UNQUALIFIED
Arvin O GillianJapanStephen Shaw NEW
Juan P DilliardAustraliaElwin Sharvill NEGOTIATION
Chavez W CaldareraAustraliaIoni Bowcher NEW
Misaki H WaycottArgentinaXuxue Feng PROPOSAL
Salvatore O FollerGermanyXuxue Feng UNQUALIFIED
Leja T WhobreyFranceIoni Bowcher RENEWAL
Faith G BriddickBrazilBernardo Dominic QUALIFIED
Jones U GarufiIndiaOnyama Limba RENEWAL
Mujtaba G SergiRussiaOnyama Limba NEW
Kadeem E OstroskyBrazilAmy Elsner NEGOTIATION
Smith A MarrierItalyAnna Fali NEW
Kaitlin V TollnerGermanyAsiya Javayant NEGOTIATION
Aditya H CampainFranceIoni Bowcher PROPOSAL
David E KolmetzRussiaOnyama Limba UNQUALIFIED
Stacey N CampainIndiaAmy Elsner PROPOSAL
Misaki N OldroydSpainIvan Magalhaes NEGOTIATION
Tony Y RoysterFranceIoni Bowcher QUALIFIED
Murillo J DoeItalyAmy Elsner QUALIFIED
Emily D FerenczUnited KingdomBernardo Dominic NEW
Salvatore G FlosiBrazilXuxue Feng NEGOTIATION
Munro I GillianItalyAnna Fali RENEWAL
Aruna O MorascaUnited KingdomIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Tony T Campain
Silvio F Rim
Francesco E Oldroyd
Tony M Wieser
Mujtaba C Bolognia
Rodrigues W Albares
Munro S Ferencz
Clifford O Stenseth
Maisha R Chui
Octavia P Stenseth
Nicolas K Doe
Munro E Ostrosky
Sinclair Y Kusko
Jones B Campain
Mujtaba I Kusko
Francesco M Shinko
Julie G Waycott
Maria L Darakjy
Jennifer B Bolognia
Morrow V Darakjy
Arvin R Gillian
David O Poquette
Chavez I Nicka
Aika K Bowley
Antonio S Glick
Maria F Wieser
Smith W Butt
Tony R Vocelka
Julie B Ferencz
Isabel M Schemmer
Jefferson F Morasca
Adams N Waycott
Kaitlin O Whobrey
Tony O Royster
Ivar D Foller
Munro E Schemmer
Izzy R Ferencz
Leon N Paprocki
Octavia Q Kusko
Salvatore E Doe
Clifford N Oldroyd
Cody Z Ferencz
Johnson P Schemmer
Murillo I Maclead
Jefferson C Malet
Leon O Ostrosky
Silvio A Campain
Cody H Sergi
Tony H Gaucho
Jones X Stenseth
IdCountryDate
1000India2024-03-26
1001Germany2024-04-15
1002Spain2024-03-30
1003Australia2024-04-07
1004Germany2024-04-07
1005Russia2024-04-01
1006Australia2024-04-12
1007Argentina2024-03-30
1008Canada2024-04-05
1009France2024-04-16
1010Japan2024-04-14
1011Spain2024-04-18
1012Italy2024-04-03
1013India2024-04-21
1014Spain2024-04-13
1015India2024-04-16
1016Brazil2024-03-28
1017France2024-04-04
1018Germany2024-04-16
1019Brazil2024-04-08
1020France2024-03-27
1021United Kingdom2024-04-18
1022France2024-04-13
1023India2024-03-25
1024Brazil2024-04-12
1025Argentina2024-04-18
1026Argentina2024-04-14
1027Spain2024-03-29
1028Japan2024-04-01
1029Brazil2024-04-11
1030United Kingdom2024-04-05
1031Italy2024-04-07
1032India2024-04-20
1033Australia2024-04-15
1034United Kingdom2024-04-01
1035Spain2024-04-10
1036Argentina2024-04-02
1037Japan2024-03-28
1038Canada2024-04-04
1039Japan2024-04-07
1040Brazil2024-04-16
1041Australia2024-03-24
1042United Kingdom2024-03-27
1043Italy2024-04-06
1044France2024-04-09
1045Argentina2024-04-01
1046Australia2024-04-10
1047Germany2024-04-09
1048India2024-04-04
1049Germany2024-04-02

On-Demand Data

NameIdCountryDate
Johnson Z Saylors1000India2024-04-12
Stacey O Marrier1001Russia2024-04-08
Rodrigues I Darakjy1002France2024-04-08
Ricardo U Slusarski1003Russia2024-04-22
Jefferson S Poquette1004Australia2024-04-10
Adams M Vocelka1005India2024-04-19
Antonio A Nicka1006Brazil2024-04-07
Johnson C Caudy1007France2024-04-07
Emily F Inouye1008Spain2024-04-09
Faith U Chui1009Germany2024-04-20
Nicolas T Rim1010Russia2024-04-11
Leja G Caudy1011Russia2024-04-21
Sinclair Q Saylors1012Australia2024-03-24
Ivar V Butt1013Brazil2024-04-21
Aditya V Slusarski1014Italy2024-04-13
Maria U Dilliard1015Spain2024-04-07
Silvio J Kusko1016Spain2024-04-01
Leja W Foller1017Spain2024-04-12
Ivar X Waycott1018Canada2024-04-10
Chavez Y Saylors1019France2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith B DoeCanadaIoni Bowcher QUALIFIED
Octavia Q PaprockiIndiaAmy Elsner PROPOSAL
Clifford K SchemmerJapanIoni Bowcher NEGOTIATION
Leon P OstroskyBrazilAsiya Javayant RENEWAL
Ivar U StensethFranceAnna Fali RENEWAL
Johnson P GarufiIndiaIvan Magalhaes NEW
Jefferson R RimItalyAnna Fali RENEWAL
Chavez G NestleRussiaStephen Shaw RENEWAL
Rodrigues Z ShinkoBrazilElwin Sharvill PROPOSAL
David F StockhamIndiaXuxue Feng RENEWAL
Emily R RulapaughJapanBernardo Dominic RENEWAL
Salvatore F IturbideCanadaAnna Fali NEGOTIATION
Julie T MaletJapanStephen Shaw QUALIFIED
Ricardo H VenereGermanyBernardo Dominic NEW
Darci C TollnerArgentinaAnna Fali UNQUALIFIED
Sinclair N RulapaughJapanOnyama Limba UNQUALIFIED
Juan Y ChuiItalyStephen Shaw QUALIFIED
Adams S RimSpainBernardo Dominic NEGOTIATION
Cody N DarakjyRussiaStephen Shaw QUALIFIED
Aditya T GarufiAustraliaAnna Fali NEGOTIATION
Jones H FlosiAustraliaBernardo Dominic NEW
Darci C GillianGermanyXuxue Feng PROPOSAL
Ivar T PoquetteBrazilElwin Sharvill PROPOSAL
Izzy S SlusarskiFranceElwin Sharvill PROPOSAL
Ashley V OldroydGermanyIoni Bowcher NEGOTIATION
Antonio O MorascaBrazilAmy Elsner RENEWAL
Maisha G MaletSpainIoni Bowcher NEGOTIATION
Greenwood A SlusarskiJapanAsiya Javayant NEW
Aditya R OstroskyJapanIoni Bowcher NEGOTIATION
Kaitlin C GauchoJapanBernardo Dominic UNQUALIFIED
Mayumi O WieserIndiaAsiya Javayant RENEWAL
Silvio W TollnerCanadaAmy Elsner NEW
Kadeem F InouyeSpainAnna Fali NEW
Darci S GillianBrazilIoni Bowcher PROPOSAL
Darci O KuskoRussiaOnyama Limba NEW
Arvin N WieserRussiaStephen Shaw UNQUALIFIED
Aika Y SaylorsRussiaIoni Bowcher NEW
Tony J CaudyIndiaAmy Elsner QUALIFIED
Arvin I MorascaBrazilStephen Shaw UNQUALIFIED
Arvin B WieserBrazilElwin Sharvill 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>