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
Chavez R RulapaughArgentinaXuxue Feng RENEWAL
Faith J VenereItalyElwin Sharvill QUALIFIED
Aditya Z CaudyJapanXuxue Feng NEGOTIATION
Leja X NestleUnited KingdomAmy Elsner NEGOTIATION
Izzy N ButtRussiaIoni Bowcher NEW
Rodrigues S NickaSpainBernardo Dominic RENEWAL
Sinclair W StockhamAustraliaIoni Bowcher PROPOSAL
Morrow Y SchemmerBrazilBernardo Dominic NEW
Darci R OstroskyGermanyXuxue Feng RENEWAL
Aika Q OldroydArgentinaBernardo Dominic RENEWAL
Adams K StensethRussiaStephen Shaw NEGOTIATION
Kadeem M PerinBrazilIoni Bowcher UNQUALIFIED
Sinclair B DoeFranceAnna Fali NEW
Mujtaba N KuskoArgentinaElwin Sharvill UNQUALIFIED
Antonio X VocelkaItalyBernardo Dominic NEGOTIATION
Adams J RimRussiaOnyama Limba QUALIFIED
Maria E ShinkoItalyOnyama Limba NEGOTIATION
Leja H WaycottAustraliaStephen Shaw UNQUALIFIED
Julie B DarakjySpainStephen Shaw RENEWAL
Silvio R MacleadIndiaXuxue Feng NEW
Emily B RulapaughIndiaAmy Elsner PROPOSAL
Jennifer L GillianSpainAsiya Javayant NEGOTIATION
Sinclair W FerenczFranceXuxue Feng UNQUALIFIED
Murillo W PoquetteBrazilElwin Sharvill QUALIFIED
Tony P VenereItalyAsiya Javayant NEW
Claire I NickaUnited KingdomXuxue Feng NEW
Deepesh C FollerCanadaAnna Fali QUALIFIED
Murillo M GillianCanadaAnna Fali UNQUALIFIED
Tony W BowleyBrazilElwin Sharvill QUALIFIED
Johnson D BriddickSpainStephen Shaw NEGOTIATION
Leja O GarufiRussiaAmy Elsner NEGOTIATION
Johnson D BologniaCanadaXuxue Feng RENEWAL
Ivar I WhobreyUnited KingdomIoni Bowcher PROPOSAL
Ivar U NickaSpainIoni Bowcher QUALIFIED
Francesco Y BowleyCanadaBernardo Dominic NEGOTIATION
David N IturbideJapanIvan Magalhaes NEW
Juan N CampainJapanStephen Shaw NEGOTIATION
Octavia H MarrierAustraliaAsiya Javayant QUALIFIED
Ricardo M MacleadBrazilIoni Bowcher NEGOTIATION
Chavez Z SaylorsSpainElwin Sharvill QUALIFIED
Jones L BologniaItalyIvan Magalhaes UNQUALIFIED
Murillo A BriddickAustraliaStephen Shaw UNQUALIFIED
Izzy J NestleSpainIvan Magalhaes NEW
Deepesh N WieserSpainIvan Magalhaes RENEWAL
Faith B WaycottSpainElwin Sharvill QUALIFIED
Salvatore Y DilliardBrazilAsiya Javayant PROPOSAL
Aika X ChuiUnited KingdomAsiya Javayant PROPOSAL
Maisha J AmigonArgentinaAsiya Javayant NEGOTIATION
James E WaycottUnited KingdomElwin Sharvill UNQUALIFIED
Maria D PerinArgentinaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Ricardo M WieserGermanyBernardo Dominic NEW
Greenwood G PaprockiSpainElwin Sharvill RENEWAL
Leja X GlickSpainStephen Shaw NEGOTIATION
Darci G CampainBrazilStephen Shaw RENEWAL
Wickens E BologniaGermanyStephen Shaw QUALIFIED
Cody C BriddickAustraliaAmy Elsner NEGOTIATION
Rodrigues O SaylorsBrazilIoni Bowcher UNQUALIFIED
Clifford C NickaJapanAnna Fali RENEWAL
Aditya K AlbaresAustraliaStephen Shaw NEW
Maria P IturbideGermanyIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo W BologniaJapan2024-04-09Rangoni Of Florence RENEWAL7Elwin Sharvill
1001Wickens C CaudyJapan2024-04-08Buckley Miller Wright RENEWAL89Amy Elsner
1002Murillo L FigeroaUnited Kingdom2024-04-02Rangoni Of Florence NEW55Asiya Javayant
1003Tony F GarufiIndia2024-04-19Chanay, Jeffrey A Esq QUALIFIED62Ivan Magalhaes
1004Salvatore N MacleadBrazil2024-04-15Rousseaux, Michael Esq UNQUALIFIED81Amy Elsner
1005Murillo X CampainIndia2024-04-11Benton, John B Jr NEW25Anna Fali
1006Aditya U NestleSpain2024-03-31Feiner Bros UNQUALIFIED43Onyama Limba
1007Aditya H VenereUnited Kingdom2024-04-06Commercial Press PROPOSAL18Amy Elsner
1008Emily D MaletCanada2024-04-23Rangoni Of Florence QUALIFIED40Elwin Sharvill
1009Morrow K PerinCanada2024-04-06Truhlar And Truhlar Attys PROPOSAL27Xuxue Feng
1010Silvio T StensethJapan2024-03-31Feiner Bros UNQUALIFIED99Stephen Shaw
1011Mujtaba M CaldareraArgentina2024-04-23Chanay, Jeffrey A Esq RENEWAL89Ioni Bowcher
1012Kaitlin H VenereFrance2024-03-30Chemel, James L Cpa NEGOTIATION31Asiya Javayant
1013Octavia P BowleyJapan2024-04-13Truhlar And Truhlar Attys QUALIFIED57Bernardo Dominic
1014Smith K InouyeBrazil2024-04-08Feltz Printing Service NEW80Elwin Sharvill
1015Misaki D OldroydAustralia2024-04-01King, Christopher A Esq QUALIFIED76Bernardo Dominic
1016Juan Z AmigonUnited Kingdom2024-04-13Feltz Printing Service RENEWAL32Bernardo Dominic
1017Emily H WhobreyUnited Kingdom2024-04-20Rangoni Of Florence QUALIFIED54Asiya Javayant
1018David L AlbaresBrazil2024-04-04Rangoni Of Florence UNQUALIFIED32Elwin Sharvill
1019Johnson L FerenczUnited Kingdom2024-04-24Chapman, Ross E Esq QUALIFIED58Xuxue Feng
1020Ricardo A RutaCanada2024-03-28Buckley Miller Wright PROPOSAL43Ioni Bowcher
1021Murillo F PerinRussia2024-04-15Feltz Printing Service NEW66Stephen Shaw
1022Aika U MaletItaly2024-04-17Feltz Printing Service PROPOSAL67Ioni Bowcher
1023Antonio I GillianUnited Kingdom2024-04-01Feiner Bros NEW36Elwin Sharvill
1024Leon I MarrierRussia2024-04-08King, Christopher A Esq RENEWAL24Asiya Javayant
1025Julie O PerinSpain2024-04-22Feltz Printing Service NEGOTIATION86Stephen Shaw
1026Aika X GillianArgentina2024-04-05Feltz Printing Service NEW45Onyama Limba
1027Rodrigues A GauchoAustralia2024-03-29Buckley Miller Wright UNQUALIFIED29Xuxue Feng
1028Munro L MacleadBrazil2024-04-04Feiner Bros RENEWAL46Asiya Javayant
1029Jones X BriddickRussia2024-04-13Chemel, James L Cpa NEGOTIATION86Ioni Bowcher
1030Silvio O DarakjyArgentina2024-04-19Rousseaux, Michael Esq NEGOTIATION14Bernardo Dominic
1031Darci A ButtAustralia2024-04-18Chemel, James L Cpa NEW22Onyama Limba
1032Morrow Z NestleUnited Kingdom2024-04-17Chemel, James L Cpa NEW67Amy Elsner
1033James J BriddickRussia2024-04-05Chapman, Ross E Esq UNQUALIFIED32Amy Elsner
1034Costa Z MacleadAustralia2024-04-18Feiner Bros QUALIFIED17Onyama Limba
1035Morrow E GarufiBrazil2024-04-06Buckley Miller Wright UNQUALIFIED95Elwin Sharvill
1036Leon O AmigonArgentina2024-04-03Morlong Associates UNQUALIFIED99Ioni Bowcher
1037Nicolas H RoysterItaly2024-04-04Commercial Press NEGOTIATION51Stephen Shaw
1038Johnson V NickaFrance2024-04-01Rousseaux, Michael Esq NEW65Xuxue Feng
1039Kaitlin T GauchoJapan2024-04-23Chapman, Ross E Esq NEW42Ivan Magalhaes
1040Deepesh F PerinIndia2024-04-18Chapman, Ross E Esq PROPOSAL76Amy Elsner
1041Francesco X RoysterSpain2024-04-10Rousseaux, Michael Esq RENEWAL62Ioni Bowcher
1042Rodrigues G GlickCanada2024-04-21Rousseaux, Michael Esq NEGOTIATION38Xuxue Feng
1043James D OldroydCanada2024-04-14Chemel, James L Cpa QUALIFIED37Bernardo Dominic
1044Clifford W CaudyBrazil2024-04-17Buckley Miller Wright PROPOSAL53Anna Fali
1045Ivar Z FollerUnited Kingdom2024-04-21Truhlar And Truhlar Attys NEW58Xuxue Feng
1046Clifford V RimRussia2024-04-18Morlong Associates NEW36Xuxue Feng
1047Aika B CampainJapan2024-04-19Truhlar And Truhlar Attys UNQUALIFIED63Ioni Bowcher
1048Tony G TollnerRussia2024-04-06Truhlar And Truhlar Attys QUALIFIED99Onyama Limba
1049Johnson K AlbaresRussia2024-03-28Morlong Associates NEGOTIATION19Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Morrow R ChuiGermanyAnna Fali NEW
Morrow M KolmetzSpainXuxue Feng PROPOSAL
Rodrigues D DilliardSpainStephen Shaw UNQUALIFIED
Leja Y KuskoJapanAmy Elsner PROPOSAL
Antonio V WhobreyIndiaStephen Shaw QUALIFIED
Jeanfrancois M ButtAustraliaAmy Elsner RENEWAL
Salvatore I FigeroaSpainElwin Sharvill RENEWAL
Kadeem B SaylorsIndiaAsiya Javayant UNQUALIFIED
Ashley I CampainAustraliaIoni Bowcher PROPOSAL
Ashley R NickaBrazilIvan Magalhaes RENEWAL
Stacey W ChuiAustraliaAnna Fali QUALIFIED
Cody R CaldareraJapanAmy Elsner QUALIFIED
Wickens G PerinCanadaIvan Magalhaes QUALIFIED
Johnson F CampainSpainAnna Fali RENEWAL
Faith H SergiBrazilOnyama Limba RENEWAL
Jefferson O StensethCanadaXuxue Feng RENEWAL
Ricardo N ShinkoRussiaOnyama Limba UNQUALIFIED
Greenwood Q GauchoBrazilXuxue Feng PROPOSAL
Munro F SaylorsIndiaIvan Magalhaes UNQUALIFIED
Kadeem P OstroskyArgentinaElwin Sharvill RENEWAL
Smith Y ButtItalyXuxue Feng PROPOSAL
Aika P BologniaItalyStephen Shaw RENEWAL
Misaki U InouyeSpainStephen Shaw UNQUALIFIED
Jones B StensethIndiaStephen Shaw UNQUALIFIED
James O WhobreyJapanIvan Magalhaes NEW
Alejandro T PoquetteRussiaAnna Fali NEW
Mujtaba G VocelkaAustraliaAnna Fali NEGOTIATION
Kadeem Y DilliardRussiaAnna Fali NEW
Murillo A OstroskyFranceElwin Sharvill PROPOSAL
Emily Z WieserFranceIoni Bowcher NEGOTIATION
Juan O AlbaresAustraliaBernardo Dominic NEW
Munro G MaletIndiaAsiya Javayant UNQUALIFIED
Emily S MorascaAustraliaIoni Bowcher QUALIFIED
Alejandro A BriddickJapanBernardo Dominic UNQUALIFIED
Costa B GlickSpainAsiya Javayant NEGOTIATION
Smith T DarakjyCanadaIoni Bowcher PROPOSAL
Kadeem Z WaycottBrazilIoni Bowcher QUALIFIED
Johnson Q CaldareraBrazilElwin Sharvill PROPOSAL
Julie Z AmigonRussiaAnna Fali NEW
Faith D MorascaUnited KingdomAsiya Javayant NEW
Aditya D GarufiGermanyIoni Bowcher NEGOTIATION
Mayumi A WhobreyFranceAsiya Javayant QUALIFIED
Maria B WhobreyArgentinaBernardo Dominic NEGOTIATION
Octavia N WhobreyArgentinaAsiya Javayant QUALIFIED
Ivar J ButtBrazilAsiya Javayant RENEWAL
Francesco V AmigonUnited KingdomStephen Shaw NEGOTIATION
Antonio D GarufiGermanyBernardo Dominic UNQUALIFIED
Leja G NestleIndiaIvan Magalhaes QUALIFIED
Adams Q CaudyGermanyAnna Fali QUALIFIED
Wickens I NickaArgentinaIoni Bowcher NEW
Frozen Columns
Name
Costa W Amigon
Greenwood P Ruta
Antonio V Albares
Smith E Malet
Smith B Bolognia
Nicolas E Dilliard
Alejandro G Figeroa
Misaki I Iturbide
Jeanfrancois G Briddick
Silvio T Briddick
Octavia D Darakjy
Sinclair O Vocelka
David Q Darakjy
Nicolas J Butt
Alejandro H Kusko
Claire V Paprocki
Ivar P Nicka
Salvatore E Rulapaugh
Isabel Q Rulapaugh
Octavia N Amigon
Ivar P Flosi
Chavez G Inouye
Nicolas U Venere
Jefferson B Bolognia
Munro N Kusko
Ricardo Z Shinko
Izzy L Bolognia
Tony K Bowley
Alejandro I Figeroa
Maisha T Malet
Johnson C Campain
Ashley V Marrier
Wickens I Rim
Maisha C Glick
Deepesh U Ostrosky
Leon F Malet
Ashley C Venere
Faith M Campain
Munro W Slusarski
Isabel N Rulapaugh
Faith M Foller
Ashley V Waycott
Jennifer M Bolognia
Francesco Q Gillian
Emily W Tollner
Faith I Slusarski
Ashley K Caldarera
Aika U Perin
Alejandro Z Bolognia
James N Glick
IdCountryDate
1000Brazil2024-04-16
1001Australia2024-03-31
1002Canada2024-04-11
1003Canada2024-04-03
1004India2024-04-10
1005India2024-04-07
1006Argentina2024-04-13
1007United Kingdom2024-04-23
1008Brazil2024-03-31
1009India2024-04-19
1010Germany2024-04-10
1011France2024-04-26
1012Italy2024-04-16
1013Argentina2024-04-07
1014United Kingdom2024-04-21
1015France2024-04-14
1016Canada2024-04-05
1017Germany2024-04-25
1018France2024-04-22
1019Italy2024-03-30
1020Australia2024-03-31
1021Canada2024-04-18
1022France2024-04-17
1023Argentina2024-04-18
1024United Kingdom2024-04-09
1025United Kingdom2024-04-08
1026Argentina2024-04-10
1027Brazil2024-04-24
1028Russia2024-04-03
1029United Kingdom2024-04-22
1030Russia2024-04-22
1031France2024-04-20
1032Italy2024-04-09
1033Brazil2024-04-14
1034Russia2024-04-15
1035United Kingdom2024-04-16
1036Russia2024-04-14
1037Spain2024-04-09
1038United Kingdom2024-04-15
1039Canada2024-04-04
1040France2024-04-08
1041Argentina2024-04-05
1042Brazil2024-04-04
1043Germany2024-04-23
1044Brazil2024-04-09
1045Germany2024-04-25
1046Russia2024-04-17
1047Canada2024-04-10
1048Australia2024-04-03
1049Canada2024-04-07

On-Demand Data

NameIdCountryDate
Greenwood M Poquette1000Japan2024-04-05
Salvatore L Inouye1001France2024-04-17
Julie Y Stockham1002Italy2024-04-01
Cody E Gillian1003India2024-04-15
Ricardo U Ostrosky1004Italy2024-04-04
Kadeem Y Waycott1005Italy2024-04-15
Nicolas B Kolmetz1006Spain2024-03-29
Nicolas C Shinko1007Spain2024-04-21
Nicolas B Bowley1008Argentina2024-04-09
Maisha M Poquette1009Australia2024-04-04
Juan P Marrier1010India2024-04-25
Antonio H Caldarera1011Germany2024-04-02
Murillo F Caudy1012Canada2024-04-10
Aruna P Bolognia1013Brazil2024-04-11
Maria B Shinko1014Russia2024-04-24
Jones O Gaucho1015India2024-04-25
Leja J Dilliard1016Australia2024-03-29
Arvin U Malet1017Japan2024-04-20
Morrow H Bowley1018Russia2024-04-02
Aruna T Kusko1019Canada2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues Y WaycottJapanIvan Magalhaes NEW
Leja H NickaCanadaIvan Magalhaes RENEWAL
Deepesh J RimGermanyIvan Magalhaes QUALIFIED
Maisha N MaletItalyAnna Fali UNQUALIFIED
Chavez Q KuskoArgentinaAnna Fali RENEWAL
Francesco M OstroskyAustraliaAsiya Javayant QUALIFIED
Octavia E PerinJapanBernardo Dominic NEGOTIATION
Silvio B SlusarskiSpainIoni Bowcher NEW
Aditya G GarufiGermanyXuxue Feng NEW
Tony P PerinArgentinaXuxue Feng RENEWAL
Antonio D TollnerArgentinaIoni Bowcher PROPOSAL
Mayumi N CampainFranceStephen Shaw QUALIFIED
Jeanfrancois M VenereJapanStephen Shaw RENEWAL
Tony X NestleSpainBernardo Dominic NEW
Costa B FigeroaJapanOnyama Limba NEW
Costa C RoysterGermanyIvan Magalhaes NEW
Rodrigues O SergiGermanyStephen Shaw UNQUALIFIED
Izzy M KolmetzArgentinaAnna Fali RENEWAL
Misaki N SlusarskiGermanyAsiya Javayant UNQUALIFIED
Rodrigues J WieserJapanStephen Shaw QUALIFIED
Tony S InouyeArgentinaAmy Elsner UNQUALIFIED
Kaitlin N PerinCanadaIvan Magalhaes PROPOSAL
Ashley M ShinkoBrazilAsiya Javayant NEW
Ricardo L SlusarskiItalyOnyama Limba UNQUALIFIED
Chavez U InouyeFranceIoni Bowcher NEW
Emily I MacleadUnited KingdomStephen Shaw QUALIFIED
Aika X SaylorsJapanElwin Sharvill PROPOSAL
Adams H RutaAustraliaIvan Magalhaes QUALIFIED
Octavia U DilliardArgentinaStephen Shaw UNQUALIFIED
Greenwood V GlickIndiaAsiya Javayant RENEWAL
James H KuskoAustraliaAnna Fali NEGOTIATION
Mayumi A OldroydItalyIvan Magalhaes NEW
Emily D PaprockiRussiaBernardo Dominic QUALIFIED
Octavia G WhobreyRussiaAsiya Javayant NEGOTIATION
Kaitlin T WieserFranceAnna Fali RENEWAL
Rodrigues X VocelkaCanadaAsiya Javayant RENEWAL
James X InouyeAustraliaStephen Shaw PROPOSAL
Octavia F FigeroaUnited KingdomStephen Shaw NEW
Mayumi G FerenczGermanyBernardo Dominic RENEWAL
Izzy L StockhamIndiaXuxue Feng NEGOTIATION

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