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
James F FollerFranceAmy Elsner UNQUALIFIED
Ivar R VenereGermanyElwin Sharvill NEW
Aditya V FlosiSpainAmy Elsner NEGOTIATION
Morrow E FigeroaAustraliaXuxue Feng NEW
Kadeem N WieserIndiaIvan Magalhaes NEW
Greenwood S MaletUnited KingdomOnyama Limba PROPOSAL
Antonio H PoquetteBrazilBernardo Dominic QUALIFIED
Francesco V TollnerUnited KingdomBernardo Dominic NEW
Aditya O CaldareraUnited KingdomAsiya Javayant UNQUALIFIED
Morrow N CampainRussiaElwin Sharvill UNQUALIFIED
Jennifer F MaletArgentinaXuxue Feng QUALIFIED
Rodrigues X IturbideJapanAsiya Javayant RENEWAL
Wickens N VenereFranceXuxue Feng QUALIFIED
Aditya N NickaArgentinaIvan Magalhaes UNQUALIFIED
Johnson B StensethUnited KingdomXuxue Feng NEW
Izzy K OldroydCanadaIvan Magalhaes RENEWAL
Isabel S AlbaresIndiaBernardo Dominic PROPOSAL
Leja J MaletCanadaAsiya Javayant QUALIFIED
Maisha J ShinkoArgentinaAsiya Javayant NEW
Jefferson K GarufiSpainBernardo Dominic UNQUALIFIED
Isabel M WhobreyAustraliaOnyama Limba RENEWAL
Salvatore U RulapaughUnited KingdomAnna Fali NEGOTIATION
James Z AlbaresRussiaStephen Shaw NEW
Juan I GauchoBrazilOnyama Limba PROPOSAL
Aditya D GarufiAustraliaStephen Shaw NEW
Cody X RulapaughUnited KingdomElwin Sharvill QUALIFIED
Murillo D GillianArgentinaBernardo Dominic PROPOSAL
Stacey C PerinIndiaAnna Fali NEW
Leon P BriddickAustraliaAnna Fali QUALIFIED
Smith O InouyeGermanyOnyama Limba UNQUALIFIED
Faith N GillianIndiaAnna Fali PROPOSAL
Morrow L CaldareraSpainStephen Shaw NEGOTIATION
Wickens X GarufiCanadaIoni Bowcher PROPOSAL
Darci N DoeIndiaAnna Fali RENEWAL
Ashley U InouyeAustraliaBernardo Dominic NEW
Wickens M PaprockiFranceBernardo Dominic PROPOSAL
Rodrigues L GlickIndiaAmy Elsner UNQUALIFIED
Jennifer Z MaletArgentinaAnna Fali PROPOSAL
Emily S CaudyAustraliaIvan Magalhaes NEGOTIATION
Antonio N SlusarskiItalyElwin Sharvill UNQUALIFIED
Juan K RulapaughArgentinaXuxue Feng NEW
Ashley F DarakjyBrazilXuxue Feng QUALIFIED
Stacey I IturbideUnited KingdomStephen Shaw UNQUALIFIED
Ivar Q MacleadUnited KingdomAsiya Javayant NEW
David X GlickJapanAsiya Javayant RENEWAL
Leja J FlosiIndiaBernardo Dominic UNQUALIFIED
Munro N GarufiGermanyStephen Shaw NEW
Ricardo L KuskoUnited KingdomIvan Magalhaes RENEWAL
Juan I DilliardUnited KingdomIvan Magalhaes RENEWAL
Kadeem L PaprockiGermanyBernardo Dominic NEW
Horizontal
NameCountryRepresentativeStatus
Deepesh P DilliardAustraliaOnyama Limba NEW
Sinclair M DarakjyAustraliaStephen Shaw NEGOTIATION
Stacey S MorascaAustraliaBernardo Dominic RENEWAL
Jennifer M OstroskyFranceAsiya Javayant UNQUALIFIED
Alejandro F PerinJapanIoni Bowcher NEW
Claire G GauchoCanadaXuxue Feng PROPOSAL
Chavez V DarakjyJapanXuxue Feng QUALIFIED
Juan S SaylorsJapanIvan Magalhaes NEGOTIATION
Munro U DilliardArgentinaIoni Bowcher RENEWAL
Claire T OldroydAustraliaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer G CaldareraGermany2024-03-28Printing Dimensions UNQUALIFIED96Asiya Javayant
1001Aruna V WaycottItaly2024-03-24King, Christopher A Esq PROPOSAL66Amy Elsner
1002Jeanfrancois T ChuiSpain2024-04-06Rangoni Of Florence PROPOSAL83Stephen Shaw
1003Alejandro J GillianRussia2024-03-23Printing Dimensions QUALIFIED46Ioni Bowcher
1004Izzy F WaycottJapan2024-04-05Chanay, Jeffrey A Esq QUALIFIED60Stephen Shaw
1005Kadeem C WaycottFrance2024-03-23Dorl, James J Esq NEW83Xuxue Feng
1006Sinclair O AlbaresBrazil2024-03-26Rousseaux, Michael Esq RENEWAL19Xuxue Feng
1007Arvin T VenereRussia2024-03-20King, Christopher A Esq PROPOSAL46Xuxue Feng
1008Deepesh D SaylorsGermany2024-04-11Truhlar And Truhlar Attys QUALIFIED13Ioni Bowcher
1009Ivar H OldroydRussia2024-03-21Feltz Printing Service UNQUALIFIED55Amy Elsner
1010Aditya G PaprockiIndia2024-04-05Dorl, James J Esq RENEWAL49Xuxue Feng
1011Tony P CaldareraIndia2024-03-20King, Christopher A Esq UNQUALIFIED10Onyama Limba
1012Wickens G CaudyArgentina2024-03-22King, Christopher A Esq UNQUALIFIED83Stephen Shaw
1013Leja A BowleyCanada2024-04-01Commercial Press QUALIFIED37Bernardo Dominic
1014Smith Z WaycottUnited Kingdom2024-04-05Feiner Bros RENEWAL95Ivan Magalhaes
1015Izzy G VenereSpain2024-03-29Feltz Printing Service RENEWAL66Stephen Shaw
1016Rodrigues E PoquetteCanada2024-03-24Chanay, Jeffrey A Esq QUALIFIED37Ivan Magalhaes
1017Misaki R WhobreyFrance2024-04-14Dorl, James J Esq QUALIFIED81Ioni Bowcher
1018Adams N NickaSpain2024-03-25King, Christopher A Esq NEW90Onyama Limba
1019David N MacleadItaly2024-04-13Feiner Bros UNQUALIFIED39Ioni Bowcher
1020Tony H RoysterAustralia2024-04-05Benton, John B Jr RENEWAL3Asiya Javayant
1021Morrow E FollerSpain2024-03-31Benton, John B Jr RENEWAL23Asiya Javayant
1022Claire O PerinArgentina2024-03-27Feltz Printing Service PROPOSAL16Elwin Sharvill
1023Smith F KolmetzIndia2024-04-12Commercial Press NEW24Xuxue Feng
1024Mujtaba Y CaudyFrance2024-04-05Buckley Miller Wright PROPOSAL90Ivan Magalhaes
1025Francesco K ShinkoBrazil2024-04-12Truhlar And Truhlar Attys NEW37Onyama Limba
1026Aditya T FollerRussia2024-04-14Chemel, James L Cpa UNQUALIFIED62Stephen Shaw
1027Greenwood V FigeroaJapan2024-03-21Buckley Miller Wright UNQUALIFIED64Ioni Bowcher
1028Juan K VocelkaBrazil2024-03-20Chemel, James L Cpa RENEWAL53Xuxue Feng
1029Jeanfrancois T OstroskyRussia2024-04-09Chanay, Jeffrey A Esq UNQUALIFIED28Ioni Bowcher
1030Leon O DilliardSpain2024-04-04Feiner Bros QUALIFIED77Ioni Bowcher
1031Tony M RoysterCanada2024-03-20Rousseaux, Michael Esq NEGOTIATION61Xuxue Feng
1032James S WaycottGermany2024-03-28Commercial Press NEW37Asiya Javayant
1033Aruna K GlickIndia2024-03-31Printing Dimensions RENEWAL17Ivan Magalhaes
1034David A BowleyIndia2024-03-22Truhlar And Truhlar Attys NEGOTIATION90Xuxue Feng
1035Jennifer X DilliardBrazil2024-03-20Rangoni Of Florence NEW74Bernardo Dominic
1036Claire S WhobreyGermany2024-04-03Chanay, Jeffrey A Esq UNQUALIFIED81Anna Fali
1037Silvio A AmigonIndia2024-04-06Dorl, James J Esq NEW76Ivan Magalhaes
1038Munro A CaudyItaly2024-04-05Feiner Bros NEGOTIATION65Anna Fali
1039Darci B CaudySpain2024-04-02Dorl, James J Esq UNQUALIFIED18Onyama Limba
1040Julie G GlickFrance2024-03-22King, Christopher A Esq QUALIFIED32Onyama Limba
1041Jones G ShinkoArgentina2024-04-04Buckley Miller Wright PROPOSAL22Amy Elsner
1042Rodrigues Y StockhamRussia2024-03-22Dorl, James J Esq NEGOTIATION78Amy Elsner
1043Leon I RulapaughAustralia2024-03-31Morlong Associates PROPOSAL2Anna Fali
1044Maisha G InouyeIndia2024-04-02Commercial Press NEGOTIATION23Onyama Limba
1045Isabel C VocelkaItaly2024-04-02Feltz Printing Service NEW27Xuxue Feng
1046Aditya U MacleadItaly2024-03-28Chemel, James L Cpa UNQUALIFIED19Elwin Sharvill
1047Jeanfrancois P OldroydAustralia2024-03-22Morlong Associates UNQUALIFIED12Bernardo Dominic
1048Jones X NickaSpain2024-04-14Feltz Printing Service UNQUALIFIED99Amy Elsner
1049Kadeem Z PerinBrazil2024-04-03Chapman, Ross E Esq UNQUALIFIED16Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Mayumi A BriddickItalyIoni Bowcher PROPOSAL
Octavia Y SaylorsUnited KingdomOnyama Limba RENEWAL
David G BologniaGermanyIoni Bowcher NEW
Smith T AlbaresAustraliaIoni Bowcher UNQUALIFIED
Clifford N DarakjyCanadaIvan Magalhaes PROPOSAL
Salvatore A VocelkaCanadaBernardo Dominic UNQUALIFIED
Claire L MaletSpainOnyama Limba PROPOSAL
Smith K IturbideCanadaAmy Elsner RENEWAL
Chavez X BriddickArgentinaElwin Sharvill RENEWAL
Maria S StensethArgentinaBernardo Dominic PROPOSAL
Munro P VocelkaAustraliaAnna Fali NEGOTIATION
James B VocelkaIndiaBernardo Dominic UNQUALIFIED
Mujtaba I PoquetteBrazilXuxue Feng UNQUALIFIED
Isabel F FigeroaCanadaAnna Fali PROPOSAL
Mayumi S MacleadSpainIoni Bowcher PROPOSAL
Arvin K RimUnited KingdomBernardo Dominic RENEWAL
Ashley D FerenczBrazilBernardo Dominic NEW
Leon X MaletItalyIoni Bowcher NEW
Octavia E StockhamCanadaAsiya Javayant UNQUALIFIED
Mayumi U BriddickCanadaBernardo Dominic NEGOTIATION
Antonio R DilliardUnited KingdomBernardo Dominic QUALIFIED
Mujtaba W ButtCanadaAsiya Javayant RENEWAL
Aika J StensethJapanElwin Sharvill RENEWAL
Juan X InouyeFranceAnna Fali PROPOSAL
Clifford R AmigonBrazilStephen Shaw UNQUALIFIED
Maisha S RimSpainXuxue Feng RENEWAL
Jefferson W GlickRussiaElwin Sharvill NEGOTIATION
Alejandro L KuskoCanadaIoni Bowcher QUALIFIED
Deepesh A NestleSpainAsiya Javayant PROPOSAL
Antonio J PerinFranceIoni Bowcher RENEWAL
Julie Y SlusarskiJapanAnna Fali NEGOTIATION
Izzy C KuskoBrazilIvan Magalhaes QUALIFIED
Julie F NestleAustraliaElwin Sharvill RENEWAL
Kaitlin L OstroskyJapanIvan Magalhaes PROPOSAL
Sinclair G PaprockiGermanyStephen Shaw RENEWAL
Isabel O MorascaItalyBernardo Dominic NEGOTIATION
Kaitlin U BriddickFranceXuxue Feng NEGOTIATION
Mayumi B CaudyCanadaAnna Fali RENEWAL
Tony F FollerAustraliaIvan Magalhaes RENEWAL
Isabel C FerenczUnited KingdomXuxue Feng RENEWAL
Arvin V AmigonUnited KingdomBernardo Dominic NEGOTIATION
Octavia P ChuiRussiaAnna Fali UNQUALIFIED
Cody S GauchoJapanAsiya Javayant NEW
Deepesh W OstroskyIndiaIoni Bowcher RENEWAL
Maisha F RutaItalyStephen Shaw NEW
David T CaudyRussiaIoni Bowcher RENEWAL
Francesco L CaudyItalyStephen Shaw QUALIFIED
Aika V RutaArgentinaAsiya Javayant NEGOTIATION
Cody P SchemmerBrazilIoni Bowcher RENEWAL
Alejandro L RoysterBrazilElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Alejandro S Maclead
Ivar W Darakjy
Ashley B Slusarski
Aditya R Kusko
Jones G Caudy
Maria K Flosi
Julie E Morasca
Ricardo V Schemmer
Ashley O Amigon
Tony K Rulapaugh
Faith Q Whobrey
Alejandro A Oldroyd
Julie M Amigon
Francesco F Doe
Jennifer G Rim
Emily U Shinko
Juan T Briddick
Faith H Kusko
Wickens G Chui
Munro A Gillian
Salvatore Y Malet
Munro M Figeroa
Jeanfrancois R Ferencz
Alejandro A Caldarera
Salvatore R Nestle
Maisha W Darakjy
Isabel K Poquette
Costa Y Kolmetz
Adams H Bowley
Costa K Shinko
Mujtaba P Shinko
David Y Rim
Juan G Inouye
Jennifer J Maclead
Chavez S Glick
Francesco R Dilliard
Izzy X Campain
Johnson U Albares
Adams U Perin
Faith D Figeroa
Johnson G Kolmetz
Aika S Garufi
Cody I Albares
Leon A Paprocki
Aditya K Doe
Mujtaba L Gillian
Jefferson K Schemmer
Aika U Caudy
Emily K Chui
Rodrigues D Rim
IdCountryDate
1000Japan2024-03-21
1001India2024-04-01
1002Brazil2024-04-15
1003Australia2024-04-07
1004India2024-04-17
1005Japan2024-04-11
1006Australia2024-04-14
1007Brazil2024-04-08
1008Canada2024-04-01
1009Brazil2024-03-21
1010France2024-04-10
1011Australia2024-03-30
1012Argentina2024-04-09
1013Japan2024-03-25
1014Russia2024-04-02
1015Brazil2024-04-04
1016Italy2024-04-03
1017France2024-04-03
1018Australia2024-04-04
1019Italy2024-04-12
1020Russia2024-04-02
1021Brazil2024-04-06
1022United Kingdom2024-04-17
1023Argentina2024-03-31
1024Argentina2024-04-16
1025Russia2024-04-12
1026Brazil2024-04-14
1027United Kingdom2024-04-15
1028Japan2024-03-20
1029Brazil2024-03-27
1030Argentina2024-04-06
1031Italy2024-04-15
1032Japan2024-04-05
1033Australia2024-03-22
1034Brazil2024-03-27
1035United Kingdom2024-04-06
1036Italy2024-03-24
1037Canada2024-04-02
1038Russia2024-04-01
1039Russia2024-04-09
1040Argentina2024-04-10
1041France2024-03-25
1042United Kingdom2024-04-10
1043Spain2024-04-05
1044Brazil2024-04-09
1045India2024-04-11
1046Argentina2024-04-17
1047Japan2024-04-07
1048Canada2024-04-17
1049Australia2024-04-12

On-Demand Data

NameIdCountryDate
Claire F Royster1000Japan2024-04-03
James Z Vocelka1001Italy2024-04-11
Julie P Sergi1002Argentina2024-03-24
Isabel T Campain1003United Kingdom2024-04-07
Smith I Rulapaugh1004India2024-04-14
Francesco R Albares1005Spain2024-03-29
Maisha X Stockham1006Japan2024-03-25
Kaitlin F Dilliard1007Japan2024-03-27
Ivar J Poquette1008Spain2024-04-11
Claire J Sergi1009Australia2024-04-01
Aika Q Waycott1010India2024-03-26
Arvin S Saylors1011Germany2024-03-23
Maisha A Glick1012United Kingdom2024-04-07
Francesco R Nicka1013Brazil2024-03-25
Costa F Butt1014Russia2024-04-15
Aruna I Stockham1015United Kingdom2024-03-21
Sinclair G Campain1016Russia2024-04-07
Rodrigues E Iturbide1017Spain2024-03-30
Deepesh H Paprocki1018India2024-03-26
Stacey Q Kusko1019Brazil2024-03-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia Y RulapaughFranceXuxue Feng NEW
Kadeem N IturbideUnited KingdomAnna Fali NEW
Wickens G FollerAustraliaIoni Bowcher UNQUALIFIED
Costa F MacleadGermanyBernardo Dominic PROPOSAL
Francesco R CaudyJapanOnyama Limba UNQUALIFIED
Kadeem D KuskoUnited KingdomAmy Elsner PROPOSAL
Leja S MaletBrazilBernardo Dominic QUALIFIED
Mujtaba P MaletBrazilBernardo Dominic QUALIFIED
Juan X ChuiFranceStephen Shaw PROPOSAL
Emily U IturbideBrazilAnna Fali UNQUALIFIED
Rodrigues G FerenczItalyXuxue Feng NEW
Wickens S BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Morrow J SaylorsGermanyXuxue Feng NEW
Ivar H AlbaresUnited KingdomAsiya Javayant NEW
Stacey X RimIndiaIoni Bowcher UNQUALIFIED
Sinclair P GillianBrazilAsiya Javayant UNQUALIFIED
Silvio P VenereUnited KingdomAsiya Javayant RENEWAL
Salvatore Y WaycottGermanyOnyama Limba NEW
Leon R GillianArgentinaAsiya Javayant NEGOTIATION
Maria F NestleIndiaOnyama Limba UNQUALIFIED
Faith B IturbideUnited KingdomIoni Bowcher UNQUALIFIED
Wickens M FollerBrazilStephen Shaw NEGOTIATION
Wickens E FlosiArgentinaElwin Sharvill UNQUALIFIED
Wickens D RutaArgentinaAsiya Javayant PROPOSAL
Salvatore M StockhamIndiaXuxue Feng NEW
Silvio P WieserCanadaBernardo Dominic NEGOTIATION
Jefferson F MorascaIndiaIvan Magalhaes NEGOTIATION
Leja G MaletGermanyOnyama Limba PROPOSAL
Julie G GlickSpainOnyama Limba UNQUALIFIED
Greenwood N FerenczGermanyBernardo Dominic NEW
Kaitlin G StensethRussiaAnna Fali PROPOSAL
Jennifer I VenereSpainAnna Fali UNQUALIFIED
Clifford H AmigonRussiaOnyama Limba RENEWAL
Nicolas X KolmetzSpainStephen Shaw RENEWAL
Claire K NestleArgentinaAnna Fali QUALIFIED
Chavez F GlickUnited KingdomElwin Sharvill RENEWAL
Jones B StensethItalyBernardo Dominic NEW
Francesco W MaletFranceAmy Elsner PROPOSAL
Chavez U RutaFranceOnyama Limba UNQUALIFIED
Leja F PerinBrazilOnyama Limba 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>