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
Rodrigues X GlickCanadaAsiya Javayant NEGOTIATION
Deepesh K KolmetzSpainXuxue Feng RENEWAL
Jennifer A IturbideAustraliaElwin Sharvill NEW
Costa G PerinRussiaOnyama Limba NEW
Kadeem Z MorascaJapanOnyama Limba QUALIFIED
Tony A PoquetteItalyStephen Shaw RENEWAL
Aika L SlusarskiCanadaIvan Magalhaes QUALIFIED
Adams C WaycottSpainIoni Bowcher RENEWAL
James F InouyeFranceAsiya Javayant QUALIFIED
Arvin H RutaJapanOnyama Limba RENEWAL
James L KuskoIndiaOnyama Limba RENEWAL
Wickens K InouyeArgentinaXuxue Feng PROPOSAL
James V WhobreyAustraliaBernardo Dominic NEW
Aika C CaldareraFranceXuxue Feng QUALIFIED
Ashley E FollerAustraliaIoni Bowcher NEW
Juan W FerenczFranceAnna Fali PROPOSAL
Stacey O BriddickSpainBernardo Dominic RENEWAL
Kaitlin C BriddickBrazilIoni Bowcher NEW
Ivar D BologniaGermanyIvan Magalhaes NEW
David H BologniaIndiaIoni Bowcher QUALIFIED
Jefferson X WieserBrazilIvan Magalhaes UNQUALIFIED
Silvio G VenereGermanyAnna Fali NEW
Darci O BriddickSpainOnyama Limba NEW
Greenwood X GarufiJapanStephen Shaw RENEWAL
Antonio P GillianFranceBernardo Dominic UNQUALIFIED
David D DoeAustraliaElwin Sharvill UNQUALIFIED
Nicolas J KolmetzFranceAmy Elsner PROPOSAL
Julie U DilliardFranceIvan Magalhaes QUALIFIED
Johnson T AlbaresUnited KingdomIvan Magalhaes RENEWAL
Salvatore N ShinkoSpainIoni Bowcher QUALIFIED
Silvio C KolmetzItalyIoni Bowcher QUALIFIED
Kaitlin Q StensethAustraliaAmy Elsner PROPOSAL
Adams I RoysterArgentinaElwin Sharvill UNQUALIFIED
Antonio J StensethJapanElwin Sharvill PROPOSAL
Munro U IturbideBrazilIoni Bowcher PROPOSAL
Claire G FlosiGermanyAsiya Javayant NEW
Juan Z MaletFranceAsiya Javayant RENEWAL
Silvio C RoysterGermanyStephen Shaw PROPOSAL
Kadeem S NickaIndiaBernardo Dominic RENEWAL
James H WhobreyIndiaElwin Sharvill QUALIFIED
Ricardo Y OldroydUnited KingdomXuxue Feng RENEWAL
Jefferson G ChuiFranceStephen Shaw UNQUALIFIED
Emily Q RimJapanElwin Sharvill NEW
Greenwood K SlusarskiGermanyAsiya Javayant UNQUALIFIED
Aika C NickaGermanyXuxue Feng NEW
Sinclair B PaprockiJapanXuxue Feng NEW
Tony U OstroskySpainElwin Sharvill NEGOTIATION
Juan K CaldareraArgentinaElwin Sharvill NEGOTIATION
Aika S IturbideUnited KingdomStephen Shaw UNQUALIFIED
Chavez T CaldareraBrazilStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois L KuskoIndiaBernardo Dominic RENEWAL
Tony Z GillianCanadaIvan Magalhaes NEGOTIATION
Mujtaba K PerinArgentinaAsiya Javayant PROPOSAL
Claire Z NestleJapanIoni Bowcher QUALIFIED
Juan B NickaUnited KingdomIoni Bowcher PROPOSAL
Darci G DoeFranceIvan Magalhaes QUALIFIED
Jennifer B MarrierItalyBernardo Dominic QUALIFIED
Salvatore Q MacleadGermanyAnna Fali RENEWAL
Salvatore S FollerFranceStephen Shaw NEGOTIATION
Wickens W OldroydBrazilIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo H NestleIndia2024-04-10Chanay, Jeffrey A Esq UNQUALIFIED2Xuxue Feng
1001David K MacleadRussia2024-04-11Rousseaux, Michael Esq PROPOSAL55Elwin Sharvill
1002Morrow K VenereIndia2024-04-21Benton, John B Jr QUALIFIED29Amy Elsner
1003Isabel H BowleyBrazil2024-04-23Chemel, James L Cpa NEGOTIATION45Amy Elsner
1004Aditya R MaletAustralia2024-04-23Chemel, James L Cpa RENEWAL67Ioni Bowcher
1005Mayumi E BriddickAustralia2024-04-10Feltz Printing Service NEW50Xuxue Feng
1006Juan R GlickJapan2024-04-16Feiner Bros QUALIFIED70Anna Fali
1007Misaki D MacleadGermany2024-04-05Rousseaux, Michael Esq UNQUALIFIED23Ivan Magalhaes
1008Leja Z MarrierIndia2024-04-27Chapman, Ross E Esq RENEWAL79Anna Fali
1009Maria J GarufiUnited Kingdom2024-04-14Rousseaux, Michael Esq QUALIFIED47Bernardo Dominic
1010Jefferson H ShinkoRussia2024-04-08Rousseaux, Michael Esq QUALIFIED76Ioni Bowcher
1011Izzy G SchemmerGermany2024-04-16Benton, John B Jr NEGOTIATION26Bernardo Dominic
1012Smith B ChuiUnited Kingdom2024-04-14Chanay, Jeffrey A Esq QUALIFIED5Stephen Shaw
1013Johnson M GillianFrance2024-04-26Chapman, Ross E Esq QUALIFIED53Elwin Sharvill
1014Sinclair S FerenczSpain2024-04-27Feltz Printing Service NEGOTIATION59Xuxue Feng
1015Jennifer N OstroskySpain2024-04-26King, Christopher A Esq RENEWAL55Ivan Magalhaes
1016Deepesh S FerenczCanada2024-04-25Chapman, Ross E Esq NEGOTIATION75Anna Fali
1017Wickens G MorascaItaly2024-03-31Benton, John B Jr NEW32Anna Fali
1018Arvin E StockhamItaly2024-04-05Buckley Miller Wright PROPOSAL88Onyama Limba
1019Greenwood P RulapaughAustralia2024-04-02Dorl, James J Esq NEGOTIATION35Ivan Magalhaes
1020Mujtaba P VocelkaGermany2024-04-21King, Christopher A Esq NEGOTIATION45Onyama Limba
1021Leja U RulapaughGermany2024-04-06Feltz Printing Service NEW62Stephen Shaw
1022Alejandro H NestleGermany2024-04-26Benton, John B Jr PROPOSAL77Ivan Magalhaes
1023Ashley D OldroydIndia2024-04-06Printing Dimensions PROPOSAL63Stephen Shaw
1024Aditya M ShinkoCanada2024-04-16Printing Dimensions NEGOTIATION17Ioni Bowcher
1025Stacey K GauchoAustralia2024-04-25Rousseaux, Michael Esq RENEWAL60Stephen Shaw
1026Izzy W CaudyUnited Kingdom2024-04-18Rousseaux, Michael Esq NEW73Onyama Limba
1027Murillo A PoquetteArgentina2024-04-04King, Christopher A Esq NEGOTIATION9Stephen Shaw
1028Aika W MacleadGermany2024-04-14Chemel, James L Cpa NEGOTIATION36Xuxue Feng
1029Adams U MorascaRussia2024-04-22Morlong Associates NEW49Asiya Javayant
1030Salvatore W WieserBrazil2024-04-22Buckley Miller Wright QUALIFIED30Bernardo Dominic
1031Arvin D PerinUnited Kingdom2024-04-14Printing Dimensions PROPOSAL16Ioni Bowcher
1032Stacey T NestleGermany2024-04-10Benton, John B Jr RENEWAL70Elwin Sharvill
1033Jennifer C WhobreyRussia2024-04-06Morlong Associates QUALIFIED74Anna Fali
1034Sinclair N NestleArgentina2024-04-13Feiner Bros PROPOSAL31Ioni Bowcher
1035Greenwood F RulapaughArgentina2024-04-25Chemel, James L Cpa RENEWAL79Asiya Javayant
1036Murillo M FerenczJapan2024-04-27Buckley Miller Wright NEGOTIATION27Asiya Javayant
1037Arvin O VenereBrazil2024-04-16Rangoni Of Florence NEW51Stephen Shaw
1038Misaki Y IturbideFrance2024-03-31Rousseaux, Michael Esq NEGOTIATION0Ivan Magalhaes
1039Adams F PaprockiFrance2024-04-17Rousseaux, Michael Esq RENEWAL89Onyama Limba
1040Aditya D GillianRussia2024-04-20Truhlar And Truhlar Attys QUALIFIED42Ioni Bowcher
1041Claire C ButtUnited Kingdom2024-04-20Feiner Bros RENEWAL74Onyama Limba
1042Aruna H StockhamUnited Kingdom2024-04-25Benton, John B Jr UNQUALIFIED4Elwin Sharvill
1043Maria R NickaUnited Kingdom2024-04-12Rangoni Of Florence PROPOSAL16Ioni Bowcher
1044Ricardo V WhobreyFrance2024-04-16Buckley Miller Wright PROPOSAL36Stephen Shaw
1045Isabel O CaudyItaly2024-04-03King, Christopher A Esq RENEWAL1Elwin Sharvill
1046Aruna M VenereCanada2024-04-22King, Christopher A Esq UNQUALIFIED25Onyama Limba
1047Cody N BriddickIndia2024-04-16Dorl, James J Esq PROPOSAL75Stephen Shaw
1048Francesco B RulapaughRussia2024-04-24Rangoni Of Florence QUALIFIED20Onyama Limba
1049Aika O ChuiItaly2024-04-26Feltz Printing Service NEGOTIATION33Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Maria P CaldareraSpainOnyama Limba NEGOTIATION
Arvin N BriddickGermanyXuxue Feng PROPOSAL
Leon V CampainAustraliaAmy Elsner PROPOSAL
Juan D PoquetteArgentinaOnyama Limba NEW
Kaitlin U PerinGermanyXuxue Feng QUALIFIED
James U PoquetteAustraliaAsiya Javayant PROPOSAL
Munro E GarufiFranceAsiya Javayant NEW
Claire G CaudyFranceAnna Fali UNQUALIFIED
Juan U VocelkaBrazilIoni Bowcher PROPOSAL
Aditya U MacleadItalyAsiya Javayant NEGOTIATION
Emily U KolmetzItalyIoni Bowcher NEW
Jones I SaylorsItalyAmy Elsner NEGOTIATION
Alejandro V FlosiBrazilOnyama Limba RENEWAL
Misaki C GlickAustraliaBernardo Dominic NEW
Greenwood S BriddickGermanyStephen Shaw RENEWAL
Alejandro F RulapaughJapanIvan Magalhaes QUALIFIED
Jones G GlickRussiaElwin Sharvill QUALIFIED
Claire D SaylorsGermanyOnyama Limba UNQUALIFIED
Jeanfrancois D FollerBrazilAmy Elsner QUALIFIED
Chavez U NestleBrazilIvan Magalhaes QUALIFIED
Aditya Q SergiBrazilIvan Magalhaes RENEWAL
Maisha A PaprockiRussiaElwin Sharvill NEW
Misaki H ShinkoGermanyOnyama Limba QUALIFIED
Leon E RoysterSpainAmy Elsner NEGOTIATION
Jefferson Y BologniaSpainOnyama Limba NEW
Mayumi M StensethBrazilXuxue Feng PROPOSAL
Antonio C BologniaIndiaElwin Sharvill RENEWAL
Tony K KolmetzJapanAsiya Javayant NEW
Rodrigues P FerenczFranceStephen Shaw QUALIFIED
Aruna Y DarakjyCanadaStephen Shaw NEGOTIATION
Chavez I BowleyCanadaXuxue Feng PROPOSAL
Deepesh J PerinIndiaElwin Sharvill QUALIFIED
Silvio Y WhobreyUnited KingdomXuxue Feng RENEWAL
Adams X ShinkoJapanXuxue Feng QUALIFIED
Julie C MacleadCanadaOnyama Limba UNQUALIFIED
Aruna W SchemmerSpainStephen Shaw PROPOSAL
Maisha Q KolmetzIndiaAsiya Javayant NEW
Darci G FollerJapanElwin Sharvill NEGOTIATION
Jones K RulapaughIndiaStephen Shaw UNQUALIFIED
Izzy R FollerSpainAsiya Javayant PROPOSAL
Mayumi Y MorascaArgentinaStephen Shaw PROPOSAL
Julie D AlbaresSpainAsiya Javayant PROPOSAL
Jennifer Q IturbideSpainOnyama Limba PROPOSAL
Ashley A WieserRussiaAmy Elsner QUALIFIED
Silvio P WaycottSpainStephen Shaw UNQUALIFIED
Jeanfrancois Q IturbideRussiaElwin Sharvill NEW
Silvio K DilliardFranceAnna Fali UNQUALIFIED
Octavia O VocelkaUnited KingdomIvan Magalhaes NEW
Smith Y VocelkaCanadaStephen Shaw QUALIFIED
Chavez Z MarrierIndiaOnyama Limba PROPOSAL
Frozen Columns
Name
Adams Q Vocelka
Darci Z Bowley
Arvin G Whobrey
Salvatore F Wieser
Cody J Oldroyd
Adams J Gillian
Emily P Glick
Alejandro P Tollner
Stacey R Royster
Jeanfrancois D Chui
Rodrigues L Caldarera
Morrow I Amigon
Tony I Marrier
Sinclair Q Bolognia
Sinclair E Malet
Leon M Campain
Maria W Saylors
Leja U Paprocki
Greenwood O Inouye
Salvatore O Poquette
Kaitlin P Maclead
Mujtaba B Perin
Wickens B Flosi
Munro G Saylors
Claire S Nestle
Mujtaba G Caudy
Murillo R Rim
Greenwood Z Perin
Aika A Flosi
Ashley B Ostrosky
Jones D Paprocki
Smith B Marrier
Deepesh O Darakjy
Aruna J Marrier
Chavez G Kolmetz
Rodrigues D Inouye
Isabel W Gaucho
Octavia M Sergi
Adams Q Paprocki
Francesco N Paprocki
Maria D Ferencz
Aditya U Bowley
Kadeem R Maclead
Morrow H Ferencz
Cody U Royster
Julie L Maclead
Jones V Glick
Ricardo Y Butt
Izzy H Chui
Mujtaba G Vocelka
IdCountryDate
1000United Kingdom2024-04-25
1001France2024-04-13
1002Argentina2024-04-12
1003Brazil2024-04-01
1004Argentina2024-04-24
1005Germany2024-04-14
1006Canada2024-04-27
1007Italy2024-04-18
1008Argentina2024-04-07
1009Japan2024-04-25
1010United Kingdom2024-04-07
1011Italy2024-04-05
1012Germany2024-04-27
1013Australia2024-04-15
1014Russia2024-04-23
1015Japan2024-04-17
1016Spain2024-04-03
1017Argentina2024-04-21
1018Canada2024-04-28
1019Italy2024-04-28
1020Australia2024-03-30
1021Italy2024-04-25
1022Spain2024-04-23
1023India2024-04-26
1024Spain2024-04-24
1025France2024-04-06
1026Japan2024-04-18
1027Japan2024-04-09
1028India2024-04-07
1029Brazil2024-04-20
1030United Kingdom2024-04-19
1031Japan2024-04-11
1032Australia2024-04-02
1033Brazil2024-04-02
1034Canada2024-04-04
1035United Kingdom2024-04-09
1036Japan2024-04-22
1037Argentina2024-04-23
1038Brazil2024-04-21
1039Brazil2024-04-14
1040Canada2024-04-11
1041Argentina2024-04-05
1042Italy2024-04-09
1043Australia2024-04-26
1044Canada2024-04-17
1045France2024-04-17
1046Brazil2024-04-06
1047Japan2024-04-18
1048Japan2024-04-16
1049Spain2024-04-05

On-Demand Data

NameIdCountryDate
Misaki J Shinko1000Brazil2024-04-09
Cody Q Saylors1001Japan2024-04-24
Stacey H Waycott1002Japan2024-03-31
Sinclair D Dilliard1003Canada2024-04-26
Jones W Vocelka1004India2024-04-19
Aika D Dilliard1005Australia2024-04-25
David V Darakjy1006Australia2024-04-21
Johnson W Iturbide1007Germany2024-04-24
Arvin G Figeroa1008Russia2024-04-21
Kadeem M Doe1009Canada2024-04-01
Munro M Shinko1010France2024-04-23
Mujtaba G Maclead1011Germany2024-04-06
Rodrigues T Caldarera1012Italy2024-04-27
Kadeem S Marrier1013India2024-04-13
Nicolas Z Slusarski1014Japan2024-04-06
Francesco E Morasca1015Germany2024-04-08
Jones C Caldarera1016Argentina2024-04-18
Aruna L Kolmetz1017Argentina2024-04-21
Mayumi E Maclead1018Spain2024-04-12
Arvin S Royster1019Argentina2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson I DilliardUnited KingdomStephen Shaw NEGOTIATION
Rodrigues B BriddickCanadaElwin Sharvill UNQUALIFIED
Smith V RoysterBrazilAmy Elsner NEGOTIATION
Salvatore Z AmigonUnited KingdomStephen Shaw NEGOTIATION
Greenwood V GlickUnited KingdomAsiya Javayant QUALIFIED
Clifford T SergiJapanOnyama Limba QUALIFIED
Ricardo R GillianAustraliaAsiya Javayant RENEWAL
David G DarakjyRussiaAnna Fali PROPOSAL
Smith X StensethFranceAmy Elsner NEW
Misaki P NestleBrazilOnyama Limba QUALIFIED
Jones M WieserCanadaBernardo Dominic NEW
Chavez V StockhamArgentinaBernardo Dominic RENEWAL
Francesco W CaudyFranceBernardo Dominic NEW
Kadeem M InouyeCanadaBernardo Dominic NEGOTIATION
Arvin U GillianGermanyAsiya Javayant RENEWAL
Salvatore N GlickArgentinaAmy Elsner NEGOTIATION
Claire Y BowleyItalyAsiya Javayant PROPOSAL
Wickens X KuskoCanadaXuxue Feng QUALIFIED
Rodrigues I MarrierArgentinaXuxue Feng RENEWAL
Salvatore Q SergiArgentinaIvan Magalhaes RENEWAL
Francesco Y AlbaresSpainXuxue Feng NEW
Faith Z SlusarskiFranceOnyama Limba RENEWAL
Ashley U ButtFranceIvan Magalhaes RENEWAL
Juan M RutaGermanyElwin Sharvill QUALIFIED
Johnson K NestleSpainIoni Bowcher PROPOSAL
Kadeem V GlickFranceXuxue Feng PROPOSAL
Alejandro E WhobreyBrazilAsiya Javayant NEGOTIATION
Mayumi D CaudySpainAmy Elsner QUALIFIED
Costa V RulapaughRussiaAnna Fali PROPOSAL
Emily C RimItalyElwin Sharvill NEGOTIATION
Darci U TollnerSpainIvan Magalhaes NEW
Clifford S IturbideBrazilElwin Sharvill NEGOTIATION
Adams K RutaJapanAsiya Javayant UNQUALIFIED
Aditya C PoquetteItalyBernardo Dominic QUALIFIED
Jefferson O ChuiArgentinaAmy Elsner RENEWAL
Claire L SergiUnited KingdomAnna Fali UNQUALIFIED
Greenwood M SlusarskiFranceBernardo Dominic PROPOSAL
Sinclair Z KolmetzUnited KingdomAsiya Javayant UNQUALIFIED
Costa I FigeroaCanadaBernardo Dominic RENEWAL
Ivar C TollnerArgentinaIvan Magalhaes 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>