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
Aika B GlickArgentinaAmy Elsner PROPOSAL
Mayumi Z ShinkoArgentinaAsiya Javayant RENEWAL
Kaitlin V GauchoBrazilOnyama Limba QUALIFIED
Silvio A GarufiUnited KingdomAsiya Javayant UNQUALIFIED
Isabel N RutaCanadaStephen Shaw PROPOSAL
Ivar Q TollnerUnited KingdomXuxue Feng NEGOTIATION
Maisha M CaudyAustraliaBernardo Dominic QUALIFIED
Ashley E FigeroaFranceAmy Elsner RENEWAL
James I TollnerAustraliaAnna Fali PROPOSAL
Antonio B WaycottUnited KingdomStephen Shaw PROPOSAL
Aruna M PoquetteFranceIvan Magalhaes RENEWAL
Jones G CaudyGermanyBernardo Dominic NEGOTIATION
Salvatore K ButtSpainIoni Bowcher NEW
Aruna Y ChuiJapanStephen Shaw PROPOSAL
Costa I VocelkaSpainStephen Shaw QUALIFIED
Misaki P FerenczIndiaAnna Fali NEW
Johnson J MacleadAustraliaXuxue Feng PROPOSAL
Leja Q GauchoRussiaIvan Magalhaes PROPOSAL
Wickens Z GarufiIndiaXuxue Feng NEW
Munro J ChuiAustraliaStephen Shaw NEGOTIATION
Jones M MacleadFranceIoni Bowcher NEGOTIATION
Kadeem W BriddickBrazilStephen Shaw PROPOSAL
Alejandro M CaldareraUnited KingdomElwin Sharvill NEGOTIATION
Julie O MacleadCanadaOnyama Limba QUALIFIED
Stacey U VocelkaAustraliaAmy Elsner UNQUALIFIED
Misaki Q GlickAustraliaOnyama Limba NEGOTIATION
Kaitlin M WhobreyBrazilOnyama Limba RENEWAL
Arvin W MaletSpainAsiya Javayant NEGOTIATION
Octavia H ShinkoGermanyAnna Fali NEW
Leon C GillianFranceIvan Magalhaes NEW
Isabel X PerinArgentinaAsiya Javayant UNQUALIFIED
Juan P CaldareraGermanyStephen Shaw NEW
Munro M MacleadItalyXuxue Feng NEGOTIATION
Salvatore B SaylorsItalyElwin Sharvill UNQUALIFIED
Murillo L WhobreyUnited KingdomIvan Magalhaes NEW
Octavia S BowleyBrazilIvan Magalhaes NEGOTIATION
Adams F ChuiCanadaIoni Bowcher NEW
Arvin Q CaudyGermanyAmy Elsner NEGOTIATION
Munro O FigeroaAustraliaElwin Sharvill QUALIFIED
Juan D CaudyIndiaElwin Sharvill RENEWAL
Rodrigues V StensethCanadaXuxue Feng NEGOTIATION
Kadeem K WhobreyAustraliaBernardo Dominic NEW
Rodrigues P BriddickIndiaXuxue Feng NEGOTIATION
Ivar H GillianItalyAnna Fali NEGOTIATION
Costa V GarufiBrazilOnyama Limba RENEWAL
Claire E RimItalyIoni Bowcher UNQUALIFIED
Isabel M ChuiBrazilAsiya Javayant NEW
Leja Z NestleSpainBernardo Dominic PROPOSAL
James A VenereIndiaIvan Magalhaes NEGOTIATION
Aditya R WaycottIndiaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Munro X StensethBrazilXuxue Feng UNQUALIFIED
Antonio W MaletUnited KingdomIoni Bowcher NEGOTIATION
Arvin G DoeArgentinaAmy Elsner QUALIFIED
Murillo Y KolmetzRussiaAnna Fali UNQUALIFIED
Maisha A OldroydCanadaOnyama Limba RENEWAL
Jefferson M RutaJapanIvan Magalhaes QUALIFIED
Nicolas X FigeroaBrazilElwin Sharvill UNQUALIFIED
Darci G MaletIndiaIvan Magalhaes UNQUALIFIED
Sinclair X SaylorsBrazilAnna Fali UNQUALIFIED
Octavia G FlosiCanadaAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci R MacleadCanada2024-04-04Buckley Miller Wright PROPOSAL70Bernardo Dominic
1001Maisha R RimSpain2024-04-26Feltz Printing Service NEW27Elwin Sharvill
1002Smith O GarufiUnited Kingdom2024-04-19Truhlar And Truhlar Attys QUALIFIED5Bernardo Dominic
1003Morrow U MaletRussia2024-04-17Feltz Printing Service NEGOTIATION46Ivan Magalhaes
1004Smith N WieserJapan2024-04-27Chemel, James L Cpa UNQUALIFIED49Elwin Sharvill
1005Arvin P VenereFrance2024-04-21Chemel, James L Cpa RENEWAL25Onyama Limba
1006Sinclair D NestleArgentina2024-04-04Benton, John B Jr NEGOTIATION29Elwin Sharvill
1007Izzy O CaudyUnited Kingdom2024-04-25Truhlar And Truhlar Attys NEW64Xuxue Feng
1008Darci I BriddickBrazil2024-04-28Commercial Press NEGOTIATION0Stephen Shaw
1009Morrow F DoeCanada2024-04-11Commercial Press RENEWAL19Amy Elsner
1010Ivar X NestleArgentina2024-04-28Benton, John B Jr NEW27Amy Elsner
1011Wickens B StockhamBrazil2024-04-18King, Christopher A Esq RENEWAL37Asiya Javayant
1012Aruna U RoysterIndia2024-05-02Dorl, James J Esq PROPOSAL86Amy Elsner
1013Leon R CaldareraCanada2024-04-09Chapman, Ross E Esq NEW9Ivan Magalhaes
1014Kaitlin Z CaldareraJapan2024-04-04Morlong Associates UNQUALIFIED99Asiya Javayant
1015Maisha H MacleadArgentina2024-04-05Dorl, James J Esq PROPOSAL36Anna Fali
1016Adams X IturbideItaly2024-04-09Morlong Associates QUALIFIED0Ioni Bowcher
1017Jennifer T BologniaIndia2024-04-15Rousseaux, Michael Esq UNQUALIFIED75Ivan Magalhaes
1018Clifford D WhobreyAustralia2024-05-01Chapman, Ross E Esq NEW60Xuxue Feng
1019Jones P BowleyItaly2024-04-08Chanay, Jeffrey A Esq RENEWAL70Asiya Javayant
1020Costa G OldroydRussia2024-04-11Buckley Miller Wright NEW99Onyama Limba
1021Silvio G CaudyBrazil2024-04-19Printing Dimensions NEGOTIATION39Bernardo Dominic
1022Aruna P FigeroaRussia2024-04-10Benton, John B Jr NEW7Bernardo Dominic
1023Tony Y NickaSpain2024-04-04Chanay, Jeffrey A Esq PROPOSAL64Ivan Magalhaes
1024Greenwood G GauchoGermany2024-04-30Dorl, James J Esq RENEWAL33Bernardo Dominic
1025Smith D AlbaresIndia2024-05-01Chemel, James L Cpa NEW10Stephen Shaw
1026Juan W DarakjyGermany2024-04-08Morlong Associates QUALIFIED90Ioni Bowcher
1027Jeanfrancois M MorascaFrance2024-05-01Rangoni Of Florence NEGOTIATION55Onyama Limba
1028Aruna W VenereItaly2024-04-18Feiner Bros QUALIFIED25Anna Fali
1029Izzy F RoysterGermany2024-04-10Buckley Miller Wright UNQUALIFIED69Ivan Magalhaes
1030Maria B OstroskySpain2024-04-06Rangoni Of Florence NEW46Bernardo Dominic
1031Costa I SlusarskiFrance2024-04-20Chanay, Jeffrey A Esq UNQUALIFIED61Elwin Sharvill
1032Sinclair V SaylorsCanada2024-04-25Buckley Miller Wright NEW71Asiya Javayant
1033Smith C VocelkaBrazil2024-04-27Chapman, Ross E Esq RENEWAL55Amy Elsner
1034Wickens R FollerArgentina2024-04-09Benton, John B Jr NEW11Ioni Bowcher
1035Leja Z TollnerGermany2024-04-11Morlong Associates UNQUALIFIED8Ivan Magalhaes
1036Cody O KolmetzFrance2024-04-09Buckley Miller Wright PROPOSAL52Stephen Shaw
1037Jeanfrancois H VocelkaCanada2024-04-29Buckley Miller Wright PROPOSAL10Stephen Shaw
1038Antonio L PaprockiIndia2024-05-01Feltz Printing Service PROPOSAL12Xuxue Feng
1039Ivar T WieserGermany2024-04-04Buckley Miller Wright RENEWAL1Xuxue Feng
1040Cody A OldroydArgentina2024-04-30Buckley Miller Wright NEGOTIATION77Anna Fali
1041Julie R RulapaughRussia2024-04-15Feltz Printing Service QUALIFIED12Bernardo Dominic
1042Morrow K BowleyArgentina2024-04-05Feiner Bros QUALIFIED18Elwin Sharvill
1043Faith R CampainFrance2024-04-23Feiner Bros NEGOTIATION26Amy Elsner
1044Wickens V WieserFrance2024-04-15Printing Dimensions PROPOSAL2Ivan Magalhaes
1045Smith N NickaSpain2024-05-02Feltz Printing Service QUALIFIED56Onyama Limba
1046Octavia G KuskoArgentina2024-04-22Chemel, James L Cpa NEW28Amy Elsner
1047Aditya L MaletAustralia2024-05-01Rousseaux, Michael Esq NEGOTIATION96Ioni Bowcher
1048Rodrigues F OstroskyGermany2024-04-06Chemel, James L Cpa QUALIFIED68Amy Elsner
1049Clifford G StockhamArgentina2024-04-19Rousseaux, Michael Esq QUALIFIED18Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aika O BriddickSpainIoni Bowcher UNQUALIFIED
Greenwood V FerenczItalyAmy Elsner NEW
Jennifer L ShinkoArgentinaAsiya Javayant PROPOSAL
Aruna Z WieserCanadaIvan Magalhaes RENEWAL
Tony I PerinSpainIoni Bowcher NEGOTIATION
Stacey U ChuiAustraliaOnyama Limba UNQUALIFIED
Francesco Z DilliardIndiaXuxue Feng NEW
Mujtaba L WaycottSpainBernardo Dominic PROPOSAL
Ricardo A CaudyItalyIvan Magalhaes NEGOTIATION
Maria K OstroskyItalyAsiya Javayant UNQUALIFIED
Clifford F TollnerBrazilIvan Magalhaes UNQUALIFIED
Ricardo W MaletUnited KingdomXuxue Feng RENEWAL
Leon H FlosiJapanXuxue Feng NEGOTIATION
Leon W BowleyCanadaOnyama Limba NEGOTIATION
Stacey Z WhobreyIndiaAsiya Javayant QUALIFIED
Murillo D PoquetteArgentinaBernardo Dominic NEW
Jones X DoeAustraliaIvan Magalhaes PROPOSAL
Greenwood R AmigonItalyAnna Fali RENEWAL
Misaki K AlbaresAustraliaAmy Elsner RENEWAL
Murillo F AmigonCanadaElwin Sharvill NEW
Cody K MorascaBrazilAsiya Javayant NEGOTIATION
Aditya H WaycottRussiaStephen Shaw UNQUALIFIED
Greenwood M BowleySpainAnna Fali NEGOTIATION
Kaitlin J RoysterArgentinaElwin Sharvill QUALIFIED
Izzy T MarrierFranceIvan Magalhaes PROPOSAL
Jennifer E OstroskyBrazilAnna Fali RENEWAL
Tony O RutaSpainElwin Sharvill NEW
Salvatore O VocelkaFranceAnna Fali UNQUALIFIED
Isabel F RulapaughUnited KingdomStephen Shaw QUALIFIED
Leon B CaldareraSpainStephen Shaw NEGOTIATION
Johnson H DarakjyBrazilXuxue Feng UNQUALIFIED
Johnson E KolmetzJapanIvan Magalhaes NEW
Johnson H AmigonItalyIvan Magalhaes NEW
Silvio O MarrierUnited KingdomElwin Sharvill PROPOSAL
Mayumi K OstroskyJapanAnna Fali UNQUALIFIED
Julie Q GillianUnited KingdomXuxue Feng NEW
Leja H GarufiCanadaStephen Shaw QUALIFIED
Tony I SergiItalyAsiya Javayant PROPOSAL
Emily T SchemmerGermanyXuxue Feng NEW
Tony B CaudyAustraliaAmy Elsner NEGOTIATION
Aditya R FlosiSpainAmy Elsner RENEWAL
Stacey P GarufiUnited KingdomElwin Sharvill PROPOSAL
Mujtaba W VocelkaJapanAnna Fali PROPOSAL
Darci W WaycottArgentinaIoni Bowcher NEW
Aditya D NickaGermanyXuxue Feng RENEWAL
Wickens T RimRussiaStephen Shaw NEGOTIATION
Antonio I WaycottGermanyStephen Shaw QUALIFIED
Jeanfrancois H GauchoIndiaIoni Bowcher RENEWAL
Izzy O GlickFranceIvan Magalhaes PROPOSAL
Claire L RimAustraliaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Munro W Schemmer
Misaki L Glick
Julie O Bolognia
Murillo H Nestle
James T Paprocki
Francesco O Kolmetz
Maria E Malet
Julie U Saylors
Wickens K Amigon
Leon H Campain
Sinclair N Doe
Clifford B Bolognia
Aika R Venere
Darci O Wieser
Greenwood Q Paprocki
Juan N Flosi
Jones Z Shinko
Tony X Waycott
Rodrigues N Garufi
Ashley C Inouye
Francesco F Bolognia
Munro T Bolognia
Aruna V Garufi
Greenwood K Maclead
Nicolas L Butt
Aika S Venere
Smith M Nestle
Mujtaba G Gillian
Nicolas T Vocelka
Alejandro D Caudy
Morrow W Saylors
Izzy P Malet
Octavia U Tollner
Silvio V Kolmetz
Jones S Flosi
Leon P Iturbide
Izzy H Nestle
Stacey H Darakjy
Deepesh H Kusko
Mujtaba Q Garufi
Chavez U Iturbide
Faith S Perin
Jeanfrancois H Briddick
Cody A Caldarera
Claire W Briddick
Morrow H Slusarski
Nicolas Q Kolmetz
Adams B Rulapaugh
Sinclair Q Maclead
Munro Y Sergi
IdCountryDate
1000United Kingdom2024-04-07
1001Italy2024-04-21
1002Australia2024-04-10
1003Italy2024-04-08
1004India2024-04-21
1005Canada2024-04-19
1006Spain2024-04-04
1007Japan2024-04-19
1008France2024-04-06
1009Germany2024-04-25
1010India2024-04-29
1011Italy2024-04-05
1012Spain2024-04-05
1013Germany2024-04-23
1014Italy2024-04-24
1015Russia2024-04-13
1016Italy2024-04-08
1017India2024-04-30
1018France2024-05-02
1019France2024-04-16
1020Spain2024-04-18
1021Argentina2024-04-24
1022Australia2024-04-30
1023Germany2024-04-13
1024Spain2024-04-23
1025Germany2024-04-14
1026Australia2024-04-16
1027United Kingdom2024-04-11
1028Australia2024-04-26
1029Australia2024-04-12
1030India2024-05-02
1031Canada2024-04-03
1032Canada2024-04-23
1033Canada2024-04-07
1034Australia2024-04-22
1035Spain2024-04-23
1036United Kingdom2024-04-18
1037Italy2024-04-14
1038Spain2024-04-06
1039Germany2024-04-21
1040Japan2024-04-23
1041Germany2024-04-29
1042France2024-04-06
1043Canada2024-04-18
1044Canada2024-04-09
1045India2024-04-21
1046United Kingdom2024-04-27
1047United Kingdom2024-04-09
1048Russia2024-04-03
1049Italy2024-04-28

On-Demand Data

NameIdCountryDate
Deepesh Y Kusko1000Germany2024-04-10
Antonio P Poquette1001Canada2024-04-26
Darci L Figeroa1002Japan2024-04-12
Munro B Caldarera1003Italy2024-04-09
Mayumi Y Gaucho1004Canada2024-04-25
Darci X Maclead1005Japan2024-04-18
Mayumi P Stenseth1006India2024-04-11
Wickens F Ferencz1007Canada2024-04-18
Ashley Q Doe1008Spain2024-04-30
Aruna S Wieser1009Spain2024-04-25
Jones A Kusko1010Japan2024-04-23
James K Marrier1011Canada2024-04-16
Mayumi B Wieser1012Australia2024-04-21
Kadeem N Shinko1013Italy2024-04-06
Smith P Stockham1014Russia2024-04-28
Ashley K Glick1015Australia2024-04-14
Darci R Waycott1016Germany2024-04-25
Morrow T Briddick1017Japan2024-04-13
Rodrigues P Amigon1018Australia2024-04-24
Ricardo S Stenseth1019United Kingdom2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley S WieserUnited KingdomOnyama Limba QUALIFIED
David G FerenczRussiaStephen Shaw PROPOSAL
Silvio M RimBrazilBernardo Dominic UNQUALIFIED
Morrow X VocelkaUnited KingdomIoni Bowcher QUALIFIED
Silvio H BologniaItalyStephen Shaw UNQUALIFIED
Wickens O RutaCanadaStephen Shaw PROPOSAL
Silvio I VenereBrazilAsiya Javayant PROPOSAL
Smith N MorascaFranceIvan Magalhaes RENEWAL
Smith E GlickFranceElwin Sharvill UNQUALIFIED
Claire G PoquetteIndiaIvan Magalhaes RENEWAL
Johnson D WieserRussiaBernardo Dominic NEGOTIATION
Clifford A GarufiSpainAmy Elsner QUALIFIED
Ricardo W VenereItalyStephen Shaw NEGOTIATION
Clifford C FlosiGermanyStephen Shaw NEW
Antonio M SaylorsArgentinaOnyama Limba UNQUALIFIED
Jeanfrancois K SchemmerRussiaStephen Shaw QUALIFIED
James C VocelkaCanadaAsiya Javayant QUALIFIED
Francesco D FigeroaFranceAmy Elsner UNQUALIFIED
Darci G GillianIndiaAnna Fali QUALIFIED
James G StensethIndiaElwin Sharvill NEGOTIATION
Rodrigues U FollerCanadaOnyama Limba RENEWAL
Emily Y WieserArgentinaElwin Sharvill NEGOTIATION
Kadeem T KuskoSpainBernardo Dominic NEGOTIATION
Aditya W FollerGermanyIoni Bowcher RENEWAL
Silvio Z MarrierBrazilStephen Shaw QUALIFIED
Kaitlin P AmigonFranceXuxue Feng NEGOTIATION
Claire Q WieserAustraliaAmy Elsner RENEWAL
Leja M RulapaughItalyStephen Shaw RENEWAL
Kadeem V MacleadArgentinaIoni Bowcher RENEWAL
Antonio P CaldareraGermanyOnyama Limba NEW
Rodrigues S BowleyIndiaAsiya Javayant NEW
Claire D OstroskyGermanyStephen Shaw PROPOSAL
Mayumi W TollnerArgentinaIvan Magalhaes NEGOTIATION
Juan Z TollnerJapanAnna Fali NEW
Stacey G SlusarskiRussiaStephen Shaw UNQUALIFIED
Juan M StockhamIndiaIvan Magalhaes QUALIFIED
Aruna W MaletArgentinaOnyama Limba RENEWAL
Alejandro N SchemmerGermanyIvan Magalhaes NEGOTIATION
Francesco B AmigonIndiaXuxue Feng QUALIFIED
Jennifer P SergiArgentinaAnna Fali NEGOTIATION

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