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
Francesco H SlusarskiUnited KingdomOnyama Limba NEW
Deepesh F RutaArgentinaBernardo Dominic QUALIFIED
Ricardo N MaletItalyAmy Elsner RENEWAL
Alejandro N PoquetteGermanyXuxue Feng UNQUALIFIED
Aika O PerinUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin S OldroydJapanBernardo Dominic NEGOTIATION
Claire L SergiFranceXuxue Feng NEW
Maria B OldroydSpainOnyama Limba QUALIFIED
Leon L NestleFranceXuxue Feng RENEWAL
Silvio H MorascaJapanAnna Fali QUALIFIED
Faith D FollerBrazilElwin Sharvill NEW
Smith H CampainUnited KingdomAsiya Javayant QUALIFIED
Leon Z SaylorsIndiaOnyama Limba UNQUALIFIED
Wickens T BowleyBrazilOnyama Limba PROPOSAL
Cody P PoquetteUnited KingdomStephen Shaw PROPOSAL
Jeanfrancois R IturbideIndiaXuxue Feng NEGOTIATION
Tony L KolmetzUnited KingdomElwin Sharvill QUALIFIED
Mujtaba T WaycottRussiaBernardo Dominic RENEWAL
Nicolas G RutaGermanyBernardo Dominic RENEWAL
James A SaylorsAustraliaElwin Sharvill NEGOTIATION
Francesco I FigeroaArgentinaXuxue Feng QUALIFIED
David X GarufiIndiaAmy Elsner PROPOSAL
Emily P GillianFranceOnyama Limba RENEWAL
Aditya A CaldareraAustraliaOnyama Limba QUALIFIED
Deepesh L TollnerJapanAmy Elsner RENEWAL
Nicolas S GlickUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois B InouyeUnited KingdomAnna Fali PROPOSAL
Jeanfrancois Y OldroydFranceBernardo Dominic NEW
Francesco W SergiAustraliaXuxue Feng PROPOSAL
Greenwood T DoeCanadaAmy Elsner PROPOSAL
Johnson E NestleItalyAnna Fali UNQUALIFIED
Adams W DarakjyUnited KingdomAnna Fali RENEWAL
Julie Z SergiCanadaXuxue Feng NEGOTIATION
Munro O AmigonArgentinaAsiya Javayant NEW
Juan Y NestleCanadaAmy Elsner NEW
Munro O PoquetteIndiaAmy Elsner UNQUALIFIED
Munro F RutaJapanIoni Bowcher NEW
Nicolas A IturbideCanadaElwin Sharvill QUALIFIED
Ivar C MaletItalyIoni Bowcher QUALIFIED
Leja K KolmetzGermanyXuxue Feng RENEWAL
Francesco K RulapaughRussiaIvan Magalhaes NEW
Ricardo U GarufiItalyIoni Bowcher NEW
Leja L RimSpainXuxue Feng PROPOSAL
Stacey P GauchoBrazilStephen Shaw RENEWAL
Aruna P GillianBrazilOnyama Limba QUALIFIED
Silvio U RimUnited KingdomOnyama Limba UNQUALIFIED
David F CaldareraRussiaXuxue Feng UNQUALIFIED
Clifford A SchemmerSpainElwin Sharvill NEW
Francesco P RulapaughFranceAsiya Javayant NEGOTIATION
Francesco O RimIndiaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Francesco S RulapaughArgentinaIoni Bowcher NEW
Claire B IturbideJapanElwin Sharvill UNQUALIFIED
David P DarakjyArgentinaBernardo Dominic NEW
Kadeem L MaletUnited KingdomAnna Fali NEGOTIATION
Tony S TollnerArgentinaIoni Bowcher UNQUALIFIED
Smith Y FollerRussiaStephen Shaw NEW
Aruna G RulapaughGermanyBernardo Dominic PROPOSAL
Leja O GillianCanadaAmy Elsner UNQUALIFIED
Maisha J SaylorsUnited KingdomBernardo Dominic UNQUALIFIED
Silvio K SaylorsRussiaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson V FlosiArgentina2024-04-04Morlong Associates PROPOSAL58Ioni Bowcher
1001Faith U OldroydBrazil2024-04-24Benton, John B Jr QUALIFIED8Xuxue Feng
1002Deepesh P FigeroaSpain2024-04-03Chemel, James L Cpa QUALIFIED92Anna Fali
1003Mujtaba T MaletUnited Kingdom2024-04-09Printing Dimensions QUALIFIED50Bernardo Dominic
1004Nicolas W CampainRussia2024-04-29Chemel, James L Cpa UNQUALIFIED0Bernardo Dominic
1005Greenwood F VocelkaBrazil2024-04-05Morlong Associates UNQUALIFIED46Stephen Shaw
1006Kaitlin N OstroskyRussia2024-04-28Morlong Associates RENEWAL5Asiya Javayant
1007Salvatore L TollnerArgentina2024-04-08Rousseaux, Michael Esq QUALIFIED73Ivan Magalhaes
1008Julie X RulapaughIndia2024-04-11King, Christopher A Esq NEW95Asiya Javayant
1009Misaki E GauchoItaly2024-04-12Feltz Printing Service QUALIFIED91Asiya Javayant
1010Darci M ShinkoAustralia2024-04-09Buckley Miller Wright QUALIFIED83Ivan Magalhaes
1011Morrow Q ButtRussia2024-04-19Chapman, Ross E Esq QUALIFIED1Xuxue Feng
1012Emily J CaldareraArgentina2024-04-01Commercial Press QUALIFIED40Amy Elsner
1013Misaki O ChuiIndia2024-03-31Morlong Associates NEW18Xuxue Feng
1014Alejandro N RutaItaly2024-04-27King, Christopher A Esq PROPOSAL57Amy Elsner
1015Francesco V SchemmerBrazil2024-04-22Commercial Press NEW32Onyama Limba
1016Deepesh G NestleItaly2024-03-31Chapman, Ross E Esq UNQUALIFIED36Xuxue Feng
1017Ricardo J RulapaughArgentina2024-04-25Feltz Printing Service QUALIFIED94Ivan Magalhaes
1018Tony Y StockhamItaly2024-04-24Commercial Press QUALIFIED4Bernardo Dominic
1019Clifford X WaycottUnited Kingdom2024-04-04Chanay, Jeffrey A Esq UNQUALIFIED9Bernardo Dominic
1020Leon B GillianRussia2024-04-21Dorl, James J Esq NEW51Anna Fali
1021Chavez B GarufiUnited Kingdom2024-04-11Dorl, James J Esq UNQUALIFIED27Bernardo Dominic
1022Nicolas Y ButtIndia2024-04-24Dorl, James J Esq RENEWAL33Stephen Shaw
1023Leja G RoysterSpain2024-04-17Chanay, Jeffrey A Esq NEW75Stephen Shaw
1024Salvatore P ButtAustralia2024-04-21Buckley Miller Wright NEW32Stephen Shaw
1025Antonio U CaudyJapan2024-04-07Rangoni Of Florence NEW22Anna Fali
1026Jefferson I VocelkaIndia2024-04-12Buckley Miller Wright NEW72Bernardo Dominic
1027Leja E InouyeIndia2024-04-25Printing Dimensions NEGOTIATION92Xuxue Feng
1028Claire H GarufiCanada2024-04-19Truhlar And Truhlar Attys NEW65Amy Elsner
1029Johnson I RoysterArgentina2024-04-27Rousseaux, Michael Esq UNQUALIFIED26Elwin Sharvill
1030Tony R GillianBrazil2024-04-03Dorl, James J Esq RENEWAL1Ioni Bowcher
1031Kaitlin K BriddickUnited Kingdom2024-04-06Commercial Press UNQUALIFIED50Stephen Shaw
1032Ashley M VenereArgentina2024-04-04Feiner Bros RENEWAL63Onyama Limba
1033Silvio B MaletFrance2024-04-04Commercial Press UNQUALIFIED75Asiya Javayant
1034Leja X SaylorsRussia2024-04-28Buckley Miller Wright NEGOTIATION85Amy Elsner
1035Jefferson H GarufiArgentina2024-04-26Buckley Miller Wright RENEWAL55Bernardo Dominic
1036Sinclair H StockhamFrance2024-04-14Truhlar And Truhlar Attys NEGOTIATION59Amy Elsner
1037James U KuskoArgentina2024-03-31Chanay, Jeffrey A Esq QUALIFIED72Asiya Javayant
1038Isabel Z DilliardAustralia2024-04-05Feiner Bros NEW4Bernardo Dominic
1039Chavez R OstroskyIndia2024-04-25Rousseaux, Michael Esq NEGOTIATION62Onyama Limba
1040Claire O PerinAustralia2024-04-09Rangoni Of Florence NEGOTIATION20Ivan Magalhaes
1041Faith P ShinkoArgentina2024-04-14Chapman, Ross E Esq QUALIFIED74Xuxue Feng
1042Munro P SaylorsIndia2024-04-15Chanay, Jeffrey A Esq NEW52Ioni Bowcher
1043Maria F CaudyItaly2024-04-13Feiner Bros QUALIFIED89Ioni Bowcher
1044Izzy H BologniaJapan2024-04-06King, Christopher A Esq QUALIFIED44Amy Elsner
1045Darci C AlbaresAustralia2024-04-28Printing Dimensions PROPOSAL47Amy Elsner
1046Mayumi X StockhamBrazil2024-04-26Printing Dimensions PROPOSAL53Bernardo Dominic
1047Smith P BowleyJapan2024-04-19Rousseaux, Michael Esq NEGOTIATION15Asiya Javayant
1048Mayumi B RoysterCanada2024-03-31Rangoni Of Florence NEW80Onyama Limba
1049Munro L RutaCanada2024-04-11Feiner Bros NEW32Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maisha B BowleyRussiaElwin Sharvill NEGOTIATION
Wickens V GarufiJapanAmy Elsner NEW
Greenwood W PerinBrazilAsiya Javayant NEW
Kaitlin R MaletRussiaIoni Bowcher QUALIFIED
Sinclair W SlusarskiCanadaStephen Shaw RENEWAL
Ashley F PaprockiGermanyAmy Elsner PROPOSAL
Rodrigues I WhobreyJapanXuxue Feng RENEWAL
Aditya J StockhamGermanyBernardo Dominic NEW
Darci T GillianGermanyXuxue Feng UNQUALIFIED
Antonio K VenereArgentinaAmy Elsner RENEWAL
Ivar N AlbaresBrazilXuxue Feng PROPOSAL
Mayumi Z NickaSpainElwin Sharvill NEGOTIATION
Emily C RulapaughArgentinaBernardo Dominic QUALIFIED
Munro Z WhobreyArgentinaXuxue Feng UNQUALIFIED
Leon J WaycottBrazilXuxue Feng NEGOTIATION
Mujtaba H GlickCanadaElwin Sharvill UNQUALIFIED
Octavia Q WieserRussiaOnyama Limba UNQUALIFIED
Adams L AlbaresAustraliaOnyama Limba QUALIFIED
Maria Q CampainArgentinaElwin Sharvill UNQUALIFIED
Faith F RutaFranceAsiya Javayant UNQUALIFIED
Johnson C WaycottBrazilElwin Sharvill QUALIFIED
Leon G StensethIndiaIvan Magalhaes PROPOSAL
Greenwood H FerenczItalyAsiya Javayant RENEWAL
Kadeem R SergiBrazilXuxue Feng NEGOTIATION
Munro J PaprockiSpainAsiya Javayant UNQUALIFIED
Ashley G MacleadRussiaAmy Elsner QUALIFIED
Jefferson Q ChuiCanadaAnna Fali UNQUALIFIED
David S AmigonFranceAmy Elsner UNQUALIFIED
Tony Z MarrierFranceStephen Shaw NEW
Misaki Z StensethAustraliaAnna Fali NEW
Darci J WieserCanadaXuxue Feng RENEWAL
Mujtaba U ButtIndiaAmy Elsner RENEWAL
Claire I ButtBrazilAnna Fali UNQUALIFIED
Jennifer L AmigonBrazilIoni Bowcher NEGOTIATION
James U KolmetzRussiaElwin Sharvill PROPOSAL
Nicolas E DilliardUnited KingdomIvan Magalhaes RENEWAL
Clifford Q KolmetzCanadaAmy Elsner QUALIFIED
Nicolas Y NestleJapanIvan Magalhaes QUALIFIED
Alejandro G GauchoRussiaBernardo Dominic NEGOTIATION
Jeanfrancois M BowleySpainIoni Bowcher UNQUALIFIED
Munro C StensethCanadaBernardo Dominic PROPOSAL
Jefferson I MaletAustraliaXuxue Feng QUALIFIED
Ricardo W BriddickAustraliaXuxue Feng NEGOTIATION
Arvin K InouyeAustraliaIvan Magalhaes QUALIFIED
Aika L VocelkaFranceBernardo Dominic QUALIFIED
Maisha G CaudyItalyIoni Bowcher NEW
Jeanfrancois O NestleAustraliaXuxue Feng RENEWAL
Aika O PerinAustraliaElwin Sharvill UNQUALIFIED
Claire R RutaAustraliaXuxue Feng NEGOTIATION
Octavia L DarakjyItalyAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Murillo S Oldroyd
Misaki X Schemmer
Leon Q Stockham
Ivar Q Saylors
Claire F Gaucho
Morrow L Venere
Octavia Q Gillian
Jones B Doe
Aika Z Flosi
Smith L Ostrosky
Claire B Marrier
Munro E Kusko
Sinclair U Nestle
James C Royster
Sinclair P Malet
Isabel O Gillian
Jeanfrancois H Perin
Smith Y Flosi
Antonio P Flosi
Jeanfrancois M Slusarski
Mayumi Y Ruta
Jefferson M Whobrey
Tony Q Gaucho
Adams P Ostrosky
Wickens D Gaucho
Nicolas M Wieser
Jennifer V Rim
Leon K Campain
Julie W Flosi
Emily G Venere
Emily K Caudy
Leon U Doe
Greenwood G Marrier
Octavia L Sergi
Mayumi B Nicka
Misaki J Wieser
Francesco L Butt
James K Ruta
Rodrigues O Bolognia
Chavez L Chui
Arvin Z Tollner
Faith H Gaucho
Francesco Y Foller
Tony I Malet
Izzy F Venere
Costa D Perin
Johnson S Stockham
Misaki H Morasca
Julie W Stenseth
Morrow Z Nestle
IdCountryDate
1000Russia2024-04-09
1001Russia2024-04-03
1002Argentina2024-04-23
1003Germany2024-04-14
1004Brazil2024-04-11
1005Brazil2024-04-07
1006Brazil2024-04-01
1007India2024-04-05
1008Australia2024-04-22
1009Japan2024-04-28
1010Canada2024-04-12
1011France2024-04-05
1012Australia2024-04-01
1013Australia2024-04-21
1014Japan2024-04-27
1015Russia2024-04-19
1016Canada2024-04-29
1017Australia2024-04-13
1018Italy2024-04-11
1019France2024-04-01
1020Argentina2024-04-15
1021Canada2024-04-06
1022Canada2024-04-29
1023France2024-03-31
1024Argentina2024-04-06
1025Canada2024-04-24
1026Italy2024-04-27
1027United Kingdom2024-04-24
1028Russia2024-04-03
1029United Kingdom2024-04-26
1030Russia2024-04-28
1031Canada2024-04-08
1032Russia2024-04-28
1033Japan2024-04-29
1034India2024-04-27
1035Russia2024-04-13
1036Russia2024-04-29
1037United Kingdom2024-04-04
1038Japan2024-03-31
1039Germany2024-04-01
1040Italy2024-04-21
1041Germany2024-04-09
1042Russia2024-04-24
1043Germany2024-03-31
1044Spain2024-04-02
1045Russia2024-04-18
1046Canada2024-04-11
1047France2024-04-22
1048Japan2024-04-20
1049Canada2024-04-27

On-Demand Data

NameIdCountryDate
Salvatore U Kusko1000Brazil2024-04-23
Aruna C Saylors1001India2024-03-31
Leon R Bowley1002Argentina2024-04-18
Francesco S Doe1003Canada2024-04-21
Jones C Darakjy1004Canada2024-04-04
Murillo K Darakjy1005United Kingdom2024-04-18
Wickens F Gaucho1006India2024-04-24
Kaitlin O Whobrey1007Germany2024-04-01
Tony J Campain1008Russia2024-04-17
Clifford Y Butt1009France2024-04-19
Ivar X Venere1010France2024-04-10
Misaki O Kusko1011Germany2024-04-18
Kadeem C Stockham1012Spain2024-04-19
Munro R Briddick1013Argentina2024-04-04
Octavia U Bowley1014Argentina2024-04-24
Arvin W Flosi1015Australia2024-04-07
Wickens J Stenseth1016Canada2024-04-28
Octavia N Ferencz1017Argentina2024-04-24
Juan C Albares1018France2024-03-31
Kadeem S Malet1019France2024-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Munro W MaletBrazilIoni Bowcher PROPOSAL
Jefferson D ButtGermanyBernardo Dominic RENEWAL
Alejandro D MaletJapanIoni Bowcher QUALIFIED
Kaitlin Y RoysterJapanStephen Shaw UNQUALIFIED
Maisha L GlickAustraliaStephen Shaw UNQUALIFIED
Jeanfrancois I GlickIndiaAmy Elsner NEW
Aika K FigeroaAustraliaStephen Shaw RENEWAL
Julie U PaprockiBrazilOnyama Limba NEW
Jeanfrancois E RulapaughJapanBernardo Dominic NEGOTIATION
Morrow Q KolmetzGermanyElwin Sharvill UNQUALIFIED
Mayumi L SaylorsJapanElwin Sharvill NEGOTIATION
Ivar G TollnerGermanyElwin Sharvill UNQUALIFIED
Mujtaba K DarakjyCanadaIvan Magalhaes QUALIFIED
Claire C GlickBrazilStephen Shaw RENEWAL
Stacey W OstroskyItalyElwin Sharvill QUALIFIED
Julie Y MaletAustraliaAnna Fali PROPOSAL
Maria R GlickFranceIvan Magalhaes RENEWAL
Kadeem I MaletUnited KingdomIvan Magalhaes PROPOSAL
Jones C SergiAustraliaIvan Magalhaes RENEWAL
Aruna O ButtUnited KingdomOnyama Limba QUALIFIED
Sinclair N RulapaughRussiaStephen Shaw RENEWAL
Antonio B FerenczRussiaStephen Shaw NEGOTIATION
Darci O StensethBrazilIoni Bowcher NEGOTIATION
Aruna A CaldareraRussiaStephen Shaw RENEWAL
Jefferson N InouyeSpainIoni Bowcher RENEWAL
Wickens N FollerIndiaStephen Shaw PROPOSAL
Nicolas T ButtAustraliaStephen Shaw RENEWAL
Jeanfrancois K KuskoArgentinaXuxue Feng NEW
David L MaletRussiaIvan Magalhaes NEW
Costa D StensethUnited KingdomBernardo Dominic UNQUALIFIED
Chavez E OldroydJapanBernardo Dominic RENEWAL
Maria N CaldareraAustraliaAsiya Javayant NEGOTIATION
Maria M TollnerArgentinaXuxue Feng NEGOTIATION
Silvio S AlbaresCanadaXuxue Feng NEW
Leon Q MaletGermanyXuxue Feng RENEWAL
Jones F GlickGermanyBernardo Dominic NEW
Aruna Y PoquetteArgentinaElwin Sharvill PROPOSAL
Stacey H RutaBrazilXuxue Feng QUALIFIED
Octavia O DilliardJapanBernardo Dominic PROPOSAL
Francesco N AlbaresBrazilXuxue Feng 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>