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
Izzy K KolmetzGermanyIvan Magalhaes NEGOTIATION
Izzy A SergiGermanyAnna Fali UNQUALIFIED
Emily W BologniaFranceAmy Elsner UNQUALIFIED
Costa W DilliardUnited KingdomOnyama Limba RENEWAL
Maisha Y StockhamSpainElwin Sharvill NEW
Rodrigues S DarakjySpainIvan Magalhaes PROPOSAL
Ricardo Y DarakjySpainIoni Bowcher NEGOTIATION
Aditya A GillianAustraliaStephen Shaw NEGOTIATION
Murillo L StensethArgentinaAmy Elsner NEW
Maria Z NestleUnited KingdomXuxue Feng UNQUALIFIED
Murillo C NestleFranceAmy Elsner UNQUALIFIED
David Q ChuiBrazilAsiya Javayant RENEWAL
Isabel M ShinkoItalyStephen Shaw NEGOTIATION
Claire J SchemmerRussiaIvan Magalhaes NEW
Maria Q FerenczArgentinaBernardo Dominic QUALIFIED
Kadeem X NestleBrazilIvan Magalhaes PROPOSAL
Costa N AmigonItalyAnna Fali NEW
Darci I VenereFranceElwin Sharvill QUALIFIED
Clifford K OldroydItalyBernardo Dominic NEGOTIATION
Faith P AmigonItalyStephen Shaw PROPOSAL
Stacey C StensethAustraliaAmy Elsner RENEWAL
Leon F IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Cody V CampainBrazilBernardo Dominic NEW
Cody D RoysterUnited KingdomAmy Elsner PROPOSAL
Octavia Q CaudyCanadaXuxue Feng UNQUALIFIED
Arvin L ShinkoSpainStephen Shaw NEGOTIATION
Jefferson Z WieserFranceXuxue Feng RENEWAL
Jennifer E ButtArgentinaBernardo Dominic NEW
Claire L CaldareraRussiaIoni Bowcher NEGOTIATION
Antonio A WieserItalyElwin Sharvill NEW
Juan G RutaBrazilOnyama Limba UNQUALIFIED
Smith O DilliardFranceAnna Fali NEGOTIATION
Greenwood I GlickUnited KingdomXuxue Feng RENEWAL
Arvin U MarrierGermanyElwin Sharvill QUALIFIED
Deepesh E GarufiArgentinaBernardo Dominic RENEWAL
Nicolas J DilliardRussiaAsiya Javayant NEW
Darci I KuskoUnited KingdomOnyama Limba QUALIFIED
Wickens L ButtAustraliaAmy Elsner RENEWAL
Clifford K CampainRussiaIvan Magalhaes NEW
Morrow W CaldareraArgentinaOnyama Limba PROPOSAL
Aruna U RutaArgentinaBernardo Dominic RENEWAL
Julie K GarufiFranceAnna Fali NEW
Ricardo N WieserFranceAsiya Javayant UNQUALIFIED
Ricardo Z WhobreySpainIvan Magalhaes UNQUALIFIED
Tony S VenereSpainAsiya Javayant UNQUALIFIED
Ricardo V DoeBrazilXuxue Feng NEW
Jefferson N WieserArgentinaIoni Bowcher RENEWAL
Jefferson V KolmetzFranceXuxue Feng QUALIFIED
Isabel G AlbaresFranceAnna Fali NEW
Salvatore B KolmetzJapanBernardo Dominic PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Wickens Q MacleadSpainElwin Sharvill RENEWAL
Darci Z VenereItalyAnna Fali UNQUALIFIED
Deepesh A RutaArgentinaIoni Bowcher NEW
Aika H RutaUnited KingdomAmy Elsner QUALIFIED
Aika M ChuiArgentinaBernardo Dominic NEGOTIATION
Tony L RoysterRussiaAnna Fali UNQUALIFIED
Darci O NickaItalyXuxue Feng NEGOTIATION
David K RulapaughIndiaStephen Shaw NEGOTIATION
Morrow V RimAustraliaIvan Magalhaes NEW
Isabel Q PoquetteArgentinaXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha B TollnerUnited Kingdom2024-04-21Buckley Miller Wright NEGOTIATION2Amy Elsner
1001Jefferson A GlickArgentina2024-03-25Chanay, Jeffrey A Esq UNQUALIFIED79Asiya Javayant
1002Isabel Q RimAustralia2024-04-21Printing Dimensions NEW60Amy Elsner
1003Aika I RulapaughArgentina2024-03-26Printing Dimensions NEGOTIATION42Anna Fali
1004Emily D NestleSpain2024-04-16Chapman, Ross E Esq RENEWAL81Ivan Magalhaes
1005Arvin E DoeIndia2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED96Anna Fali
1006Claire K NestleCanada2024-03-27Chanay, Jeffrey A Esq PROPOSAL97Ioni Bowcher
1007Jones C OldroydItaly2024-04-19Commercial Press RENEWAL75Asiya Javayant
1008Isabel Y WaycottJapan2024-04-13Commercial Press NEW41Onyama Limba
1009James Y PoquetteIndia2024-04-21Feiner Bros QUALIFIED50Onyama Limba
1010Tony J ButtCanada2024-04-20Chemel, James L Cpa RENEWAL76Xuxue Feng
1011Jeanfrancois O OldroydCanada2024-04-17Truhlar And Truhlar Attys NEGOTIATION80Ivan Magalhaes
1012Tony I FollerItaly2024-04-10Chanay, Jeffrey A Esq NEW78Anna Fali
1013Jones S PoquetteGermany2024-03-25Chapman, Ross E Esq PROPOSAL79Stephen Shaw
1014Smith G MacleadCanada2024-04-09Chemel, James L Cpa QUALIFIED91Bernardo Dominic
1015Juan W DilliardBrazil2024-04-06Commercial Press NEGOTIATION13Ivan Magalhaes
1016Emily I GillianIndia2024-03-29Benton, John B Jr QUALIFIED39Anna Fali
1017Claire H MaletIndia2024-04-02Rousseaux, Michael Esq QUALIFIED18Onyama Limba
1018Darci Z FlosiItaly2024-04-04Feiner Bros NEW98Elwin Sharvill
1019Morrow L WieserIndia2024-04-01Chanay, Jeffrey A Esq RENEWAL46Elwin Sharvill
1020Faith P MacleadRussia2024-04-08Rangoni Of Florence RENEWAL75Onyama Limba
1021Jeanfrancois A OstroskyAustralia2024-04-06Chemel, James L Cpa PROPOSAL95Ivan Magalhaes
1022Jefferson E WieserArgentina2024-04-16Rousseaux, Michael Esq QUALIFIED79Asiya Javayant
1023Leja F VenereCanada2024-04-12Chanay, Jeffrey A Esq PROPOSAL89Anna Fali
1024Chavez R MacleadGermany2024-04-02Feiner Bros NEW15Ivan Magalhaes
1025Munro C KuskoAustralia2024-04-07Feltz Printing Service NEW5Xuxue Feng
1026Sinclair L DarakjyGermany2024-04-20Chapman, Ross E Esq QUALIFIED89Elwin Sharvill
1027Ivar I TollnerRussia2024-04-05Commercial Press NEW60Stephen Shaw
1028Smith W GillianBrazil2024-04-16Chemel, James L Cpa UNQUALIFIED29Bernardo Dominic
1029Murillo C RulapaughItaly2024-04-22Morlong Associates RENEWAL79Amy Elsner
1030Mujtaba E RimUnited Kingdom2024-04-03Commercial Press PROPOSAL84Onyama Limba
1031Antonio O OstroskyFrance2024-03-24Rousseaux, Michael Esq NEGOTIATION9Stephen Shaw
1032Mujtaba V GlickIndia2024-04-15Chemel, James L Cpa PROPOSAL54Ioni Bowcher
1033Jennifer T MaletGermany2024-03-30Morlong Associates NEGOTIATION52Xuxue Feng
1034Costa W OldroydArgentina2024-04-08Truhlar And Truhlar Attys NEW14Asiya Javayant
1035Adams M DilliardCanada2024-04-10Rangoni Of Florence QUALIFIED55Elwin Sharvill
1036Alejandro T PoquetteIndia2024-03-24Feiner Bros RENEWAL76Ivan Magalhaes
1037Cody S PerinIndia2024-04-17Rousseaux, Michael Esq NEGOTIATION41Xuxue Feng
1038Ivar S MarrierRussia2024-04-16Rousseaux, Michael Esq NEGOTIATION28Xuxue Feng
1039Darci P KuskoGermany2024-04-12Chemel, James L Cpa NEGOTIATION5Ioni Bowcher
1040Munro D CaldareraAustralia2024-03-26Rousseaux, Michael Esq NEW28Asiya Javayant
1041Juan D WaycottFrance2024-03-24Commercial Press PROPOSAL65Bernardo Dominic
1042Ashley P StockhamCanada2024-03-27Rousseaux, Michael Esq PROPOSAL30Stephen Shaw
1043Sinclair D PaprockiFrance2024-03-25Chanay, Jeffrey A Esq QUALIFIED49Ivan Magalhaes
1044Morrow W WhobreyIndia2024-03-28Chapman, Ross E Esq UNQUALIFIED21Bernardo Dominic
1045Aika O MacleadAustralia2024-04-01Rousseaux, Michael Esq QUALIFIED74Ivan Magalhaes
1046Kadeem M CampainSpain2024-03-31Truhlar And Truhlar Attys NEW73Asiya Javayant
1047Darci M MaletCanada2024-04-21Commercial Press NEW42Ivan Magalhaes
1048Isabel Y IturbideUnited Kingdom2024-04-17King, Christopher A Esq UNQUALIFIED85Amy Elsner
1049Stacey A RulapaughArgentina2024-04-05Buckley Miller Wright NEGOTIATION51Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ashley M MorascaSpainOnyama Limba PROPOSAL
Johnson I IturbideJapanAnna Fali UNQUALIFIED
Jefferson F NestleFranceIoni Bowcher NEW
Munro J GauchoGermanyXuxue Feng RENEWAL
Ricardo D RimFranceStephen Shaw NEGOTIATION
Murillo W SergiJapanStephen Shaw NEGOTIATION
Greenwood S SergiBrazilAsiya Javayant PROPOSAL
Stacey B RulapaughRussiaIoni Bowcher UNQUALIFIED
Silvio K FlosiIndiaAmy Elsner NEGOTIATION
Ashley R StensethBrazilOnyama Limba UNQUALIFIED
Mayumi N SchemmerGermanyAmy Elsner QUALIFIED
Aditya A SaylorsRussiaIoni Bowcher RENEWAL
Arvin B FollerBrazilOnyama Limba NEGOTIATION
Salvatore O FerenczCanadaAnna Fali RENEWAL
Johnson I BologniaArgentinaIoni Bowcher NEGOTIATION
Misaki X ButtSpainIvan Magalhaes NEGOTIATION
Murillo S GarufiItalyAnna Fali NEW
Salvatore C SlusarskiSpainAnna Fali UNQUALIFIED
Izzy F RoysterGermanyAsiya Javayant NEW
Francesco W AmigonGermanyIvan Magalhaes QUALIFIED
Cody C WaycottSpainElwin Sharvill UNQUALIFIED
Smith H FigeroaSpainAnna Fali NEGOTIATION
Faith B GillianJapanXuxue Feng UNQUALIFIED
Octavia M GillianAustraliaIvan Magalhaes NEGOTIATION
Morrow B MaletUnited KingdomStephen Shaw RENEWAL
Leja J FollerGermanyElwin Sharvill QUALIFIED
Adams H RimUnited KingdomXuxue Feng PROPOSAL
Aditya E GillianUnited KingdomAmy Elsner PROPOSAL
Aditya E DoeGermanyStephen Shaw RENEWAL
Morrow B FlosiCanadaStephen Shaw QUALIFIED
Morrow T PaprockiBrazilElwin Sharvill NEW
Clifford F ShinkoJapanAsiya Javayant QUALIFIED
Maisha F ButtCanadaAmy Elsner UNQUALIFIED
Salvatore G OstroskyGermanyStephen Shaw QUALIFIED
Octavia U StockhamAustraliaIoni Bowcher NEGOTIATION
Munro W CaudySpainOnyama Limba NEW
Nicolas B BologniaJapanAsiya Javayant PROPOSAL
Silvio W WhobreyJapanElwin Sharvill UNQUALIFIED
Costa L DilliardBrazilAnna Fali NEW
Costa I KuskoAustraliaStephen Shaw NEW
Clifford D MacleadAustraliaAmy Elsner PROPOSAL
Sinclair Q BriddickCanadaAmy Elsner QUALIFIED
Octavia E GauchoBrazilIvan Magalhaes QUALIFIED
Cody I FerenczSpainElwin Sharvill RENEWAL
Ricardo T GillianSpainAsiya Javayant RENEWAL
Jones R AlbaresBrazilAsiya Javayant UNQUALIFIED
Murillo O OstroskyFranceStephen Shaw NEGOTIATION
Kaitlin P TollnerItalyAnna Fali QUALIFIED
Cody K RutaItalyBernardo Dominic NEW
Smith I DarakjyArgentinaStephen Shaw NEGOTIATION
Frozen Columns
Name
Faith S Malet
Aruna H Foller
Octavia N Sergi
James P Oldroyd
Octavia L Gillian
Greenwood Q Malet
Salvatore Q Nicka
Misaki J Ostrosky
Johnson R Paprocki
Leon D Royster
Clifford Z Iturbide
Ashley O Sergi
Aika F Campain
Greenwood L Kusko
David L Caudy
Salvatore L Sergi
Ivar F Briddick
Ashley L Waycott
Francesco H Venere
Kadeem Z Gillian
Leja M Morasca
Izzy R Malet
Jones T Shinko
Ricardo Z Stockham
Antonio S Perin
Rodrigues M Waycott
James U Ferencz
Emily R Dilliard
Sinclair R Waycott
Octavia X Chui
Izzy R Caudy
Alejandro T Stockham
Stacey A Whobrey
Johnson F Doe
Adams J Butt
David P Caldarera
Chavez Q Marrier
Kaitlin H Malet
Greenwood H Wieser
Isabel T Schemmer
Francesco C Kolmetz
Aruna T Nicka
Antonio E Flosi
Greenwood T Paprocki
Aditya N Whobrey
Silvio D Gaucho
Greenwood H Glick
James X Darakjy
Maria H Oldroyd
Ashley I Ferencz
IdCountryDate
1000Canada2024-03-30
1001Spain2024-04-09
1002Brazil2024-04-18
1003Australia2024-04-21
1004Spain2024-04-12
1005Brazil2024-04-14
1006Spain2024-04-19
1007Argentina2024-04-10
1008Germany2024-04-03
1009Brazil2024-04-10
1010Australia2024-03-24
1011Japan2024-04-10
1012India2024-04-10
1013Spain2024-04-04
1014France2024-04-02
1015Italy2024-04-06
1016India2024-04-10
1017Brazil2024-04-20
1018Italy2024-04-03
1019Argentina2024-04-13
1020Australia2024-04-15
1021Germany2024-03-31
1022Australia2024-04-22
1023Australia2024-04-18
1024Russia2024-04-17
1025Italy2024-03-30
1026Australia2024-03-26
1027Japan2024-04-06
1028Japan2024-04-11
1029United Kingdom2024-04-20
1030Australia2024-04-18
1031Italy2024-04-08
1032Germany2024-03-30
1033Spain2024-04-16
1034Japan2024-04-17
1035Spain2024-04-21
1036Russia2024-03-27
1037Argentina2024-03-29
1038Italy2024-04-15
1039Japan2024-03-26
1040Spain2024-04-08
1041India2024-04-11
1042Germany2024-04-16
1043India2024-04-02
1044Australia2024-04-10
1045Italy2024-04-17
1046Canada2024-04-10
1047Japan2024-03-29
1048United Kingdom2024-03-25
1049Germany2024-04-19

On-Demand Data

NameIdCountryDate
Sinclair C Chui1000United Kingdom2024-03-28
Cody B Marrier1001Spain2024-04-18
Wickens S Figeroa1002United Kingdom2024-04-19
Ashley P Gaucho1003Australia2024-04-12
Aika J Caldarera1004France2024-03-31
Maria C Royster1005Argentina2024-04-13
Arvin O Caldarera1006Russia2024-04-14
James S Maclead1007Brazil2024-04-01
Isabel U Malet1008Australia2024-04-09
Murillo Q Briddick1009Australia2024-04-04
Rodrigues K Sergi1010Brazil2024-04-04
Aika D Stockham1011Canada2024-04-10
Faith R Albares1012Australia2024-04-19
Leon B Ostrosky1013Argentina2024-04-06
Kadeem B Gillian1014Canada2024-04-05
Adams B Malet1015Argentina2024-04-15
Nicolas Q Kolmetz1016Brazil2024-04-05
Cody J Gaucho1017France2024-03-27
Isabel X Perin1018United Kingdom2024-04-16
Aika P Gillian1019Japan2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja E RoysterJapanIoni Bowcher QUALIFIED
Jeanfrancois J KuskoAustraliaOnyama Limba NEW
Juan P DarakjyItalyAnna Fali UNQUALIFIED
Smith O RutaGermanyElwin Sharvill UNQUALIFIED
Faith V CaldareraJapanXuxue Feng QUALIFIED
Antonio U NestleAustraliaIoni Bowcher PROPOSAL
Francesco S MaletFranceIvan Magalhaes NEGOTIATION
Ricardo Z RoysterRussiaElwin Sharvill RENEWAL
Wickens N AlbaresArgentinaIoni Bowcher UNQUALIFIED
Jefferson Z MacleadCanadaAmy Elsner QUALIFIED
Antonio V CampainUnited KingdomAsiya Javayant QUALIFIED
Ashley N RutaItalyBernardo Dominic NEGOTIATION
Kaitlin W RutaRussiaAsiya Javayant NEW
Morrow Z SlusarskiUnited KingdomBernardo Dominic NEW
Nicolas K BowleyRussiaOnyama Limba NEGOTIATION
Maria F PoquetteGermanyAnna Fali NEW
Munro O PerinCanadaAsiya Javayant UNQUALIFIED
Wickens M FollerCanadaOnyama Limba NEGOTIATION
Jennifer B DilliardCanadaIoni Bowcher UNQUALIFIED
Munro I OldroydFranceIoni Bowcher UNQUALIFIED
David J BologniaUnited KingdomIvan Magalhaes NEW
Chavez L FigeroaJapanStephen Shaw PROPOSAL
Faith V CampainItalyBernardo Dominic NEW
Aika T CaudyArgentinaElwin Sharvill PROPOSAL
Izzy N AmigonCanadaXuxue Feng QUALIFIED
Kadeem D NestleAustraliaAmy Elsner UNQUALIFIED
Morrow Q ShinkoItalyElwin Sharvill UNQUALIFIED
Murillo E StensethSpainBernardo Dominic NEW
Murillo R InouyeGermanyElwin Sharvill NEGOTIATION
Aditya P IturbideIndiaIvan Magalhaes UNQUALIFIED
Greenwood Q KolmetzIndiaOnyama Limba NEGOTIATION
Clifford C RulapaughRussiaBernardo Dominic NEGOTIATION
Silvio R FollerSpainAsiya Javayant PROPOSAL
Chavez B ChuiArgentinaAsiya Javayant QUALIFIED
James A IturbideRussiaStephen Shaw NEGOTIATION
Julie F InouyeRussiaElwin Sharvill QUALIFIED
Morrow H TollnerJapanStephen Shaw NEW
Maria M MaletBrazilAnna Fali NEW
Emily F DoeFranceStephen Shaw QUALIFIED
Alejandro N SchemmerCanadaStephen Shaw QUALIFIED

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