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
Mayumi H WaycottRussiaStephen Shaw NEGOTIATION
Smith V TollnerItalyIvan Magalhaes UNQUALIFIED
Smith X MaletFranceOnyama Limba RENEWAL
Munro E WieserItalyXuxue Feng NEGOTIATION
Deepesh Y DarakjyJapanBernardo Dominic QUALIFIED
Kaitlin Q GlickAustraliaIoni Bowcher RENEWAL
Ivar X MacleadArgentinaIvan Magalhaes NEW
Jones Y KolmetzAustraliaIoni Bowcher PROPOSAL
Clifford J RoysterBrazilBernardo Dominic NEW
Ashley K PerinCanadaIvan Magalhaes UNQUALIFIED
Salvatore H KolmetzJapanAmy Elsner RENEWAL
Emily L PoquetteItalyOnyama Limba UNQUALIFIED
Aruna G WieserSpainAmy Elsner PROPOSAL
Chavez Y MacleadSpainAmy Elsner RENEWAL
Greenwood T ButtRussiaBernardo Dominic RENEWAL
Darci E WaycottRussiaElwin Sharvill UNQUALIFIED
Arvin W DilliardSpainAnna Fali UNQUALIFIED
Ricardo I FlosiGermanyOnyama Limba RENEWAL
Stacey D AmigonArgentinaAnna Fali RENEWAL
Stacey Q InouyeSpainBernardo Dominic PROPOSAL
Darci F MaletItalyIvan Magalhaes QUALIFIED
Julie T WieserGermanyBernardo Dominic NEGOTIATION
Clifford N BriddickItalyXuxue Feng PROPOSAL
Arvin O RimFranceOnyama Limba RENEWAL
Maria G AmigonAustraliaAnna Fali UNQUALIFIED
Aruna S WaycottRussiaStephen Shaw NEGOTIATION
Rodrigues K PaprockiFranceStephen Shaw PROPOSAL
Jefferson D DarakjyJapanAsiya Javayant NEGOTIATION
Deepesh Y AmigonJapanIoni Bowcher NEGOTIATION
David A GauchoIndiaStephen Shaw PROPOSAL
Kaitlin N GlickFranceBernardo Dominic NEGOTIATION
Murillo U NickaBrazilIvan Magalhaes UNQUALIFIED
Maria B BologniaUnited KingdomBernardo Dominic NEGOTIATION
Nicolas X NestleCanadaIoni Bowcher UNQUALIFIED
Aruna W AlbaresJapanBernardo Dominic NEW
Juan A FigeroaItalyAmy Elsner NEW
Jeanfrancois A MaletSpainBernardo Dominic NEGOTIATION
Murillo E FollerRussiaElwin Sharvill NEW
Claire C FlosiItalyAmy Elsner NEW
Ashley J MarrierFranceAnna Fali NEW
Wickens Z FollerCanadaElwin Sharvill QUALIFIED
Julie B StensethRussiaXuxue Feng NEGOTIATION
Morrow I WhobreySpainIoni Bowcher PROPOSAL
Morrow C RimIndiaAmy Elsner NEGOTIATION
Aika D SergiSpainXuxue Feng NEW
Emily Q BologniaGermanyIoni Bowcher NEGOTIATION
Misaki Z ChuiFranceXuxue Feng PROPOSAL
Chavez Q DoeUnited KingdomElwin Sharvill QUALIFIED
Morrow C GlickItalyOnyama Limba NEGOTIATION
Juan O WieserArgentinaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily G RimBrazilElwin Sharvill RENEWAL
Ivar V TollnerIndiaIoni Bowcher NEW
Rodrigues L MacleadFranceOnyama Limba RENEWAL
Wickens Y SergiGermanyAmy Elsner NEW
Jennifer L InouyeJapanStephen Shaw UNQUALIFIED
Johnson S PoquetteFranceOnyama Limba PROPOSAL
Ivar V GlickJapanAnna Fali NEGOTIATION
Munro E KuskoUnited KingdomAnna Fali NEW
Johnson A RulapaughSpainOnyama Limba RENEWAL
Ivar B ShinkoJapanAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams K BriddickFrance2024-04-09Truhlar And Truhlar Attys QUALIFIED97Onyama Limba
1001Mujtaba M KuskoAustralia2024-03-28King, Christopher A Esq QUALIFIED64Asiya Javayant
1002Darci O GarufiAustralia2024-04-15Rousseaux, Michael Esq NEGOTIATION62Amy Elsner
1003Claire A RoysterFrance2024-04-07Commercial Press RENEWAL97Ioni Bowcher
1004Wickens R BologniaIndia2024-04-12King, Christopher A Esq PROPOSAL31Onyama Limba
1005Maisha Q OldroydItaly2024-03-19Chapman, Ross E Esq PROPOSAL6Anna Fali
1006Faith N RimGermany2024-04-14Feiner Bros UNQUALIFIED40Bernardo Dominic
1007Smith Z CaudyBrazil2024-03-31Rangoni Of Florence NEW19Ivan Magalhaes
1008Sinclair G VenereCanada2024-04-10Dorl, James J Esq NEGOTIATION33Onyama Limba
1009Wickens M WhobreyUnited Kingdom2024-04-02Chapman, Ross E Esq NEW54Amy Elsner
1010Clifford I RoysterBrazil2024-04-01King, Christopher A Esq RENEWAL15Ioni Bowcher
1011Murillo P SaylorsItaly2024-04-09Rousseaux, Michael Esq NEW44Onyama Limba
1012Isabel X BriddickUnited Kingdom2024-04-05Buckley Miller Wright UNQUALIFIED66Elwin Sharvill
1013Ricardo E PaprockiBrazil2024-03-24Rousseaux, Michael Esq UNQUALIFIED90Asiya Javayant
1014Francesco I GarufiRussia2024-03-20Feiner Bros QUALIFIED84Amy Elsner
1015Jennifer M AmigonArgentina2024-04-14Buckley Miller Wright QUALIFIED80Elwin Sharvill
1016Mujtaba T RutaFrance2024-04-11Feltz Printing Service PROPOSAL44Xuxue Feng
1017Kaitlin G MacleadCanada2024-03-23King, Christopher A Esq UNQUALIFIED52Asiya Javayant
1018Morrow W MorascaBrazil2024-03-31Rousseaux, Michael Esq PROPOSAL91Xuxue Feng
1019Silvio Q CaldareraAustralia2024-03-31Dorl, James J Esq NEGOTIATION7Stephen Shaw
1020Chavez E KuskoUnited Kingdom2024-04-14Rousseaux, Michael Esq RENEWAL81Amy Elsner
1021Leon F WieserItaly2024-03-26Chapman, Ross E Esq NEW58Elwin Sharvill
1022Aika W SlusarskiFrance2024-04-01Chanay, Jeffrey A Esq QUALIFIED44Anna Fali
1023Ashley F MacleadCanada2024-04-11Commercial Press QUALIFIED0Ivan Magalhaes
1024Costa F FigeroaGermany2024-03-22Feiner Bros QUALIFIED35Onyama Limba
1025Jefferson A NickaRussia2024-03-30Buckley Miller Wright NEW81Asiya Javayant
1026Jones K SergiCanada2024-04-16Chapman, Ross E Esq UNQUALIFIED28Stephen Shaw
1027Greenwood R ButtRussia2024-04-09Rousseaux, Michael Esq UNQUALIFIED45Bernardo Dominic
1028Darci M KolmetzArgentina2024-04-02Feiner Bros UNQUALIFIED98Xuxue Feng
1029Izzy X SlusarskiArgentina2024-03-21Rousseaux, Michael Esq NEW61Ivan Magalhaes
1030Jones S GlickGermany2024-03-19Chemel, James L Cpa RENEWAL35Amy Elsner
1031Ivar H OstroskyCanada2024-04-08Printing Dimensions NEW54Elwin Sharvill
1032Emily N VenereRussia2024-04-01Feltz Printing Service UNQUALIFIED49Elwin Sharvill
1033Ricardo E AmigonRussia2024-04-04Chemel, James L Cpa QUALIFIED78Ivan Magalhaes
1034Faith I OstroskyItaly2024-03-27Dorl, James J Esq NEW61Amy Elsner
1035Ricardo N ChuiJapan2024-04-11Dorl, James J Esq NEW37Anna Fali
1036Jefferson D NickaRussia2024-04-04Feltz Printing Service NEGOTIATION9Ivan Magalhaes
1037Ivar Q WaycottAustralia2024-03-25Benton, John B Jr RENEWAL19Ivan Magalhaes
1038Deepesh Z VenereSpain2024-04-04Truhlar And Truhlar Attys PROPOSAL21Xuxue Feng
1039Aika M DoeBrazil2024-03-23Chapman, Ross E Esq PROPOSAL83Asiya Javayant
1040Greenwood E StockhamJapan2024-04-01Rousseaux, Michael Esq PROPOSAL61Xuxue Feng
1041Faith Y NestleItaly2024-03-22Chemel, James L Cpa RENEWAL96Stephen Shaw
1042Morrow Y AlbaresFrance2024-04-08Commercial Press RENEWAL5Bernardo Dominic
1043Jennifer T WieserArgentina2024-03-30Truhlar And Truhlar Attys PROPOSAL0Stephen Shaw
1044Ricardo S PoquetteGermany2024-04-05Truhlar And Truhlar Attys NEW69Asiya Javayant
1045Cody A CaudyArgentina2024-04-11Morlong Associates PROPOSAL25Anna Fali
1046Munro N DilliardAustralia2024-03-22Commercial Press NEW42Bernardo Dominic
1047Nicolas C WaycottItaly2024-03-24Buckley Miller Wright UNQUALIFIED80Xuxue Feng
1048David M StensethItaly2024-04-02Chanay, Jeffrey A Esq UNQUALIFIED30Asiya Javayant
1049Antonio U BologniaItaly2024-04-11Feiner Bros NEGOTIATION31Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Ricardo Q BriddickRussiaIoni Bowcher RENEWAL
Antonio R KolmetzItalyOnyama Limba QUALIFIED
James J StockhamJapanAsiya Javayant QUALIFIED
Tony R FigeroaCanadaAsiya Javayant QUALIFIED
Arvin G GauchoSpainElwin Sharvill UNQUALIFIED
Tony Z StockhamUnited KingdomIoni Bowcher UNQUALIFIED
Sinclair K SaylorsFranceAnna Fali RENEWAL
Kadeem E CampainGermanyXuxue Feng NEGOTIATION
Chavez F RoysterJapanAsiya Javayant RENEWAL
David I TollnerUnited KingdomAsiya Javayant NEGOTIATION
Stacey R PoquetteSpainIoni Bowcher RENEWAL
Jones E CaldareraSpainAmy Elsner NEW
Costa K InouyeFranceAnna Fali UNQUALIFIED
Emily V TollnerUnited KingdomElwin Sharvill RENEWAL
Aditya X MaletIndiaIoni Bowcher UNQUALIFIED
Leon H BriddickIndiaAnna Fali NEGOTIATION
Jeanfrancois G AmigonItalyAnna Fali UNQUALIFIED
Chavez S OstroskySpainAmy Elsner PROPOSAL
Maria L MaletArgentinaAnna Fali PROPOSAL
Sinclair C VenereArgentinaBernardo Dominic NEW
James Q BologniaCanadaAmy Elsner NEW
Faith I VocelkaBrazilAsiya Javayant NEW
David U VocelkaItalyStephen Shaw UNQUALIFIED
Munro Y DarakjyIndiaOnyama Limba UNQUALIFIED
Wickens J NestleBrazilIvan Magalhaes NEGOTIATION
Stacey Q MacleadFranceBernardo Dominic RENEWAL
Cody O ShinkoArgentinaElwin Sharvill PROPOSAL
Murillo Y AmigonJapanOnyama Limba QUALIFIED
Maria J CaudyBrazilStephen Shaw NEGOTIATION
Chavez D AlbaresRussiaIoni Bowcher UNQUALIFIED
Deepesh Q WieserAustraliaElwin Sharvill PROPOSAL
Cody U SchemmerItalyElwin Sharvill PROPOSAL
Adams K OstroskySpainIoni Bowcher RENEWAL
Silvio N BowleyArgentinaBernardo Dominic NEGOTIATION
Kaitlin W PerinRussiaAsiya Javayant UNQUALIFIED
Ivar G BowleyJapanOnyama Limba NEGOTIATION
Jefferson B RutaRussiaIoni Bowcher RENEWAL
Adams S AmigonBrazilIvan Magalhaes PROPOSAL
Emily H SaylorsIndiaBernardo Dominic NEW
Jennifer Q OstroskyGermanyIoni Bowcher NEGOTIATION
Leon P CampainSpainAsiya Javayant PROPOSAL
Murillo C RoysterArgentinaAmy Elsner UNQUALIFIED
Tony Z SaylorsUnited KingdomIoni Bowcher NEW
Wickens S CaldareraJapanAmy Elsner NEGOTIATION
James E OstroskyJapanOnyama Limba PROPOSAL
Kaitlin R FigeroaJapanAsiya Javayant UNQUALIFIED
Wickens V StensethCanadaElwin Sharvill NEGOTIATION
Kadeem S CaudyUnited KingdomIvan Magalhaes QUALIFIED
Mujtaba K InouyeFranceIvan Magalhaes NEGOTIATION
Julie O DarakjyJapanStephen Shaw NEGOTIATION
Frozen Columns
Name
Wickens L Darakjy
Aditya U Campain
Kaitlin U Venere
Jefferson U Vocelka
Deepesh G Rim
Faith X Sergi
Alejandro R Doe
Octavia G Wieser
Aruna J Figeroa
Ricardo B Darakjy
Faith M Garufi
James W Dilliard
Juan W Sergi
Izzy Z Glick
Morrow L Perin
Juan U Iturbide
David Z Stockham
Leon N Maclead
Jeanfrancois E Figeroa
Mayumi W Albares
Cody U Royster
Isabel Z Rim
Stacey E Rulapaugh
Maria A Caudy
Jones U Tollner
Francesco Q Butt
Nicolas K Morasca
Greenwood U Nestle
Wickens T Gaucho
Emily S Stenseth
Morrow T Rim
Rodrigues Q Ruta
Rodrigues L Campain
Maisha E Slusarski
Emily I Nestle
Aditya T Morasca
Kaitlin Q Saylors
Munro E Schemmer
Kadeem U Gillian
Wickens O Venere
Sinclair Q Saylors
Leja R Darakjy
Faith G Venere
Smith T Dilliard
Jennifer C Stockham
Morrow A Perin
Izzy X Kusko
Ivar H Wieser
Isabel O Bolognia
Clifford R Nicka
IdCountryDate
1000Australia2024-03-24
1001Germany2024-03-26
1002Germany2024-04-10
1003Australia2024-04-14
1004India2024-03-20
1005India2024-04-13
1006Argentina2024-03-25
1007Spain2024-04-05
1008France2024-03-29
1009Canada2024-03-24
1010Italy2024-04-04
1011United Kingdom2024-04-09
1012United Kingdom2024-04-02
1013Japan2024-03-28
1014Argentina2024-04-08
1015United Kingdom2024-03-28
1016United Kingdom2024-03-24
1017Russia2024-04-08
1018Brazil2024-03-24
1019Germany2024-04-07
1020Japan2024-03-25
1021Australia2024-03-19
1022India2024-04-16
1023United Kingdom2024-04-01
1024Australia2024-03-25
1025Spain2024-04-04
1026Japan2024-03-20
1027Germany2024-03-25
1028Russia2024-03-24
1029France2024-04-12
1030Germany2024-03-30
1031India2024-04-08
1032Australia2024-04-09
1033Brazil2024-04-12
1034Canada2024-04-09
1035Brazil2024-04-04
1036Spain2024-03-19
1037India2024-04-03
1038Italy2024-04-03
1039Spain2024-04-17
1040India2024-04-14
1041Canada2024-04-16
1042Italy2024-04-03
1043Japan2024-03-26
1044Canada2024-03-22
1045Canada2024-03-28
1046Japan2024-03-19
1047Russia2024-04-06
1048Brazil2024-03-19
1049Japan2024-03-29

On-Demand Data

NameIdCountryDate
Aditya P Bowley1000Spain2024-03-19
Ricardo N Ferencz1001Italy2024-04-11
Emily K Stenseth1002Russia2024-04-04
James L Saylors1003Germany2024-03-22
Silvio A Iturbide1004France2024-04-09
Faith F Whobrey1005Russia2024-04-02
Claire V Gillian1006Italy2024-03-21
Aruna K Shinko1007United Kingdom2024-04-12
Julie I Venere1008France2024-04-13
Ivar B Iturbide1009Italy2024-03-24
Jennifer J Malet1010France2024-04-14
Morrow H Nicka1011Japan2024-03-26
Morrow N Flosi1012Italy2024-04-05
Emily H Ferencz1013Italy2024-04-10
Kaitlin W Perin1014Russia2024-03-22
Adams E Butt1015United Kingdom2024-04-11
Octavia K Malet1016France2024-04-12
Kaitlin Y Bowley1017India2024-04-14
Izzy S Royster1018Germany2024-03-26
Clifford H Ostrosky1019United Kingdom2024-03-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo C DilliardGermanyOnyama Limba PROPOSAL
Kaitlin C GlickRussiaElwin Sharvill NEGOTIATION
Ivar B SchemmerFranceIoni Bowcher PROPOSAL
Kadeem G WaycottAustraliaAmy Elsner RENEWAL
Jennifer E GillianArgentinaAmy Elsner UNQUALIFIED
Faith H AlbaresFranceElwin Sharvill UNQUALIFIED
Rodrigues S IturbideAustraliaIoni Bowcher NEGOTIATION
Darci T ButtFranceBernardo Dominic UNQUALIFIED
Smith K MorascaRussiaXuxue Feng PROPOSAL
Emily D GarufiGermanyIoni Bowcher QUALIFIED
Darci Y ShinkoIndiaBernardo Dominic NEW
Kaitlin G SaylorsBrazilAsiya Javayant NEW
Johnson X MorascaSpainIoni Bowcher UNQUALIFIED
Francesco D VenereGermanyAnna Fali NEGOTIATION
Tony T WhobreyGermanyXuxue Feng RENEWAL
Sinclair M MorascaJapanAmy Elsner PROPOSAL
Leja K NickaCanadaIoni Bowcher NEGOTIATION
Jefferson G BowleyRussiaStephen Shaw NEW
Juan L WhobreySpainIoni Bowcher UNQUALIFIED
Adams U InouyeIndiaStephen Shaw NEGOTIATION
Aditya L NestleIndiaElwin Sharvill UNQUALIFIED
Ashley I PaprockiCanadaBernardo Dominic NEW
Adams J MacleadCanadaIvan Magalhaes PROPOSAL
James S SergiRussiaBernardo Dominic UNQUALIFIED
Aditya O StockhamRussiaIvan Magalhaes PROPOSAL
Stacey X RimFranceIvan Magalhaes RENEWAL
Tony J SlusarskiFranceBernardo Dominic NEGOTIATION
David A StensethSpainIvan Magalhaes RENEWAL
Ricardo Y MaletItalyOnyama Limba NEGOTIATION
Izzy X CampainFranceAmy Elsner PROPOSAL
Costa C DilliardSpainBernardo Dominic RENEWAL
Costa S AlbaresBrazilIoni Bowcher PROPOSAL
Adams G BologniaCanadaStephen Shaw QUALIFIED
Francesco J MorascaUnited KingdomBernardo Dominic QUALIFIED
Darci Z PoquetteArgentinaAsiya Javayant PROPOSAL
Johnson O IturbideItalyElwin Sharvill PROPOSAL
Johnson T OstroskyUnited KingdomStephen Shaw PROPOSAL
Jefferson N PoquetteArgentinaElwin Sharvill NEGOTIATION
Costa N TollnerUnited KingdomAsiya Javayant NEW
Silvio J GauchoItalyAsiya Javayant 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>