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
David I DoeFranceIvan Magalhaes PROPOSAL
Antonio X CaldareraIndiaElwin Sharvill QUALIFIED
Emily K StensethJapanIvan Magalhaes NEGOTIATION
Ivar S GlickFranceXuxue Feng NEGOTIATION
Leon R SaylorsIndiaIoni Bowcher RENEWAL
Faith M VenereRussiaElwin Sharvill NEW
Chavez K MaletItalyIoni Bowcher NEGOTIATION
Cody O OstroskySpainOnyama Limba PROPOSAL
Nicolas M StockhamIndiaAsiya Javayant QUALIFIED
Tony F FlosiCanadaIvan Magalhaes UNQUALIFIED
Aditya Q RoysterGermanyAnna Fali UNQUALIFIED
Deepesh N MarrierRussiaXuxue Feng RENEWAL
Jennifer M OldroydArgentinaIvan Magalhaes UNQUALIFIED
Maria Z StensethGermanyAnna Fali RENEWAL
Arvin J GarufiCanadaAmy Elsner PROPOSAL
Leon W FlosiArgentinaAsiya Javayant PROPOSAL
Kaitlin H AmigonSpainXuxue Feng QUALIFIED
Smith D GillianUnited KingdomXuxue Feng NEW
Leja Y RutaIndiaIvan Magalhaes PROPOSAL
Jennifer T IturbideFranceStephen Shaw UNQUALIFIED
Sinclair P FerenczAustraliaAsiya Javayant PROPOSAL
Maisha S TollnerCanadaElwin Sharvill RENEWAL
Sinclair T GarufiAustraliaAsiya Javayant PROPOSAL
Izzy B FigeroaCanadaStephen Shaw NEW
Leon E CampainArgentinaIvan Magalhaes NEW
Jones Z RulapaughCanadaAmy Elsner NEW
Juan R OstroskyItalyStephen Shaw QUALIFIED
Mayumi L CampainUnited KingdomXuxue Feng PROPOSAL
Kadeem C WieserRussiaAsiya Javayant RENEWAL
Francesco R AlbaresAustraliaAsiya Javayant UNQUALIFIED
James T VocelkaJapanAsiya Javayant UNQUALIFIED
Morrow M ChuiUnited KingdomAsiya Javayant NEGOTIATION
Wickens E MarrierFranceXuxue Feng UNQUALIFIED
Tony F SchemmerArgentinaIvan Magalhaes UNQUALIFIED
Darci M SergiCanadaAsiya Javayant NEGOTIATION
Costa P WaycottUnited KingdomAmy Elsner QUALIFIED
Greenwood I MarrierCanadaOnyama Limba RENEWAL
Aruna J SaylorsBrazilAnna Fali NEGOTIATION
Rodrigues T PaprockiUnited KingdomOnyama Limba QUALIFIED
Darci H NestleJapanAsiya Javayant PROPOSAL
Smith A GauchoIndiaBernardo Dominic PROPOSAL
Jefferson R WaycottRussiaStephen Shaw NEW
Cody L GlickSpainXuxue Feng NEW
Costa B AlbaresRussiaElwin Sharvill PROPOSAL
Octavia N CaudyUnited KingdomIoni Bowcher NEW
Ricardo G DoeRussiaAnna Fali PROPOSAL
James C BologniaFranceAmy Elsner NEGOTIATION
Tony I CampainSpainAsiya Javayant NEW
Isabel I VocelkaRussiaAmy Elsner NEGOTIATION
Maria C CaldareraAustraliaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mujtaba Z StockhamAustraliaAnna Fali NEGOTIATION
Octavia O GarufiArgentinaAsiya Javayant QUALIFIED
Jefferson L VocelkaBrazilAmy Elsner NEGOTIATION
Mujtaba R WhobreySpainIvan Magalhaes RENEWAL
Emily F DilliardRussiaBernardo Dominic NEW
Rodrigues F MarrierRussiaAmy Elsner PROPOSAL
Antonio D PoquetteFranceAnna Fali RENEWAL
Nicolas T SergiSpainBernardo Dominic PROPOSAL
Antonio G SaylorsSpainElwin Sharvill NEGOTIATION
James W RimJapanAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon P OstroskyArgentina2024-04-04Rangoni Of Florence NEGOTIATION95Anna Fali
1001Deepesh Q PerinIndia2024-04-27Commercial Press RENEWAL42Amy Elsner
1002Costa W VocelkaUnited Kingdom2024-04-29Rangoni Of Florence RENEWAL80Onyama Limba
1003Aditya D ShinkoSpain2024-04-20Buckley Miller Wright NEGOTIATION79Elwin Sharvill
1004Deepesh Y CampainSpain2024-04-05Printing Dimensions NEGOTIATION29Anna Fali
1005Arvin D PaprockiCanada2024-04-23Buckley Miller Wright RENEWAL53Elwin Sharvill
1006Kaitlin G MaletIndia2024-04-11Commercial Press RENEWAL28Elwin Sharvill
1007Jeanfrancois E VenereItaly2024-04-24Chemel, James L Cpa UNQUALIFIED31Ivan Magalhaes
1008Jennifer P ShinkoCanada2024-04-03Benton, John B Jr NEW45Stephen Shaw
1009Ashley U SchemmerCanada2024-04-13Chanay, Jeffrey A Esq QUALIFIED57Onyama Limba
1010Octavia D RulapaughRussia2024-04-06Morlong Associates RENEWAL49Bernardo Dominic
1011Antonio Z PerinFrance2024-04-02Chapman, Ross E Esq QUALIFIED56Ivan Magalhaes
1012Kadeem A CaudyJapan2024-04-12Commercial Press PROPOSAL74Xuxue Feng
1013Nicolas N DoeSpain2024-04-06Rangoni Of Florence NEW50Ivan Magalhaes
1014Ricardo C WieserGermany2024-04-14Printing Dimensions NEGOTIATION32Amy Elsner
1015Mujtaba U CampainCanada2024-04-02Feiner Bros NEGOTIATION5Anna Fali
1016Octavia V NestleFrance2024-04-18Feltz Printing Service NEGOTIATION95Xuxue Feng
1017Salvatore E FigeroaCanada2024-04-25Commercial Press NEW16Anna Fali
1018Maisha O MacleadCanada2024-04-21King, Christopher A Esq QUALIFIED23Elwin Sharvill
1019Maria L DarakjyRussia2024-04-28Chapman, Ross E Esq RENEWAL31Bernardo Dominic
1020Isabel W GauchoItaly2024-04-11Rousseaux, Michael Esq UNQUALIFIED72Amy Elsner
1021Wickens G OldroydIndia2024-04-15Buckley Miller Wright QUALIFIED5Amy Elsner
1022Kaitlin P FlosiSpain2024-03-31Truhlar And Truhlar Attys PROPOSAL66Stephen Shaw
1023Claire J OldroydArgentina2024-04-01Chemel, James L Cpa QUALIFIED61Elwin Sharvill
1024Nicolas M TollnerUnited Kingdom2024-04-22Chapman, Ross E Esq NEW90Onyama Limba
1025Juan K WaycottRussia2024-04-20Morlong Associates PROPOSAL73Stephen Shaw
1026Murillo D StensethUnited Kingdom2024-04-22Rousseaux, Michael Esq PROPOSAL89Asiya Javayant
1027Darci Y GauchoIndia2024-04-22Benton, John B Jr NEW14Anna Fali
1028Costa P BologniaFrance2024-04-13Benton, John B Jr NEW34Bernardo Dominic
1029Morrow W SergiItaly2024-03-31Chapman, Ross E Esq NEW96Ivan Magalhaes
1030Izzy E WaycottItaly2024-04-27Buckley Miller Wright PROPOSAL19Asiya Javayant
1031Costa Z ButtGermany2024-04-03Truhlar And Truhlar Attys UNQUALIFIED55Bernardo Dominic
1032David I KuskoCanada2024-04-21Chanay, Jeffrey A Esq NEGOTIATION54Ivan Magalhaes
1033Arvin A FigeroaFrance2024-04-18Buckley Miller Wright PROPOSAL12Stephen Shaw
1034Ashley R MacleadCanada2024-04-12Benton, John B Jr NEW42Bernardo Dominic
1035Darci Q BriddickSpain2024-04-28Buckley Miller Wright RENEWAL30Asiya Javayant
1036Aditya S GauchoUnited Kingdom2024-04-14Feiner Bros RENEWAL37Xuxue Feng
1037Kaitlin X GlickFrance2024-04-09King, Christopher A Esq NEW73Stephen Shaw
1038Ivar F CaudyCanada2024-04-16Chemel, James L Cpa RENEWAL2Anna Fali
1039Julie X ButtArgentina2024-04-04Chapman, Ross E Esq NEGOTIATION39Bernardo Dominic
1040Kaitlin C GauchoUnited Kingdom2024-04-06Truhlar And Truhlar Attys RENEWAL40Anna Fali
1041Alejandro O RimCanada2024-04-25Dorl, James J Esq RENEWAL99Stephen Shaw
1042Costa T SlusarskiFrance2024-04-29Commercial Press UNQUALIFIED1Ivan Magalhaes
1043Smith V GillianSpain2024-04-09Rangoni Of Florence NEGOTIATION23Ioni Bowcher
1044Deepesh D BowleyBrazil2024-04-26Commercial Press QUALIFIED64Ioni Bowcher
1045Isabel V AmigonUnited Kingdom2024-04-27Printing Dimensions PROPOSAL18Anna Fali
1046Ivar W WaycottIndia2024-04-23Commercial Press NEGOTIATION29Ivan Magalhaes
1047Mayumi D BologniaFrance2024-04-19Dorl, James J Esq UNQUALIFIED10Anna Fali
1048Kadeem Q VenereItaly2024-04-05King, Christopher A Esq RENEWAL2Anna Fali
1049Johnson Q AlbaresGermany2024-04-13Dorl, James J Esq PROPOSAL0Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jones C DarakjyIndiaXuxue Feng PROPOSAL
Clifford A MaletRussiaStephen Shaw UNQUALIFIED
Julie K SlusarskiGermanyIvan Magalhaes QUALIFIED
Murillo Q StensethGermanyOnyama Limba RENEWAL
Maria V DilliardAustraliaIoni Bowcher RENEWAL
Ashley Z PerinAustraliaElwin Sharvill NEW
Claire F KuskoBrazilAsiya Javayant NEW
Izzy U DilliardUnited KingdomIoni Bowcher RENEWAL
Jeanfrancois M FollerArgentinaOnyama Limba NEW
Wickens Z MarrierFranceBernardo Dominic NEGOTIATION
Isabel H StensethArgentinaXuxue Feng QUALIFIED
Alejandro F SlusarskiArgentinaAmy Elsner NEW
Maisha H KolmetzRussiaAsiya Javayant PROPOSAL
Francesco P OstroskyAustraliaAsiya Javayant UNQUALIFIED
Izzy F WhobreyArgentinaAnna Fali PROPOSAL
Tony C ChuiArgentinaXuxue Feng NEGOTIATION
Greenwood N DoeBrazilOnyama Limba RENEWAL
Ashley M PoquetteFranceXuxue Feng NEW
David H NickaIndiaStephen Shaw RENEWAL
Emily S IturbideArgentinaAmy Elsner UNQUALIFIED
Wickens L NestleSpainIoni Bowcher RENEWAL
Jeanfrancois W WieserSpainIvan Magalhaes UNQUALIFIED
Cody R GauchoItalyIvan Magalhaes NEW
Nicolas K BologniaGermanyOnyama Limba NEGOTIATION
Chavez C AlbaresCanadaIoni Bowcher NEGOTIATION
Misaki I OldroydArgentinaBernardo Dominic NEW
Johnson R OldroydUnited KingdomBernardo Dominic PROPOSAL
Rodrigues V MaletJapanStephen Shaw NEGOTIATION
Julie S InouyeJapanAsiya Javayant UNQUALIFIED
Isabel Q MorascaRussiaBernardo Dominic QUALIFIED
Kadeem I RulapaughGermanyStephen Shaw QUALIFIED
Ashley O MaletFranceIoni Bowcher QUALIFIED
Sinclair H FerenczBrazilElwin Sharvill QUALIFIED
Munro P TollnerGermanyStephen Shaw PROPOSAL
Jefferson F AlbaresSpainBernardo Dominic NEW
Nicolas J NestleUnited KingdomStephen Shaw QUALIFIED
Aditya B DilliardJapanElwin Sharvill NEGOTIATION
Claire P StensethIndiaAmy Elsner PROPOSAL
Faith H IturbideUnited KingdomIoni Bowcher RENEWAL
Salvatore U GauchoItalyAnna Fali NEW
Kaitlin O GlickFranceStephen Shaw PROPOSAL
Ivar I GlickArgentinaElwin Sharvill RENEWAL
Murillo Z BriddickGermanyBernardo Dominic UNQUALIFIED
Arvin S MaletSpainBernardo Dominic UNQUALIFIED
David R MaletSpainXuxue Feng PROPOSAL
Salvatore A BologniaUnited KingdomIoni Bowcher NEW
Smith H ChuiGermanyElwin Sharvill RENEWAL
Aruna Q MacleadRussiaAmy Elsner RENEWAL
Ashley I SlusarskiFranceAnna Fali RENEWAL
Munro M BriddickGermanyOnyama Limba NEGOTIATION
Frozen Columns
Name
Costa G Schemmer
Ashley G Slusarski
Ricardo B Garufi
Aruna W Wieser
Wickens I Kusko
Antonio G Sergi
Nicolas T Tollner
Murillo J Chui
Octavia H Amigon
Silvio R Whobrey
Deepesh K Doe
Antonio N Wieser
Juan X Inouye
David J Gillian
Sinclair I Iturbide
Aruna W Bolognia
Octavia P Inouye
Ricardo M Saylors
Kaitlin Q Schemmer
Leja B Whobrey
Kaitlin W Waycott
Silvio B Nicka
Cody G Iturbide
Claire N Kolmetz
David I Amigon
Antonio N Foller
Cody W Albares
Morrow T Albares
Smith Q Bowley
Salvatore J Bolognia
Ricardo P Darakjy
Maria C Rulapaugh
Costa A Ruta
Jeanfrancois G Malet
Nicolas W Doe
Jeanfrancois P Maclead
Aruna B Paprocki
Jefferson Q Stockham
Kaitlin O Royster
Munro L Gaucho
Ashley S Stockham
Costa B Inouye
Costa C Stenseth
James P Foller
Clifford H Gaucho
Jennifer H Oldroyd
Mujtaba I Poquette
Wickens F Rim
Francesco N Caldarera
Alejandro V Ferencz
IdCountryDate
1000India2024-04-27
1001Japan2024-04-02
1002Russia2024-04-01
1003Brazil2024-04-03
1004United Kingdom2024-04-14
1005India2024-04-10
1006Russia2024-04-01
1007India2024-04-08
1008Argentina2024-04-02
1009United Kingdom2024-04-23
1010Italy2024-04-01
1011Brazil2024-04-25
1012Russia2024-04-13
1013Canada2024-04-13
1014Russia2024-04-09
1015Italy2024-04-18
1016United Kingdom2024-04-17
1017Canada2024-04-24
1018Spain2024-04-11
1019Canada2024-04-17
1020Brazil2024-04-21
1021France2024-04-13
1022Australia2024-04-23
1023Japan2024-04-27
1024Canada2024-04-07
1025Australia2024-04-14
1026India2024-04-14
1027Japan2024-04-02
1028Argentina2024-04-06
1029Japan2024-04-09
1030Japan2024-04-01
1031Spain2024-04-24
1032Russia2024-04-28
1033France2024-04-15
1034Canada2024-04-10
1035United Kingdom2024-04-03
1036Germany2024-04-23
1037France2024-04-09
1038Spain2024-04-21
1039France2024-04-08
1040Brazil2024-04-29
1041Russia2024-04-05
1042India2024-04-02
1043Italy2024-04-26
1044India2024-04-05
1045Australia2024-04-25
1046Italy2024-04-26
1047Japan2024-04-10
1048India2024-04-22
1049Germany2024-04-22

On-Demand Data

NameIdCountryDate
Sinclair M Whobrey1000Spain2024-04-22
Murillo T Maclead1001Japan2024-04-02
Mayumi O Caldarera1002Argentina2024-04-02
Mayumi S Campain1003Spain2024-04-23
Jennifer W Wieser1004Japan2024-04-23
Isabel J Poquette1005Spain2024-04-26
Isabel W Darakjy1006Argentina2024-04-23
Greenwood C Bolognia1007India2024-04-27
Clifford K Kolmetz1008Canada2024-04-07
Antonio Q Ruta1009France2024-04-28
Rodrigues G Sergi1010France2024-04-27
Jefferson Y Schemmer1011Canada2024-04-29
Mayumi S Gaucho1012Argentina2024-04-15
Cody F Gaucho1013Russia2024-04-07
Silvio G Bowley1014United Kingdom2024-04-02
Kaitlin F Nicka1015Italy2024-04-23
Mujtaba O Amigon1016India2024-04-24
Mujtaba Z Iturbide1017Spain2024-04-01
Jennifer V Wieser1018Argentina2024-04-26
Maisha L Saylors1019Australia2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jeanfrancois Y NickaRussiaIvan Magalhaes PROPOSAL
Aditya H PerinItalyBernardo Dominic QUALIFIED
David E StockhamSpainBernardo Dominic QUALIFIED
Smith F ButtUnited KingdomElwin Sharvill QUALIFIED
Chavez T TollnerGermanyIoni Bowcher PROPOSAL
Antonio M InouyeAustraliaIoni Bowcher RENEWAL
Aika K SchemmerAustraliaAmy Elsner NEGOTIATION
Arvin G AmigonCanadaStephen Shaw NEGOTIATION
Leon B StensethUnited KingdomStephen Shaw NEGOTIATION
Cody U ButtAustraliaOnyama Limba NEGOTIATION
Stacey Z RulapaughItalyBernardo Dominic QUALIFIED
Leon S StensethAustraliaStephen Shaw NEW
Kaitlin G KuskoRussiaXuxue Feng NEW
Aruna X RoysterUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy V RimRussiaAnna Fali RENEWAL
Jefferson A AmigonCanadaXuxue Feng UNQUALIFIED
Costa T PoquetteArgentinaBernardo Dominic NEW
James U NestleBrazilAsiya Javayant NEW
Jones W SergiItalyAmy Elsner UNQUALIFIED
Tony F PaprockiArgentinaIvan Magalhaes PROPOSAL
Ivar S CaudyGermanyXuxue Feng RENEWAL
Ashley F NestleAustraliaXuxue Feng QUALIFIED
Ashley C GillianFranceBernardo Dominic RENEWAL
Smith V NestleItalyIvan Magalhaes NEGOTIATION
Costa C TollnerAustraliaIoni Bowcher RENEWAL
Stacey J SlusarskiIndiaOnyama Limba QUALIFIED
Silvio O FollerFranceIoni Bowcher UNQUALIFIED
Maria T MorascaArgentinaAmy Elsner RENEWAL
Jennifer U BriddickRussiaAsiya Javayant UNQUALIFIED
Leon R BowleyUnited KingdomXuxue Feng RENEWAL
Aruna S AlbaresGermanyXuxue Feng PROPOSAL
Greenwood R AmigonGermanyAsiya Javayant PROPOSAL
Ivar X GarufiRussiaXuxue Feng RENEWAL
Juan N DoeFranceAsiya Javayant QUALIFIED
Ivar O ButtIndiaIvan Magalhaes NEGOTIATION
Tony T CaudyArgentinaAsiya Javayant RENEWAL
Kadeem E DilliardSpainAmy Elsner QUALIFIED
Smith T PerinAustraliaElwin Sharvill NEGOTIATION
Clifford G StockhamFranceBernardo Dominic PROPOSAL
Morrow Q MarrierFranceAmy Elsner RENEWAL

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