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
Kaitlin G NestleCanadaBernardo Dominic UNQUALIFIED
Silvio J InouyeItalyElwin Sharvill RENEWAL
Claire O OldroydSpainElwin Sharvill NEGOTIATION
Stacey L RutaFranceOnyama Limba NEGOTIATION
Ashley F ChuiArgentinaElwin Sharvill UNQUALIFIED
Nicolas Y CaudyArgentinaOnyama Limba QUALIFIED
Greenwood J SlusarskiItalyElwin Sharvill NEGOTIATION
Ashley R DarakjyGermanyAsiya Javayant QUALIFIED
Kadeem G GillianRussiaAnna Fali UNQUALIFIED
Leja V DilliardCanadaAnna Fali PROPOSAL
Smith S SergiSpainStephen Shaw NEW
Jennifer O FigeroaAustraliaAsiya Javayant RENEWAL
Kadeem V KuskoFranceIvan Magalhaes PROPOSAL
Misaki V BologniaBrazilOnyama Limba NEGOTIATION
Jefferson K StensethJapanAnna Fali NEW
Jones H RutaJapanAmy Elsner NEW
Francesco C AmigonGermanyOnyama Limba RENEWAL
Johnson F IturbideJapanAmy Elsner NEGOTIATION
James R FollerItalyOnyama Limba UNQUALIFIED
Maria G PaprockiItalyIvan Magalhaes NEGOTIATION
Smith A StensethJapanOnyama Limba UNQUALIFIED
Deepesh S BologniaBrazilIvan Magalhaes QUALIFIED
Sinclair C CaldareraIndiaOnyama Limba NEW
Smith S NestleJapanIoni Bowcher UNQUALIFIED
Jeanfrancois F WaycottJapanAnna Fali NEW
Costa U DoeFranceAsiya Javayant QUALIFIED
Mayumi B DarakjyRussiaAsiya Javayant NEGOTIATION
Morrow G MaletCanadaIoni Bowcher NEW
Clifford G OstroskyIndiaAnna Fali QUALIFIED
Aika A WaycottUnited KingdomStephen Shaw UNQUALIFIED
Maisha J StockhamFranceAmy Elsner PROPOSAL
Aruna L PoquetteCanadaIvan Magalhaes UNQUALIFIED
Alejandro H AmigonRussiaAsiya Javayant RENEWAL
Greenwood W MaletAustraliaAsiya Javayant QUALIFIED
Wickens Z VenereRussiaXuxue Feng NEGOTIATION
Izzy G OldroydIndiaBernardo Dominic QUALIFIED
Jeanfrancois Q BologniaFranceAnna Fali NEW
Morrow J NestleIndiaIoni Bowcher NEGOTIATION
Francesco W PaprockiSpainAsiya Javayant NEW
Salvatore L RimArgentinaOnyama Limba QUALIFIED
Leja Y SchemmerCanadaAsiya Javayant NEW
Aditya N MaletRussiaXuxue Feng UNQUALIFIED
Salvatore J MaletAustraliaIoni Bowcher NEGOTIATION
Tony A DarakjyJapanBernardo Dominic NEW
James K StockhamItalyStephen Shaw UNQUALIFIED
Misaki C FerenczGermanyAmy Elsner NEW
Jeanfrancois F RoysterSpainAnna Fali UNQUALIFIED
Clifford H BriddickIndiaAsiya Javayant RENEWAL
Leon G SchemmerFranceXuxue Feng QUALIFIED
Greenwood U AmigonArgentinaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Jennifer C FlosiJapanBernardo Dominic UNQUALIFIED
Cody W RutaSpainIvan Magalhaes PROPOSAL
Ashley G RoysterFranceBernardo Dominic RENEWAL
Morrow V BologniaFranceStephen Shaw PROPOSAL
Deepesh F ButtBrazilXuxue Feng RENEWAL
Rodrigues I VenereJapanIvan Magalhaes RENEWAL
Greenwood F IturbideRussiaIoni Bowcher NEGOTIATION
Leon H MaletItalyAnna Fali NEGOTIATION
Leja D BowleyItalyOnyama Limba QUALIFIED
Francesco G MaletItalyAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley U NickaArgentina2024-04-13Printing Dimensions PROPOSAL59Onyama Limba
1001Antonio L MaletFrance2024-04-08Dorl, James J Esq PROPOSAL53Bernardo Dominic
1002Mayumi W MarrierIndia2024-04-17King, Christopher A Esq UNQUALIFIED78Stephen Shaw
1003Aruna X TollnerRussia2024-03-30Buckley Miller Wright PROPOSAL16Amy Elsner
1004Aditya C MacleadUnited Kingdom2024-04-04Morlong Associates QUALIFIED53Asiya Javayant
1005Jeanfrancois G ShinkoBrazil2024-04-18Chemel, James L Cpa NEGOTIATION52Xuxue Feng
1006Greenwood M DarakjyAustralia2024-04-21Chanay, Jeffrey A Esq NEW90Xuxue Feng
1007Aruna L PerinArgentina2024-04-05Buckley Miller Wright QUALIFIED45Bernardo Dominic
1008Ashley H StockhamGermany2024-04-10Truhlar And Truhlar Attys QUALIFIED78Elwin Sharvill
1009Cody S WieserSpain2024-04-13Truhlar And Truhlar Attys PROPOSAL97Elwin Sharvill
1010Sinclair Y OstroskyFrance2024-04-06Feiner Bros NEGOTIATION94Anna Fali
1011Jennifer N PaprockiFrance2024-04-03Chanay, Jeffrey A Esq NEGOTIATION58Ivan Magalhaes
1012Alejandro S MaletSpain2024-04-07Rangoni Of Florence NEGOTIATION58Stephen Shaw
1013Munro K SlusarskiIndia2024-04-23Feltz Printing Service NEW32Onyama Limba
1014Costa R StensethSpain2024-04-16Chanay, Jeffrey A Esq UNQUALIFIED27Ivan Magalhaes
1015Jefferson W CaldareraIndia2024-03-27Truhlar And Truhlar Attys PROPOSAL95Bernardo Dominic
1016Faith H RoysterAustralia2024-03-31Chemel, James L Cpa NEW86Ioni Bowcher
1017Darci R CampainArgentina2024-04-13Feiner Bros NEGOTIATION37Amy Elsner
1018Aditya C AmigonGermany2024-04-06Feltz Printing Service UNQUALIFIED39Elwin Sharvill
1019Antonio M FollerItaly2024-04-17Commercial Press NEGOTIATION18Anna Fali
1020Sinclair T InouyeArgentina2024-04-08Chapman, Ross E Esq RENEWAL45Amy Elsner
1021Sinclair S ButtJapan2024-04-05Chemel, James L Cpa RENEWAL68Ioni Bowcher
1022Murillo U RimBrazil2024-03-30Commercial Press QUALIFIED31Onyama Limba
1023Tony Q NestleSpain2024-04-20Morlong Associates NEGOTIATION10Elwin Sharvill
1024Johnson E VocelkaFrance2024-04-04Chapman, Ross E Esq PROPOSAL61Ivan Magalhaes
1025David T NickaBrazil2024-03-29Buckley Miller Wright NEGOTIATION25Onyama Limba
1026Francesco L SchemmerIndia2024-04-04Benton, John B Jr NEW70Ivan Magalhaes
1027Murillo O FigeroaArgentina2024-04-01Commercial Press RENEWAL23Amy Elsner
1028Tony L MacleadUnited Kingdom2024-04-12Feltz Printing Service NEW11Elwin Sharvill
1029Tony Q RutaUnited Kingdom2024-04-22Rousseaux, Michael Esq NEGOTIATION76Xuxue Feng
1030Juan H ChuiArgentina2024-03-28Buckley Miller Wright UNQUALIFIED15Stephen Shaw
1031Izzy M CaldareraUnited Kingdom2024-04-03Feiner Bros UNQUALIFIED88Stephen Shaw
1032Munro U AmigonGermany2024-03-27Morlong Associates NEW3Xuxue Feng
1033Jennifer Q RimUnited Kingdom2024-04-04Chemel, James L Cpa QUALIFIED38Amy Elsner
1034Misaki L MarrierJapan2024-03-27Feiner Bros PROPOSAL32Anna Fali
1035Faith E RoysterAustralia2024-04-10King, Christopher A Esq NEW70Xuxue Feng
1036Jeanfrancois I DoeIndia2024-04-02Commercial Press UNQUALIFIED54Asiya Javayant
1037Cody X ChuiFrance2024-04-10Feiner Bros PROPOSAL93Onyama Limba
1038Tony A OldroydAustralia2024-04-21Benton, John B Jr UNQUALIFIED80Anna Fali
1039Kaitlin W GauchoBrazil2024-04-10Rousseaux, Michael Esq NEW68Amy Elsner
1040Greenwood L OstroskyIndia2024-04-04Printing Dimensions QUALIFIED77Ioni Bowcher
1041Izzy R StockhamCanada2024-04-23Printing Dimensions NEW84Asiya Javayant
1042Darci C ChuiCanada2024-04-18Commercial Press UNQUALIFIED51Asiya Javayant
1043Mujtaba N VenereAustralia2024-04-21Dorl, James J Esq UNQUALIFIED93Onyama Limba
1044Ivar S PoquetteSpain2024-04-21Rousseaux, Michael Esq NEGOTIATION34Ivan Magalhaes
1045Jefferson F StensethRussia2024-04-23King, Christopher A Esq RENEWAL4Stephen Shaw
1046Stacey K WieserAustralia2024-04-19Benton, John B Jr PROPOSAL90Onyama Limba
1047Aruna Y FigeroaIndia2024-04-15Chapman, Ross E Esq UNQUALIFIED75Bernardo Dominic
1048Wickens Z OldroydUnited Kingdom2024-03-30Commercial Press PROPOSAL97Ioni Bowcher
1049Juan O InouyeFrance2024-04-24Feiner Bros QUALIFIED21Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Emily Z CaudyRussiaAnna Fali UNQUALIFIED
Munro K ShinkoBrazilIvan Magalhaes RENEWAL
Emily E MarrierSpainElwin Sharvill UNQUALIFIED
Faith V GarufiArgentinaAnna Fali PROPOSAL
Smith R MorascaArgentinaXuxue Feng NEGOTIATION
Silvio Y StensethRussiaStephen Shaw QUALIFIED
David R IturbideAustraliaIoni Bowcher UNQUALIFIED
Alejandro Z StockhamFranceElwin Sharvill RENEWAL
Munro E AlbaresGermanyAmy Elsner NEGOTIATION
Maria L RimBrazilAsiya Javayant QUALIFIED
Ricardo T NickaUnited KingdomAnna Fali PROPOSAL
Darci O RimBrazilIoni Bowcher UNQUALIFIED
Jones K RimSpainOnyama Limba NEW
Adams Y MacleadJapanIoni Bowcher RENEWAL
Greenwood W PaprockiAustraliaAmy Elsner PROPOSAL
Ricardo F GlickCanadaXuxue Feng QUALIFIED
Adams R TollnerItalyIvan Magalhaes RENEWAL
Sinclair T CampainArgentinaIoni Bowcher UNQUALIFIED
Ricardo V VenereArgentinaIoni Bowcher NEGOTIATION
Alejandro P RulapaughSpainAnna Fali UNQUALIFIED
Antonio R DilliardItalyIvan Magalhaes PROPOSAL
Isabel L RoysterIndiaIvan Magalhaes NEW
Jones G GillianAustraliaAnna Fali UNQUALIFIED
Tony R BologniaSpainIvan Magalhaes QUALIFIED
Darci U WieserFranceOnyama Limba NEGOTIATION
Sinclair Y ShinkoItalyIvan Magalhaes NEW
James P PoquetteRussiaIoni Bowcher PROPOSAL
Nicolas X StensethCanadaIoni Bowcher QUALIFIED
Stacey V OldroydAustraliaOnyama Limba PROPOSAL
Ricardo P DilliardJapanXuxue Feng NEGOTIATION
Ashley J DoeBrazilXuxue Feng RENEWAL
Tony C RimItalyStephen Shaw RENEWAL
Maria I ButtFranceAnna Fali PROPOSAL
Johnson O KolmetzBrazilIvan Magalhaes QUALIFIED
Jennifer U DarakjyBrazilBernardo Dominic NEGOTIATION
Johnson R WaycottArgentinaBernardo Dominic NEGOTIATION
Antonio N StockhamRussiaAnna Fali NEW
Smith B FollerRussiaBernardo Dominic UNQUALIFIED
Aruna K KolmetzBrazilAsiya Javayant NEW
Salvatore C ShinkoBrazilBernardo Dominic UNQUALIFIED
Kadeem R BowleyBrazilStephen Shaw QUALIFIED
Mayumi B SchemmerSpainXuxue Feng RENEWAL
Costa N SlusarskiItalyOnyama Limba RENEWAL
Tony P IturbideArgentinaElwin Sharvill UNQUALIFIED
Smith K SergiUnited KingdomAsiya Javayant PROPOSAL
Deepesh O SaylorsFranceAmy Elsner NEW
Chavez O WaycottRussiaIoni Bowcher RENEWAL
Kaitlin U GlickItalyOnyama Limba NEW
Jefferson Z AlbaresCanadaAnna Fali NEGOTIATION
Stacey V DilliardIndiaAsiya Javayant NEGOTIATION
Frozen Columns
Name
Munro B Poquette
Claire M Waycott
Misaki Z Paprocki
Mayumi P Iturbide
Maisha A Slusarski
Costa C Saylors
Stacey X Iturbide
Isabel X Briddick
Nicolas O Caudy
Silvio G Rim
Johnson O Ferencz
Tony X Schemmer
Morrow W Bolognia
Izzy Z Darakjy
Ivar X Flosi
James V Malet
James C Albares
Nicolas Y Malet
Jefferson K Kolmetz
Tony N Oldroyd
Morrow I Ruta
Aruna N Ruta
Julie Y Gillian
Aditya F Caudy
Maisha Q Perin
Aika U Ostrosky
Chavez L Poquette
Faith G Royster
Jeanfrancois H Vocelka
Wickens Q Whobrey
Sinclair Y Bowley
Alejandro M Darakjy
Wickens P Amigon
Arvin T Albares
David S Marrier
Isabel G Iturbide
James N Morasca
James Y Nestle
Deepesh G Foller
Rodrigues E Venere
Smith Q Perin
Leja J Darakjy
Adams P Amigon
Sinclair Y Albares
Murillo L Royster
Wickens Q Tollner
Arvin K Ferencz
Johnson A Stockham
Adams Y Kusko
Misaki A Bolognia
IdCountryDate
1000Germany2024-04-15
1001Italy2024-04-23
1002United Kingdom2024-04-20
1003India2024-03-29
1004Russia2024-04-05
1005Argentina2024-04-17
1006Canada2024-03-30
1007Italy2024-04-03
1008Italy2024-04-13
1009Japan2024-04-01
1010Russia2024-03-28
1011United Kingdom2024-04-11
1012Brazil2024-04-13
1013Russia2024-04-18
1014France2024-04-21
1015Argentina2024-04-07
1016India2024-04-24
1017Canada2024-03-28
1018Germany2024-04-05
1019Germany2024-04-06
1020France2024-04-25
1021India2024-04-12
1022Canada2024-03-28
1023Argentina2024-04-18
1024United Kingdom2024-04-24
1025Spain2024-04-19
1026Italy2024-04-13
1027Germany2024-04-02
1028Spain2024-04-15
1029Brazil2024-04-03
1030Spain2024-04-13
1031Brazil2024-04-17
1032Brazil2024-04-07
1033Argentina2024-04-16
1034Russia2024-04-04
1035Japan2024-04-07
1036Italy2024-04-24
1037India2024-04-18
1038Germany2024-04-23
1039Argentina2024-04-25
1040Brazil2024-04-18
1041Spain2024-04-18
1042Brazil2024-04-01
1043Spain2024-04-12
1044Japan2024-04-02
1045Russia2024-04-16
1046France2024-04-10
1047Brazil2024-04-01
1048Canada2024-04-12
1049Australia2024-04-18

On-Demand Data

NameIdCountryDate
Ivar W Flosi1000Japan2024-03-31
Aruna C Morasca1001Spain2024-04-23
Maria P Saylors1002Australia2024-03-29
Arvin L Rim1003Germany2024-04-17
Wickens V Iturbide1004Japan2024-03-27
Nicolas K Schemmer1005France2024-04-20
Faith Q Ruta1006Australia2024-04-23
Leon A Campain1007Italy2024-04-12
Misaki T Perin1008France2024-04-01
Silvio J Ruta1009France2024-04-14
Costa G Royster1010France2024-04-05
Leja V Figeroa1011Spain2024-04-23
Alejandro E Stenseth1012Australia2024-04-04
Faith H Caudy1013Spain2024-04-10
Ivar S Kusko1014Spain2024-04-05
Maria J Tollner1015Canada2024-04-19
Murillo W Albares1016United Kingdom2024-04-05
Aditya C Ruta1017United Kingdom2024-03-31
Deepesh N Nicka1018India2024-04-01
Maria T Iturbide1019Germany2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan X ShinkoFranceIvan Magalhaes NEGOTIATION
Jones X StensethAustraliaXuxue Feng RENEWAL
Maisha Z TollnerRussiaIvan Magalhaes PROPOSAL
Nicolas E OldroydBrazilAmy Elsner NEW
Aruna Z DilliardFranceIvan Magalhaes UNQUALIFIED
Darci I MaletIndiaXuxue Feng QUALIFIED
Kadeem R MarrierRussiaOnyama Limba PROPOSAL
Morrow D KolmetzCanadaAmy Elsner NEW
Murillo K RoysterCanadaAsiya Javayant UNQUALIFIED
Silvio K AmigonRussiaAsiya Javayant UNQUALIFIED
Clifford P NickaCanadaStephen Shaw NEGOTIATION
Leja Q BologniaJapanXuxue Feng PROPOSAL
Misaki P VenereFranceBernardo Dominic NEGOTIATION
Nicolas M KolmetzItalyIoni Bowcher NEW
Jones I RulapaughBrazilBernardo Dominic NEGOTIATION
Nicolas H FollerJapanElwin Sharvill NEGOTIATION
Julie X ButtJapanAsiya Javayant PROPOSAL
Arvin S OstroskyGermanyStephen Shaw PROPOSAL
Ricardo L RimItalyAsiya Javayant RENEWAL
Rodrigues L BriddickItalyStephen Shaw PROPOSAL
Silvio P SergiBrazilAmy Elsner UNQUALIFIED
David W FigeroaAustraliaXuxue Feng QUALIFIED
Ashley Z AlbaresSpainOnyama Limba QUALIFIED
Rodrigues D CaudyIndiaIoni Bowcher RENEWAL
Francesco N BowleyBrazilIvan Magalhaes PROPOSAL
Jeanfrancois B DoeBrazilAsiya Javayant NEW
Munro X DoeBrazilBernardo Dominic PROPOSAL
Morrow L ChuiIndiaElwin Sharvill QUALIFIED
Tony P MaletFranceIvan Magalhaes QUALIFIED
Francesco H FerenczRussiaXuxue Feng RENEWAL
Maria D BologniaIndiaBernardo Dominic NEW
Alejandro H OstroskyFranceAsiya Javayant QUALIFIED
Morrow G ShinkoItalyElwin Sharvill NEW
Octavia J MarrierItalyIoni Bowcher NEW
Francesco R InouyeJapanIoni Bowcher UNQUALIFIED
Greenwood Q GlickBrazilAsiya Javayant QUALIFIED
Francesco L TollnerArgentinaIoni Bowcher RENEWAL
Leon V CaldareraAustraliaElwin Sharvill NEGOTIATION
Silvio K OldroydFranceAsiya Javayant PROPOSAL
Rodrigues C WieserUnited KingdomStephen Shaw PROPOSAL

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