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
Misaki W IturbideIndiaStephen Shaw RENEWAL
David U MarrierBrazilXuxue Feng NEGOTIATION
Maisha W ShinkoArgentinaOnyama Limba RENEWAL
Misaki F GauchoJapanElwin Sharvill PROPOSAL
Silvio E BowleyAustraliaOnyama Limba NEGOTIATION
Claire L StensethUnited KingdomIvan Magalhaes UNQUALIFIED
Cody G OldroydIndiaAsiya Javayant UNQUALIFIED
Octavia S MacleadFranceAmy Elsner UNQUALIFIED
Arvin E ButtJapanElwin Sharvill UNQUALIFIED
Leon N StensethItalyAsiya Javayant NEW
Aditya Q NestleArgentinaIvan Magalhaes QUALIFIED
David M MorascaCanadaAnna Fali RENEWAL
Julie L DoeFranceStephen Shaw RENEWAL
Maisha E GauchoCanadaIvan Magalhaes QUALIFIED
Aika K GillianCanadaAsiya Javayant QUALIFIED
Mayumi E OstroskyCanadaElwin Sharvill NEW
Ashley Z FollerCanadaElwin Sharvill RENEWAL
Ivar V GillianUnited KingdomAnna Fali PROPOSAL
Maisha X RimIndiaAnna Fali RENEWAL
Jennifer X TollnerIndiaStephen Shaw UNQUALIFIED
Leon S StockhamCanadaAnna Fali QUALIFIED
Octavia A ButtRussiaBernardo Dominic PROPOSAL
Jefferson Q NestleJapanAsiya Javayant NEGOTIATION
Adams S PaprockiFranceIoni Bowcher NEW
Costa W NickaSpainOnyama Limba RENEWAL
Misaki U ShinkoBrazilOnyama Limba QUALIFIED
Johnson J OstroskyFranceStephen Shaw QUALIFIED
Silvio D StockhamBrazilAsiya Javayant RENEWAL
Smith D OldroydBrazilIoni Bowcher UNQUALIFIED
Aruna Y WieserRussiaBernardo Dominic NEW
Nicolas V AlbaresAustraliaElwin Sharvill PROPOSAL
Jones B ButtJapanAsiya Javayant UNQUALIFIED
Clifford E RulapaughItalyStephen Shaw UNQUALIFIED
Arvin M KuskoJapanAsiya Javayant NEW
Alejandro W RimUnited KingdomOnyama Limba NEW
Izzy Y RulapaughBrazilBernardo Dominic NEGOTIATION
Emily Y GlickJapanBernardo Dominic RENEWAL
Greenwood B RimBrazilElwin Sharvill NEGOTIATION
Arvin I CaldareraCanadaStephen Shaw QUALIFIED
Ashley E KolmetzSpainIoni Bowcher PROPOSAL
Nicolas R SlusarskiAustraliaXuxue Feng PROPOSAL
Aditya O RoysterBrazilStephen Shaw PROPOSAL
Misaki K InouyeAustraliaStephen Shaw PROPOSAL
Murillo K AlbaresItalyBernardo Dominic RENEWAL
Isabel S ButtItalyAnna Fali NEW
Isabel H DilliardRussiaAnna Fali RENEWAL
Maria I CaudyCanadaBernardo Dominic QUALIFIED
Emily M PaprockiRussiaStephen Shaw PROPOSAL
Tony I MacleadItalyStephen Shaw RENEWAL
Morrow L OstroskyUnited KingdomStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Ashley H SergiBrazilAnna Fali PROPOSAL
Aditya U WieserJapanOnyama Limba NEGOTIATION
Izzy Z PaprockiUnited KingdomAnna Fali RENEWAL
Ivar P CaldareraFranceAsiya Javayant QUALIFIED
Ivar Y BowleyAustraliaElwin Sharvill QUALIFIED
Jeanfrancois O StensethItalyStephen Shaw PROPOSAL
Costa Y VenereFranceOnyama Limba NEW
Costa T DoeBrazilIvan Magalhaes NEGOTIATION
Stacey N FigeroaIndiaElwin Sharvill PROPOSAL
Stacey F OldroydGermanyIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey K GarufiJapan2024-04-15King, Christopher A Esq RENEWAL3Ivan Magalhaes
1001Silvio W FerenczGermany2024-03-29Printing Dimensions PROPOSAL86Amy Elsner
1002Stacey K InouyeFrance2024-04-02King, Christopher A Esq RENEWAL46Ivan Magalhaes
1003Nicolas P WieserItaly2024-03-30Printing Dimensions UNQUALIFIED35Bernardo Dominic
1004Rodrigues J PoquetteJapan2024-04-02Feltz Printing Service PROPOSAL27Bernardo Dominic
1005Isabel R CampainFrance2024-04-14Chemel, James L Cpa NEGOTIATION33Anna Fali
1006Deepesh C StensethFrance2024-04-04Buckley Miller Wright NEGOTIATION77Asiya Javayant
1007Emily S StensethGermany2024-04-02Benton, John B Jr NEW59Elwin Sharvill
1008Arvin T GillianGermany2024-04-06Benton, John B Jr UNQUALIFIED53Stephen Shaw
1009Aruna O MaletFrance2024-04-14King, Christopher A Esq NEGOTIATION34Ivan Magalhaes
1010Antonio X SaylorsIndia2024-03-21Chemel, James L Cpa UNQUALIFIED94Amy Elsner
1011Kaitlin N RimIndia2024-03-26Chapman, Ross E Esq NEGOTIATION39Anna Fali
1012Ashley A CaldareraIndia2024-04-10Printing Dimensions RENEWAL92Elwin Sharvill
1013Adams M FerenczCanada2024-04-03Morlong Associates PROPOSAL29Ivan Magalhaes
1014Aika A KolmetzAustralia2024-04-15Feltz Printing Service UNQUALIFIED71Xuxue Feng
1015Ivar X WaycottItaly2024-04-09Buckley Miller Wright NEW19Amy Elsner
1016Juan N IturbideJapan2024-04-04Buckley Miller Wright RENEWAL49Stephen Shaw
1017Leja K FigeroaArgentina2024-04-10Chapman, Ross E Esq UNQUALIFIED64Stephen Shaw
1018David W MorascaArgentina2024-03-25Benton, John B Jr UNQUALIFIED62Xuxue Feng
1019Leja U SchemmerArgentina2024-03-23Dorl, James J Esq UNQUALIFIED46Ioni Bowcher
1020Claire U ShinkoIndia2024-04-03Commercial Press UNQUALIFIED5Amy Elsner
1021Mayumi D SergiFrance2024-04-04Morlong Associates QUALIFIED71Stephen Shaw
1022James F GillianIndia2024-03-24Commercial Press UNQUALIFIED99Elwin Sharvill
1023Antonio Z KuskoItaly2024-03-30Buckley Miller Wright NEGOTIATION89Stephen Shaw
1024Maisha O RulapaughItaly2024-04-03Chanay, Jeffrey A Esq NEW82Amy Elsner
1025Aruna C VocelkaIndia2024-03-21Printing Dimensions UNQUALIFIED12Ioni Bowcher
1026Munro S WieserSpain2024-04-18Feltz Printing Service PROPOSAL84Onyama Limba
1027Costa E PerinItaly2024-03-21Chapman, Ross E Esq PROPOSAL24Ioni Bowcher
1028Smith L MacleadGermany2024-03-24Printing Dimensions NEW76Amy Elsner
1029Murillo H IturbideCanada2024-04-15Buckley Miller Wright QUALIFIED25Amy Elsner
1030Jeanfrancois K AlbaresItaly2024-03-30Morlong Associates NEW94Ivan Magalhaes
1031Cody Q StockhamUnited Kingdom2024-04-04Buckley Miller Wright NEGOTIATION99Elwin Sharvill
1032Julie P WieserFrance2024-04-19Morlong Associates RENEWAL31Amy Elsner
1033Octavia M CampainUnited Kingdom2024-03-22Dorl, James J Esq PROPOSAL87Stephen Shaw
1034Johnson U ChuiJapan2024-04-08Feltz Printing Service NEW92Onyama Limba
1035Kaitlin K WhobreyUnited Kingdom2024-04-06Benton, John B Jr PROPOSAL0Asiya Javayant
1036Maria J BriddickCanada2024-04-05Chapman, Ross E Esq NEW54Onyama Limba
1037Maria Z RoysterUnited Kingdom2024-04-09Feiner Bros NEGOTIATION10Anna Fali
1038Ricardo V NickaFrance2024-04-16Buckley Miller Wright NEGOTIATION82Asiya Javayant
1039Claire K StensethUnited Kingdom2024-04-18Chapman, Ross E Esq PROPOSAL50Onyama Limba
1040Alejandro E AlbaresGermany2024-04-09King, Christopher A Esq RENEWAL61Onyama Limba
1041Leja X WhobreyGermany2024-03-27Benton, John B Jr UNQUALIFIED95Anna Fali
1042Faith M BowleyJapan2024-04-13Rousseaux, Michael Esq RENEWAL18Bernardo Dominic
1043Greenwood I GlickUnited Kingdom2024-04-01Truhlar And Truhlar Attys UNQUALIFIED69Elwin Sharvill
1044Alejandro X CaldareraBrazil2024-04-05Rousseaux, Michael Esq UNQUALIFIED64Anna Fali
1045David W StockhamIndia2024-04-05Chapman, Ross E Esq RENEWAL97Ioni Bowcher
1046Jones S ShinkoJapan2024-04-17Chemel, James L Cpa UNQUALIFIED91Xuxue Feng
1047Chavez A CampainSpain2024-03-21Rangoni Of Florence NEW43Elwin Sharvill
1048Silvio E CampainCanada2024-04-14Commercial Press RENEWAL13Amy Elsner
1049Arvin G CaudyUnited Kingdom2024-04-16Rousseaux, Michael Esq QUALIFIED10Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Faith U SaylorsGermanyAmy Elsner UNQUALIFIED
Jeanfrancois F VenereItalyIvan Magalhaes NEGOTIATION
Maria W PerinUnited KingdomElwin Sharvill PROPOSAL
Darci Y RulapaughIndiaIoni Bowcher QUALIFIED
David F VocelkaBrazilElwin Sharvill PROPOSAL
Deepesh B PaprockiCanadaBernardo Dominic NEGOTIATION
Aditya F TollnerItalyBernardo Dominic RENEWAL
Jefferson E FlosiItalyIvan Magalhaes NEW
Silvio Q BriddickArgentinaBernardo Dominic UNQUALIFIED
Silvio Z ButtJapanElwin Sharvill NEGOTIATION
Aika G IturbideJapanAmy Elsner NEW
Octavia U VocelkaSpainXuxue Feng RENEWAL
Johnson L PaprockiBrazilIoni Bowcher NEGOTIATION
Aditya V GarufiIndiaAsiya Javayant UNQUALIFIED
Wickens H CaudyArgentinaElwin Sharvill NEW
Chavez Z StockhamIndiaXuxue Feng NEW
Murillo K RoysterIndiaIoni Bowcher RENEWAL
Deepesh P GauchoFranceAmy Elsner PROPOSAL
Jefferson X BologniaUnited KingdomBernardo Dominic UNQUALIFIED
Clifford Y SergiAustraliaXuxue Feng QUALIFIED
Deepesh O StensethJapanStephen Shaw QUALIFIED
Clifford G PoquetteUnited KingdomAsiya Javayant RENEWAL
Aruna H VocelkaFranceXuxue Feng PROPOSAL
Sinclair W OldroydBrazilAmy Elsner NEW
Octavia N PoquetteBrazilBernardo Dominic NEGOTIATION
Alejandro Y NestleArgentinaAsiya Javayant NEW
Deepesh J VocelkaBrazilXuxue Feng UNQUALIFIED
Murillo G MaletItalyElwin Sharvill NEW
Stacey P ChuiSpainXuxue Feng RENEWAL
Antonio E SchemmerItalyIvan Magalhaes NEW
Aika U AlbaresGermanyElwin Sharvill RENEWAL
Francesco T CaudyAustraliaElwin Sharvill PROPOSAL
Emily T ButtAustraliaAmy Elsner PROPOSAL
Stacey V ChuiArgentinaIvan Magalhaes QUALIFIED
Darci T PoquetteFranceAmy Elsner PROPOSAL
David J GauchoItalyXuxue Feng RENEWAL
Smith F NestleGermanyStephen Shaw RENEWAL
Claire L NestleIndiaStephen Shaw RENEWAL
Costa Z SchemmerJapanBernardo Dominic PROPOSAL
Johnson B MaletIndiaAsiya Javayant QUALIFIED
Sinclair Y OldroydSpainIvan Magalhaes NEW
Ricardo S ButtCanadaOnyama Limba PROPOSAL
Maria Z GillianArgentinaOnyama Limba RENEWAL
Leon H GarufiIndiaOnyama Limba NEW
Ivar A MaletArgentinaAsiya Javayant RENEWAL
Salvatore B FollerFranceStephen Shaw NEGOTIATION
Smith G SlusarskiSpainIoni Bowcher NEW
Chavez N WaycottRussiaIvan Magalhaes NEW
Aika G RulapaughBrazilXuxue Feng NEGOTIATION
Tony B RimCanadaAnna Fali PROPOSAL
Frozen Columns
Name
Jeanfrancois E Gaucho
Juan U Whobrey
Francesco J Bolognia
Octavia I Saylors
Emily V Iturbide
Deepesh T Malet
Mujtaba A Whobrey
Leja R Shinko
Emily S Ostrosky
Arvin C Oldroyd
Munro Z Paprocki
Leon H Amigon
Morrow I Chui
Maria Z Kolmetz
Maria I Waycott
James F Butt
Stacey C Venere
Cody S Malet
Mayumi A Marrier
Salvatore T Rim
Misaki J Figeroa
Jennifer C Doe
Alejandro D Bowley
Octavia N Ruta
Mayumi D Kolmetz
Misaki F Wieser
Francesco N Bowley
Ivar Z Shinko
Cody A Morasca
Alejandro K Ruta
Morrow J Figeroa
Aruna A Maclead
Wickens P Kolmetz
Leja T Kolmetz
Aditya M Foller
Misaki Q Stenseth
Morrow F Poquette
Ivar S Maclead
Mujtaba U Ostrosky
Costa I Butt
Murillo Z Whobrey
Greenwood Z Inouye
Isabel M Caudy
Murillo H Slusarski
Costa O Venere
Cody Q Flosi
Jeanfrancois A Vocelka
Rodrigues X Paprocki
Maria H Rim
Greenwood D Doe
IdCountryDate
1000France2024-03-23
1001Italy2024-03-23
1002Italy2024-03-21
1003Spain2024-04-06
1004France2024-04-10
1005Russia2024-04-16
1006France2024-04-10
1007Argentina2024-04-06
1008United Kingdom2024-04-06
1009Italy2024-03-28
1010United Kingdom2024-03-30
1011Australia2024-03-21
1012Brazil2024-03-26
1013Canada2024-04-09
1014Russia2024-04-07
1015Brazil2024-04-16
1016Japan2024-03-28
1017India2024-04-12
1018Brazil2024-03-25
1019Spain2024-03-28
1020Germany2024-04-14
1021France2024-04-05
1022Argentina2024-04-07
1023Brazil2024-04-04
1024Russia2024-03-25
1025Italy2024-04-05
1026Italy2024-04-11
1027Australia2024-03-26
1028India2024-03-27
1029Japan2024-03-22
1030Russia2024-04-02
1031India2024-03-31
1032Italy2024-04-02
1033Germany2024-04-18
1034Argentina2024-04-17
1035France2024-04-05
1036Germany2024-04-13
1037France2024-03-21
1038Germany2024-03-21
1039India2024-04-02
1040Spain2024-04-03
1041Italy2024-04-06
1042Brazil2024-03-23
1043Brazil2024-04-18
1044United Kingdom2024-04-02
1045Brazil2024-04-09
1046Brazil2024-03-31
1047Japan2024-04-09
1048France2024-03-30
1049Australia2024-04-15

On-Demand Data

NameIdCountryDate
Leja T Venere1000United Kingdom2024-04-13
Mujtaba M Perin1001France2024-03-21
Arvin P Kolmetz1002Russia2024-04-15
Julie O Rim1003Germany2024-04-02
Aditya J Iturbide1004France2024-03-27
Wickens T Butt1005Australia2024-04-11
Ricardo D Wieser1006Italy2024-03-22
Octavia B Rulapaugh1007Brazil2024-04-08
Maria A Albares1008Japan2024-03-27
Ivar T Maclead1009Australia2024-04-08
Greenwood Q Vocelka1010Australia2024-04-02
Wickens L Nestle1011Spain2024-03-30
Antonio G Chui1012Germany2024-04-04
Deepesh G Inouye1013Spain2024-04-19
Jones Q Tollner1014France2024-04-07
Silvio P Chui1015France2024-04-15
Tony L Albares1016Australia2024-04-06
Greenwood M Oldroyd1017Argentina2024-04-09
Faith D Nicka1018United Kingdom2024-04-09
Salvatore H Ruta1019France2024-03-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci D DoeAustraliaStephen Shaw QUALIFIED
Juan X PaprockiFranceIvan Magalhaes UNQUALIFIED
Darci I BowleyUnited KingdomAsiya Javayant PROPOSAL
Murillo C PoquetteIndiaIoni Bowcher PROPOSAL
Johnson O AlbaresCanadaBernardo Dominic RENEWAL
Julie U StockhamAustraliaAnna Fali PROPOSAL
Mujtaba T KuskoJapanAsiya Javayant QUALIFIED
Nicolas Y MaletUnited KingdomIvan Magalhaes PROPOSAL
Salvatore O WhobreyArgentinaXuxue Feng NEGOTIATION
David J FollerArgentinaXuxue Feng RENEWAL
Arvin U SlusarskiCanadaAnna Fali PROPOSAL
Deepesh S CampainBrazilAmy Elsner UNQUALIFIED
Salvatore E GarufiGermanyAnna Fali QUALIFIED
Nicolas H StockhamAustraliaOnyama Limba PROPOSAL
Aruna B MaletFranceBernardo Dominic NEGOTIATION
Rodrigues V WaycottUnited KingdomStephen Shaw RENEWAL
Izzy L DoeBrazilAnna Fali NEGOTIATION
Aruna D MacleadBrazilAsiya Javayant PROPOSAL
Juan Y AmigonItalyAnna Fali RENEWAL
Francesco D KolmetzArgentinaOnyama Limba NEW
Izzy M RulapaughUnited KingdomAsiya Javayant NEW
Arvin B NickaRussiaIvan Magalhaes PROPOSAL
Costa C WaycottRussiaIoni Bowcher RENEWAL
Sinclair L WieserCanadaAmy Elsner QUALIFIED
Arvin M KuskoArgentinaIoni Bowcher NEW
Tony F VocelkaGermanyAmy Elsner PROPOSAL
Jones Z MarrierRussiaBernardo Dominic RENEWAL
Jeanfrancois X CaudyUnited KingdomAnna Fali QUALIFIED
Aika Q CampainUnited KingdomStephen Shaw UNQUALIFIED
Kadeem G PoquetteCanadaStephen Shaw NEW
Jeanfrancois A GillianCanadaStephen Shaw NEGOTIATION
Aditya B NestleUnited KingdomAnna Fali PROPOSAL
Greenwood U DilliardJapanIvan Magalhaes QUALIFIED
Arvin N VenereFranceOnyama Limba RENEWAL
Rodrigues O StensethAustraliaBernardo Dominic NEGOTIATION
Costa V WhobreyBrazilAsiya Javayant NEGOTIATION
Ashley B FlosiRussiaAmy Elsner NEW
David M WhobreyIndiaAnna Fali PROPOSAL
Rodrigues O OstroskyAustraliaElwin Sharvill UNQUALIFIED
Ashley O ShinkoFranceAmy Elsner QUALIFIED

<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>