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
Emily C GillianSpainXuxue Feng PROPOSAL
Izzy G NickaJapanBernardo Dominic PROPOSAL
Costa S PerinAustraliaElwin Sharvill NEGOTIATION
Juan W PaprockiRussiaXuxue Feng RENEWAL
Ashley O StockhamIndiaStephen Shaw NEGOTIATION
Ashley L FollerBrazilXuxue Feng NEGOTIATION
Smith T WaycottBrazilIoni Bowcher RENEWAL
Leja X NickaUnited KingdomAnna Fali RENEWAL
Aika I PaprockiAustraliaStephen Shaw PROPOSAL
Nicolas O StockhamJapanIvan Magalhaes PROPOSAL
Octavia D StensethJapanBernardo Dominic UNQUALIFIED
Aditya U IturbideCanadaAnna Fali QUALIFIED
Rodrigues F BriddickBrazilBernardo Dominic NEGOTIATION
Aika V SergiCanadaXuxue Feng UNQUALIFIED
Wickens S ChuiSpainOnyama Limba UNQUALIFIED
Smith D FerenczCanadaIvan Magalhaes NEW
Jefferson M ShinkoFranceStephen Shaw PROPOSAL
Julie J MarrierBrazilIvan Magalhaes RENEWAL
Faith E WhobreyAustraliaBernardo Dominic NEW
Isabel P CaldareraSpainOnyama Limba PROPOSAL
James H RulapaughAustraliaXuxue Feng NEW
Adams H CaudySpainOnyama Limba QUALIFIED
Adams K DilliardIndiaElwin Sharvill UNQUALIFIED
Silvio O ChuiIndiaAnna Fali PROPOSAL
Mayumi N CaldareraAustraliaOnyama Limba RENEWAL
Jennifer V SergiSpainAmy Elsner NEGOTIATION
Jones E WieserIndiaBernardo Dominic QUALIFIED
Maria Y WaycottArgentinaIoni Bowcher QUALIFIED
Tony I BologniaCanadaAnna Fali PROPOSAL
Sinclair C WaycottBrazilAmy Elsner QUALIFIED
Aditya W ChuiSpainIoni Bowcher UNQUALIFIED
Clifford B NickaJapanAmy Elsner NEW
Aika R InouyeRussiaIoni Bowcher RENEWAL
Salvatore W AmigonAustraliaStephen Shaw RENEWAL
Costa I KuskoBrazilAnna Fali NEGOTIATION
Smith Y GarufiItalyIvan Magalhaes QUALIFIED
Johnson T NestleGermanyIoni Bowcher UNQUALIFIED
Morrow G MaletRussiaXuxue Feng NEGOTIATION
Smith X SergiUnited KingdomIoni Bowcher NEW
Jennifer U FigeroaSpainIvan Magalhaes NEW
Wickens Y KuskoBrazilAsiya Javayant NEW
Isabel E MaletItalyAmy Elsner NEGOTIATION
Leon M DilliardArgentinaAnna Fali QUALIFIED
Mujtaba T WhobreyUnited KingdomAmy Elsner UNQUALIFIED
Claire R MarrierItalyElwin Sharvill NEGOTIATION
Emily C PaprockiAustraliaAmy Elsner NEGOTIATION
Murillo T PoquetteSpainXuxue Feng NEW
Ricardo X SergiIndiaOnyama Limba RENEWAL
Wickens G MaletBrazilAnna Fali UNQUALIFIED
Maria Z InouyeRussiaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez J GlickGermanyXuxue Feng UNQUALIFIED
Morrow W BriddickUnited KingdomBernardo Dominic QUALIFIED
Jefferson K KolmetzFranceXuxue Feng RENEWAL
Cody H MacleadAustraliaAnna Fali RENEWAL
James P RutaArgentinaIvan Magalhaes NEGOTIATION
Mayumi M SchemmerUnited KingdomBernardo Dominic NEGOTIATION
Ashley Y GillianArgentinaStephen Shaw PROPOSAL
Munro X KuskoArgentinaStephen Shaw NEW
Salvatore V VenereSpainBernardo Dominic RENEWAL
Nicolas Z BriddickCanadaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika J DoeUnited Kingdom2024-04-12Rousseaux, Michael Esq PROPOSAL12Stephen Shaw
1001Johnson N VenereItaly2024-04-04Morlong Associates UNQUALIFIED62Amy Elsner
1002Isabel M GarufiFrance2024-03-30Feltz Printing Service PROPOSAL73Onyama Limba
1003Ivar S MaletAustralia2024-04-15Dorl, James J Esq UNQUALIFIED45Ivan Magalhaes
1004James L ChuiJapan2024-04-16Rousseaux, Michael Esq NEGOTIATION19Bernardo Dominic
1005Johnson E RimSpain2024-03-27Truhlar And Truhlar Attys QUALIFIED54Asiya Javayant
1006Antonio N RimUnited Kingdom2024-04-15Buckley Miller Wright PROPOSAL20Ioni Bowcher
1007Smith I ShinkoJapan2024-04-16Printing Dimensions UNQUALIFIED9Amy Elsner
1008Jones T DilliardAustralia2024-04-19Morlong Associates UNQUALIFIED16Bernardo Dominic
1009Costa F TollnerBrazil2024-04-18King, Christopher A Esq UNQUALIFIED43Asiya Javayant
1010Clifford B DarakjyRussia2024-04-15Rousseaux, Michael Esq NEGOTIATION69Ioni Bowcher
1011Stacey Y RutaSpain2024-03-27Printing Dimensions PROPOSAL17Stephen Shaw
1012David L FlosiGermany2024-04-21Benton, John B Jr RENEWAL74Onyama Limba
1013Izzy G PaprockiBrazil2024-04-22Chemel, James L Cpa QUALIFIED31Asiya Javayant
1014Nicolas N KuskoSpain2024-04-01Rangoni Of Florence NEGOTIATION72Stephen Shaw
1015Deepesh G VenereCanada2024-03-25Buckley Miller Wright NEGOTIATION11Ioni Bowcher
1016Misaki F SchemmerIndia2024-04-11Commercial Press RENEWAL34Stephen Shaw
1017Smith N GillianRussia2024-04-12Rangoni Of Florence QUALIFIED78Elwin Sharvill
1018Silvio O BriddickBrazil2024-03-25Dorl, James J Esq QUALIFIED53Amy Elsner
1019Octavia Y ShinkoBrazil2024-04-13Feiner Bros UNQUALIFIED74Xuxue Feng
1020Smith N MacleadRussia2024-04-19Buckley Miller Wright PROPOSAL90Amy Elsner
1021Leon I GlickBrazil2024-04-17Commercial Press NEW0Onyama Limba
1022Julie F IturbideFrance2024-04-05Feiner Bros QUALIFIED62Onyama Limba
1023Jones A ChuiAustralia2024-04-15Feiner Bros UNQUALIFIED67Amy Elsner
1024Johnson R CaudyUnited Kingdom2024-04-16Chemel, James L Cpa NEW32Elwin Sharvill
1025Juan P BowleyUnited Kingdom2024-03-24Chemel, James L Cpa PROPOSAL96Stephen Shaw
1026Emily Y MarrierIndia2024-03-28Feltz Printing Service RENEWAL71Stephen Shaw
1027Chavez F FlosiBrazil2024-04-03Morlong Associates UNQUALIFIED71Elwin Sharvill
1028Adams E SlusarskiGermany2024-04-17Truhlar And Truhlar Attys NEGOTIATION44Bernardo Dominic
1029Jefferson W BriddickItaly2024-04-18Chemel, James L Cpa QUALIFIED61Asiya Javayant
1030Mujtaba A AmigonCanada2024-04-08Feiner Bros NEW58Xuxue Feng
1031Tony Z TollnerUnited Kingdom2024-04-13Chanay, Jeffrey A Esq UNQUALIFIED56Ioni Bowcher
1032Adams X SlusarskiAustralia2024-04-09Chanay, Jeffrey A Esq NEGOTIATION41Asiya Javayant
1033Aruna H MaletGermany2024-04-14Chanay, Jeffrey A Esq NEW77Amy Elsner
1034Isabel I DilliardRussia2024-04-21Chanay, Jeffrey A Esq RENEWAL68Ivan Magalhaes
1035Isabel Z ShinkoSpain2024-03-25King, Christopher A Esq RENEWAL96Bernardo Dominic
1036Nicolas R VocelkaGermany2024-04-13King, Christopher A Esq PROPOSAL34Ivan Magalhaes
1037Munro T RoysterRussia2024-04-15Feltz Printing Service NEW59Asiya Javayant
1038Silvio O GillianUnited Kingdom2024-04-09Truhlar And Truhlar Attys PROPOSAL98Anna Fali
1039Wickens F PerinFrance2024-04-14Feiner Bros NEGOTIATION70Amy Elsner
1040Cody O KolmetzGermany2024-04-08Truhlar And Truhlar Attys NEGOTIATION41Ivan Magalhaes
1041Silvio I MaletJapan2024-04-11King, Christopher A Esq NEW29Stephen Shaw
1042Claire N FlosiJapan2024-04-03Chemel, James L Cpa QUALIFIED91Ivan Magalhaes
1043Ivar W DilliardUnited Kingdom2024-04-14Rousseaux, Michael Esq PROPOSAL68Bernardo Dominic
1044Greenwood C MaletArgentina2024-03-29Truhlar And Truhlar Attys RENEWAL91Onyama Limba
1045Rodrigues D VenereItaly2024-03-28Chanay, Jeffrey A Esq NEGOTIATION2Onyama Limba
1046Octavia N RutaCanada2024-04-16Benton, John B Jr UNQUALIFIED19Ioni Bowcher
1047Chavez L DilliardBrazil2024-04-03Morlong Associates RENEWAL41Ioni Bowcher
1048Jones B GillianFrance2024-03-25Rangoni Of Florence NEGOTIATION63Elwin Sharvill
1049Alejandro C FollerBrazil2024-04-15Feltz Printing Service QUALIFIED75Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aditya A BriddickBrazilStephen Shaw PROPOSAL
Isabel I WaycottItalyElwin Sharvill UNQUALIFIED
Adams W KolmetzItalyIoni Bowcher NEW
Octavia T InouyeRussiaBernardo Dominic NEW
Leon V WaycottRussiaAmy Elsner PROPOSAL
Aruna A OldroydJapanAmy Elsner QUALIFIED
Maria A ChuiBrazilAnna Fali RENEWAL
Rodrigues D FollerBrazilAsiya Javayant NEW
Greenwood H CampainIndiaIvan Magalhaes NEW
Alejandro M OstroskyUnited KingdomAmy Elsner RENEWAL
Ashley C IturbideSpainBernardo Dominic PROPOSAL
Deepesh C StockhamGermanyIvan Magalhaes NEW
Maria U ChuiAustraliaAnna Fali QUALIFIED
Wickens T DoeRussiaAnna Fali QUALIFIED
Ashley A DoeItalyIvan Magalhaes UNQUALIFIED
Maisha M WhobreyGermanyBernardo Dominic NEGOTIATION
Aruna V RoysterUnited KingdomBernardo Dominic RENEWAL
Salvatore Z FlosiArgentinaElwin Sharvill PROPOSAL
Chavez L StensethRussiaStephen Shaw NEGOTIATION
Clifford H WhobreyAustraliaBernardo Dominic QUALIFIED
Johnson V AlbaresBrazilElwin Sharvill UNQUALIFIED
Silvio R StockhamIndiaOnyama Limba RENEWAL
Sinclair T NickaBrazilIoni Bowcher UNQUALIFIED
Mujtaba Q BologniaCanadaXuxue Feng NEW
Alejandro V OstroskyRussiaElwin Sharvill NEW
James Y BriddickJapanAnna Fali RENEWAL
Ivar E PoquetteGermanyAnna Fali RENEWAL
Isabel C PerinIndiaXuxue Feng PROPOSAL
Clifford I WieserJapanBernardo Dominic QUALIFIED
Leja I WieserFranceElwin Sharvill NEW
Jefferson M WieserFranceAsiya Javayant RENEWAL
Mayumi N ChuiSpainElwin Sharvill QUALIFIED
Jones P GillianCanadaStephen Shaw UNQUALIFIED
Jeanfrancois P GillianJapanAsiya Javayant NEGOTIATION
James M RoysterIndiaIvan Magalhaes NEW
Aika R InouyeRussiaAmy Elsner RENEWAL
Wickens L DilliardUnited KingdomAnna Fali NEGOTIATION
Wickens I ChuiFranceOnyama Limba RENEWAL
Aruna L VenereSpainIvan Magalhaes QUALIFIED
Misaki N FlosiGermanyIvan Magalhaes NEGOTIATION
Silvio S KolmetzItalyOnyama Limba NEGOTIATION
Jeanfrancois G AlbaresBrazilAsiya Javayant NEGOTIATION
Salvatore M GillianCanadaIvan Magalhaes RENEWAL
Maria J ButtUnited KingdomAsiya Javayant PROPOSAL
Julie K FollerSpainStephen Shaw QUALIFIED
Darci N DarakjyRussiaOnyama Limba UNQUALIFIED
Octavia J SlusarskiJapanIvan Magalhaes PROPOSAL
Francesco N PaprockiFranceIvan Magalhaes PROPOSAL
Johnson B PerinJapanIoni Bowcher PROPOSAL
Rodrigues E MaletArgentinaAsiya Javayant PROPOSAL
Frozen Columns
Name
Aika N Caudy
Smith P Caldarera
Alejandro C Maclead
Kadeem I Chui
Silvio L Doe
Julie W Rim
Morrow U Oldroyd
Silvio W Darakjy
Jefferson Z Bowley
Rodrigues X Glick
Julie F Gillian
Alejandro W Slusarski
Ivar M Ostrosky
Kaitlin W Darakjy
Aditya B Gaucho
Misaki M Amigon
Adams F Marrier
Adams W Caldarera
Julie N Albares
Murillo G Whobrey
Jeanfrancois R Royster
Ashley I Bolognia
Aika J Albares
Tony I Gillian
Wickens L Tollner
Darci M Gillian
Munro S Caudy
Jones M Flosi
Claire X Campain
Tony V Tollner
Tony X Kolmetz
Alejandro U Briddick
Ivar A Caudy
Murillo I Flosi
Alejandro T Wieser
Johnson D Saylors
Arvin N Royster
Ricardo M Sergi
Silvio O Malet
Wickens W Royster
Mayumi Y Maclead
Rodrigues X Oldroyd
Adams K Stenseth
Cody S Ostrosky
Antonio V Dilliard
Jennifer A Malet
Ricardo C Doe
Alejandro L Venere
Stacey X Albares
Kaitlin H Wieser
IdCountryDate
1000United Kingdom2024-03-31
1001Russia2024-04-13
1002Spain2024-04-09
1003Argentina2024-03-29
1004Russia2024-04-10
1005Japan2024-04-07
1006Argentina2024-03-25
1007France2024-04-17
1008Brazil2024-04-06
1009Italy2024-04-04
1010Canada2024-04-16
1011Japan2024-04-22
1012Argentina2024-04-07
1013Australia2024-04-18
1014Russia2024-04-01
1015Spain2024-03-27
1016Italy2024-04-04
1017Australia2024-03-31
1018Argentina2024-04-19
1019France2024-04-09
1020Italy2024-04-08
1021Russia2024-04-06
1022France2024-04-11
1023United Kingdom2024-03-29
1024Brazil2024-04-03
1025Brazil2024-03-27
1026Spain2024-04-06
1027Germany2024-04-07
1028India2024-04-03
1029Russia2024-04-10
1030Argentina2024-03-27
1031Germany2024-04-18
1032Canada2024-04-04
1033Germany2024-04-18
1034Brazil2024-04-21
1035India2024-04-12
1036United Kingdom2024-04-10
1037Spain2024-03-29
1038Brazil2024-04-09
1039India2024-03-25
1040Spain2024-04-07
1041India2024-03-27
1042Germany2024-04-18
1043Italy2024-04-13
1044Japan2024-04-18
1045Canada2024-04-16
1046Brazil2024-03-24
1047Brazil2024-04-19
1048Spain2024-03-24
1049Italy2024-04-15

On-Demand Data

NameIdCountryDate
Juan G Stockham1000Italy2024-03-29
Munro T Kolmetz1001Argentina2024-03-27
Jones W Gillian1002Japan2024-04-21
Antonio U Rulapaugh1003Spain2024-03-27
Antonio M Maclead1004Brazil2024-04-15
Wickens U Rim1005Brazil2024-04-14
Stacey O Royster1006Germany2024-04-10
Wickens T Doe1007India2024-03-29
Stacey O Caudy1008Italy2024-04-16
Costa F Saylors1009Canada2024-04-04
Maisha J Poquette1010Canada2024-04-15
Jones A Malet1011France2024-04-10
Faith Z Bowley1012Australia2024-04-21
Izzy L Foller1013Germany2024-04-15
Morrow C Nicka1014Argentina2024-04-12
Faith K Caudy1015Australia2024-04-15
Emily P Caldarera1016United Kingdom2024-04-16
Jefferson K Rulapaugh1017Japan2024-04-17
Jennifer A Inouye1018Italy2024-04-11
Nicolas X Ruta1019Canada2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin U RimUnited KingdomAmy Elsner NEW
Isabel L FigeroaIndiaAmy Elsner NEW
Octavia V KuskoAustraliaAmy Elsner PROPOSAL
Antonio W NickaCanadaElwin Sharvill NEW
Wickens W PaprockiRussiaOnyama Limba UNQUALIFIED
Salvatore L MaletArgentinaStephen Shaw UNQUALIFIED
Costa X MarrierBrazilXuxue Feng UNQUALIFIED
Murillo J VocelkaUnited KingdomElwin Sharvill NEGOTIATION
Darci F VocelkaRussiaOnyama Limba UNQUALIFIED
Salvatore D WieserBrazilIvan Magalhaes PROPOSAL
Ricardo S MarrierBrazilStephen Shaw QUALIFIED
Antonio J SlusarskiGermanyStephen Shaw UNQUALIFIED
Jones L PerinBrazilOnyama Limba UNQUALIFIED
Deepesh I AmigonSpainXuxue Feng QUALIFIED
Adams R TollnerArgentinaStephen Shaw QUALIFIED
Emily R NestleGermanyStephen Shaw NEW
Wickens M BowleyIndiaElwin Sharvill PROPOSAL
Leon W MaletBrazilOnyama Limba QUALIFIED
Kaitlin M ButtAustraliaAnna Fali NEW
Ivar M PaprockiArgentinaXuxue Feng UNQUALIFIED
Claire U ChuiArgentinaAsiya Javayant NEGOTIATION
Faith V VocelkaRussiaBernardo Dominic PROPOSAL
Sinclair S OldroydJapanIvan Magalhaes NEW
Aruna N ChuiAustraliaIoni Bowcher UNQUALIFIED
Sinclair Z GauchoItalyXuxue Feng QUALIFIED
Leja Q RoysterJapanOnyama Limba QUALIFIED
Ashley R InouyeUnited KingdomAnna Fali QUALIFIED
Antonio S OldroydUnited KingdomAnna Fali QUALIFIED
Mujtaba X IturbideRussiaElwin Sharvill NEW
Maisha C WaycottGermanyAsiya Javayant UNQUALIFIED
Antonio V MorascaRussiaIoni Bowcher PROPOSAL
Octavia L GillianFranceAsiya Javayant QUALIFIED
Julie R BowleyJapanBernardo Dominic PROPOSAL
Aika D MorascaIndiaIoni Bowcher RENEWAL
Salvatore T BologniaBrazilAmy Elsner PROPOSAL
Tony I WhobreyItalyAnna Fali UNQUALIFIED
Johnson F GlickAustraliaIvan Magalhaes RENEWAL
Adams A TollnerItalyIvan Magalhaes UNQUALIFIED
Adams V BowleyBrazilXuxue Feng QUALIFIED
Ashley R AlbaresGermanyStephen Shaw UNQUALIFIED

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