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
Misaki C GarufiJapanStephen Shaw NEW
Jones C IturbideAustraliaAmy Elsner QUALIFIED
Ivar J AmigonSpainAsiya Javayant QUALIFIED
Cody A StensethSpainIvan Magalhaes NEW
Kaitlin E CaldareraCanadaStephen Shaw NEGOTIATION
Ivar N IturbideCanadaStephen Shaw RENEWAL
Octavia G GillianJapanAsiya Javayant QUALIFIED
Claire L AmigonJapanAmy Elsner PROPOSAL
Ivar W PerinCanadaAnna Fali RENEWAL
Aika V DilliardAustraliaElwin Sharvill QUALIFIED
Greenwood K WhobreyCanadaIvan Magalhaes NEGOTIATION
Adams G FerenczRussiaAmy Elsner PROPOSAL
Jones Q BowleyIndiaAsiya Javayant NEW
Leon M MarrierFranceStephen Shaw UNQUALIFIED
Ricardo J OstroskyFranceIoni Bowcher NEGOTIATION
Murillo W WaycottFranceIoni Bowcher QUALIFIED
Greenwood H AlbaresRussiaBernardo Dominic NEW
Isabel D MacleadAustraliaAmy Elsner QUALIFIED
Munro T DarakjyFranceXuxue Feng PROPOSAL
Mayumi X BowleyIndiaBernardo Dominic NEW
Cody X InouyeJapanIvan Magalhaes UNQUALIFIED
Arvin A GlickCanadaAmy Elsner NEGOTIATION
Izzy X RimUnited KingdomStephen Shaw PROPOSAL
Greenwood B RimArgentinaIvan Magalhaes NEGOTIATION
Silvio K RimRussiaIvan Magalhaes UNQUALIFIED
Misaki G GarufiAustraliaStephen Shaw PROPOSAL
Smith B InouyeRussiaAnna Fali QUALIFIED
Misaki Y IturbideGermanyAmy Elsner PROPOSAL
Munro U GarufiIndiaStephen Shaw QUALIFIED
Ashley K GlickRussiaElwin Sharvill RENEWAL
Murillo I NestleSpainOnyama Limba NEGOTIATION
Kaitlin Q WaycottCanadaIoni Bowcher PROPOSAL
Mayumi F RulapaughBrazilIoni Bowcher NEGOTIATION
Isabel E MorascaBrazilIoni Bowcher NEGOTIATION
Ivar J DilliardRussiaAnna Fali RENEWAL
Maisha L RoysterItalyElwin Sharvill UNQUALIFIED
Salvatore F InouyeUnited KingdomBernardo Dominic PROPOSAL
Costa N CaldareraUnited KingdomIoni Bowcher NEGOTIATION
Costa Z StockhamSpainStephen Shaw NEW
Jennifer A VocelkaJapanXuxue Feng NEGOTIATION
Alejandro D BologniaCanadaAmy Elsner NEW
Johnson I StockhamIndiaAmy Elsner PROPOSAL
Tony L SergiCanadaOnyama Limba PROPOSAL
Murillo G NickaRussiaIvan Magalhaes NEGOTIATION
Arvin U SlusarskiJapanIoni Bowcher UNQUALIFIED
Antonio F BriddickCanadaXuxue Feng UNQUALIFIED
Francesco W GillianAustraliaAsiya Javayant UNQUALIFIED
Deepesh Q GlickIndiaXuxue Feng NEW
Emily D AmigonItalyStephen Shaw NEW
Greenwood R CampainItalyElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer A RimAustraliaBernardo Dominic NEW
Arvin P OstroskyAustraliaOnyama Limba RENEWAL
Kaitlin I MaletArgentinaAnna Fali QUALIFIED
Mujtaba O WaycottBrazilAmy Elsner QUALIFIED
Emily R PerinAustraliaOnyama Limba NEGOTIATION
Misaki L KolmetzGermanyAsiya Javayant UNQUALIFIED
Faith E AmigonIndiaAsiya Javayant PROPOSAL
Ivar D RoysterUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore H SchemmerIndiaAmy Elsner NEGOTIATION
Misaki Q NestleFranceStephen Shaw NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba L GillianBrazil2024-04-04Feiner Bros RENEWAL89Xuxue Feng
1001Mayumi E VenereCanada2024-04-18King, Christopher A Esq UNQUALIFIED8Stephen Shaw
1002Aika M VenereCanada2024-04-14Dorl, James J Esq NEGOTIATION82Asiya Javayant
1003Ricardo D FigeroaRussia2024-04-02Benton, John B Jr NEGOTIATION33Elwin Sharvill
1004Mayumi J PaprockiIndia2024-04-21Commercial Press RENEWAL72Ivan Magalhaes
1005Tony F OstroskyAustralia2024-04-27Truhlar And Truhlar Attys UNQUALIFIED80Xuxue Feng
1006Ashley S PoquetteBrazil2024-04-14Chemel, James L Cpa UNQUALIFIED56Asiya Javayant
1007Adams V MaletIndia2024-04-23King, Christopher A Esq UNQUALIFIED38Anna Fali
1008Aditya N WaycottGermany2024-04-24Chemel, James L Cpa PROPOSAL40Ioni Bowcher
1009Darci U DarakjySpain2024-04-26Morlong Associates QUALIFIED99Anna Fali
1010Juan F InouyeGermany2024-04-13Rousseaux, Michael Esq UNQUALIFIED28Ioni Bowcher
1011Antonio F DoeAustralia2024-04-23Feltz Printing Service UNQUALIFIED61Onyama Limba
1012Salvatore O MaletJapan2024-04-17Dorl, James J Esq PROPOSAL42Ioni Bowcher
1013Francesco Y StockhamItaly2024-04-16Dorl, James J Esq NEW71Elwin Sharvill
1014Maria W RimArgentina2024-04-06King, Christopher A Esq RENEWAL26Bernardo Dominic
1015Leja X MaletGermany2024-04-12King, Christopher A Esq QUALIFIED14Onyama Limba
1016Faith R IturbideItaly2024-04-26Chapman, Ross E Esq RENEWAL97Onyama Limba
1017Aruna S StockhamFrance2024-04-03Printing Dimensions UNQUALIFIED63Anna Fali
1018Stacey F SaylorsGermany2024-04-18Benton, John B Jr NEGOTIATION63Bernardo Dominic
1019Maria T CaldareraArgentina2024-03-30Feiner Bros NEGOTIATION65Elwin Sharvill
1020Maisha B RutaFrance2024-04-15Morlong Associates UNQUALIFIED77Elwin Sharvill
1021Juan M InouyeIndia2024-04-08Rangoni Of Florence NEGOTIATION82Elwin Sharvill
1022Isabel R GauchoBrazil2024-04-04Rousseaux, Michael Esq NEW73Ioni Bowcher
1023Mayumi Z NickaBrazil2024-04-28Chemel, James L Cpa NEW78Amy Elsner
1024Johnson Z IturbideAustralia2024-04-21Chemel, James L Cpa NEGOTIATION32Bernardo Dominic
1025Izzy U DoeSpain2024-04-26Rousseaux, Michael Esq NEW0Elwin Sharvill
1026Kadeem H RutaCanada2024-04-07King, Christopher A Esq UNQUALIFIED64Asiya Javayant
1027Chavez N StensethRussia2024-04-27King, Christopher A Esq QUALIFIED51Bernardo Dominic
1028Misaki Y IturbideBrazil2024-04-20King, Christopher A Esq QUALIFIED25Asiya Javayant
1029Smith N WieserGermany2024-04-22Commercial Press UNQUALIFIED27Asiya Javayant
1030Leon X RulapaughSpain2024-04-08Chapman, Ross E Esq RENEWAL93Xuxue Feng
1031Tony T SlusarskiAustralia2024-04-23Rousseaux, Michael Esq UNQUALIFIED36Ioni Bowcher
1032Jennifer E MarrierJapan2024-04-02Morlong Associates RENEWAL16Stephen Shaw
1033Ashley Q MorascaItaly2024-04-08Rangoni Of Florence NEGOTIATION25Asiya Javayant
1034Francesco M RimSpain2024-04-16King, Christopher A Esq UNQUALIFIED50Anna Fali
1035Deepesh I ChuiIndia2024-04-28Commercial Press QUALIFIED65Elwin Sharvill
1036Aruna R CaldareraCanada2024-04-27Rangoni Of Florence NEGOTIATION86Amy Elsner
1037Julie L AlbaresArgentina2024-04-09King, Christopher A Esq PROPOSAL35Elwin Sharvill
1038Kadeem Z MaletUnited Kingdom2024-04-26Morlong Associates PROPOSAL16Stephen Shaw
1039Alejandro W FerenczArgentina2024-04-26Chapman, Ross E Esq NEGOTIATION36Asiya Javayant
1040Isabel I FigeroaArgentina2024-04-26Rousseaux, Michael Esq QUALIFIED22Asiya Javayant
1041Murillo I GauchoFrance2024-04-11Rousseaux, Michael Esq NEW63Anna Fali
1042Ricardo T WaycottSpain2024-04-26King, Christopher A Esq NEW14Asiya Javayant
1043Jefferson D GauchoUnited Kingdom2024-04-04Dorl, James J Esq NEGOTIATION65Elwin Sharvill
1044Nicolas I GauchoUnited Kingdom2024-04-02Truhlar And Truhlar Attys QUALIFIED99Anna Fali
1045Silvio J CaldareraSpain2024-04-11Buckley Miller Wright NEW33Stephen Shaw
1046Tony P PoquetteIndia2024-04-21Chemel, James L Cpa NEW54Anna Fali
1047Chavez X NickaRussia2024-04-20Chemel, James L Cpa QUALIFIED56Bernardo Dominic
1048Sinclair H NestleItaly2024-04-18Feiner Bros NEGOTIATION61Amy Elsner
1049Silvio E SlusarskiArgentina2024-04-28Chapman, Ross E Esq NEW98Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Sinclair Q FerenczCanadaAsiya Javayant PROPOSAL
Maria Q FerenczUnited KingdomBernardo Dominic PROPOSAL
Rodrigues U FollerIndiaElwin Sharvill RENEWAL
Alejandro T RutaGermanyAnna Fali UNQUALIFIED
Chavez A SergiFranceBernardo Dominic NEGOTIATION
Izzy S ShinkoIndiaXuxue Feng QUALIFIED
Cody N RutaBrazilStephen Shaw RENEWAL
Alejandro P BologniaIndiaXuxue Feng NEGOTIATION
Mujtaba F SchemmerCanadaAnna Fali UNQUALIFIED
Sinclair Y RimIndiaIvan Magalhaes PROPOSAL
Greenwood J SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues G CampainSpainBernardo Dominic RENEWAL
Munro K FollerUnited KingdomOnyama Limba UNQUALIFIED
Tony M FlosiIndiaBernardo Dominic RENEWAL
Mayumi V AlbaresUnited KingdomAmy Elsner NEW
Cody X CaudyRussiaBernardo Dominic QUALIFIED
Misaki O CaudyFranceIoni Bowcher NEGOTIATION
Stacey O StockhamItalyBernardo Dominic NEGOTIATION
James I VenereIndiaAmy Elsner NEGOTIATION
Aika P MaletBrazilAnna Fali PROPOSAL
Adams D FerenczIndiaAnna Fali NEW
Isabel C FlosiRussiaStephen Shaw NEGOTIATION
Ashley Z AlbaresJapanAnna Fali PROPOSAL
Darci Z SchemmerJapanIoni Bowcher UNQUALIFIED
Wickens A ShinkoJapanAnna Fali RENEWAL
Emily D NestleRussiaIoni Bowcher RENEWAL
Izzy D FlosiGermanyOnyama Limba RENEWAL
Ivar Z OstroskyCanadaAsiya Javayant NEW
Octavia T VenereFranceBernardo Dominic UNQUALIFIED
Chavez J WaycottFranceIoni Bowcher RENEWAL
James T MaletIndiaAnna Fali PROPOSAL
Salvatore S RimFranceElwin Sharvill NEGOTIATION
David M WhobreyRussiaElwin Sharvill QUALIFIED
Kaitlin I StockhamGermanyAsiya Javayant UNQUALIFIED
Darci C NestleRussiaAsiya Javayant NEGOTIATION
Wickens V WhobreyItalyIvan Magalhaes RENEWAL
Aika S MorascaIndiaElwin Sharvill NEGOTIATION
Costa H CaldareraItalyStephen Shaw UNQUALIFIED
Kadeem F StockhamCanadaAnna Fali PROPOSAL
Maria Y CampainSpainXuxue Feng RENEWAL
Leja E NickaAustraliaBernardo Dominic PROPOSAL
Isabel N SchemmerJapanStephen Shaw NEGOTIATION
Izzy J PerinAustraliaIvan Magalhaes NEGOTIATION
Johnson B DoeGermanyIvan Magalhaes NEGOTIATION
Ivar S FerenczIndiaOnyama Limba NEW
Aditya C BologniaRussiaIoni Bowcher PROPOSAL
Kaitlin H RimAustraliaAnna Fali UNQUALIFIED
Ashley C PerinUnited KingdomAsiya Javayant QUALIFIED
Salvatore D RulapaughUnited KingdomAsiya Javayant UNQUALIFIED
Rodrigues G GauchoCanadaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Aditya Y Doe
Tony X Malet
Aruna Y Gillian
Isabel B Shinko
Smith F Gaucho
Mujtaba Y Garufi
Claire G Inouye
Costa X Stockham
Murillo R Foller
Aruna M Saylors
Greenwood Z Marrier
Cody E Malet
Faith C Waycott
Leon L Venere
Maria L Darakjy
Aika T Dilliard
Alejandro P Vocelka
Juan T Tollner
Wickens D Caldarera
Kaitlin Q Wieser
Izzy I Figeroa
Antonio E Rim
Arvin H Kolmetz
Jeanfrancois E Waycott
Nicolas W Kolmetz
Ashley K Butt
Munro U Schemmer
Antonio Q Iturbide
Aditya J Inouye
Alejandro T Inouye
Mujtaba M Amigon
Jones U Slusarski
Greenwood P Dilliard
Sinclair G Ruta
Misaki K Venere
Octavia A Ruta
Munro Z Tollner
Clifford K Amigon
Aditya U Doe
Adams Z Schemmer
Maisha R Caldarera
Kaitlin D Rim
Ricardo X Poquette
Claire U Dilliard
Wickens X Briddick
Arvin K Kusko
Leja V Shinko
Stacey Z Figeroa
Maisha H Caldarera
Isabel V Sergi
IdCountryDate
1000Argentina2024-04-27
1001Russia2024-03-30
1002Germany2024-03-30
1003Argentina2024-04-22
1004Russia2024-04-17
1005Canada2024-04-24
1006Argentina2024-04-26
1007Argentina2024-04-24
1008Argentina2024-04-23
1009Canada2024-04-23
1010Japan2024-04-27
1011Russia2024-04-08
1012Spain2024-04-13
1013Italy2024-04-06
1014Argentina2024-04-21
1015France2024-04-14
1016France2024-04-12
1017India2024-04-14
1018Russia2024-04-24
1019France2024-04-01
1020Japan2024-04-02
1021Japan2024-04-02
1022Japan2024-04-09
1023Spain2024-04-10
1024Canada2024-04-10
1025Spain2024-04-19
1026Canada2024-04-04
1027Canada2024-04-16
1028Japan2024-04-19
1029France2024-04-19
1030Australia2024-04-11
1031Australia2024-04-28
1032United Kingdom2024-04-04
1033Spain2024-04-01
1034Argentina2024-04-03
1035France2024-04-18
1036Canada2024-04-10
1037United Kingdom2024-04-12
1038France2024-04-03
1039Germany2024-04-03
1040Germany2024-04-14
1041Italy2024-04-09
1042Italy2024-04-19
1043Spain2024-04-02
1044United Kingdom2024-04-04
1045Argentina2024-04-25
1046Spain2024-04-16
1047France2024-04-10
1048Spain2024-04-14
1049Australia2024-04-08

On-Demand Data

NameIdCountryDate
Kaitlin R Iturbide1000India2024-04-21
Emily C Nestle1001Russia2024-04-15
Smith Q Tollner1002Japan2024-04-04
Silvio P Oldroyd1003Brazil2024-04-20
Aika U Venere1004Russia2024-04-06
Maisha H Vocelka1005Canada2024-04-15
Octavia P Ruta1006Australia2024-03-30
Murillo B Doe1007Spain2024-04-03
Jefferson B Kusko1008Brazil2024-04-18
Kadeem U Caudy1009Argentina2024-04-15
Munro M Malet1010Russia2024-04-21
Ivar Q Flosi1011India2024-04-16
Ricardo Z Kusko1012India2024-04-17
Jones M Glick1013Russia2024-04-13
Antonio E Ostrosky1014Argentina2024-04-07
Maria C Amigon1015Japan2024-04-22
Isabel B Perin1016Japan2024-04-16
Aruna H Iturbide1017Argentina2024-04-15
Mujtaba V Butt1018Argentina2024-04-25
Deepesh N Albares1019Australia2024-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar T BriddickJapanIvan Magalhaes NEGOTIATION
Nicolas V BologniaItalyBernardo Dominic QUALIFIED
Mujtaba D WhobreyJapanStephen Shaw UNQUALIFIED
Jefferson O StockhamRussiaAnna Fali RENEWAL
Izzy L InouyeFranceElwin Sharvill NEGOTIATION
Jennifer T InouyeJapanStephen Shaw RENEWAL
Arvin D StockhamItalyIvan Magalhaes PROPOSAL
Rodrigues B OldroydCanadaIoni Bowcher NEGOTIATION
Aika U BriddickUnited KingdomElwin Sharvill NEGOTIATION
James H BowleyUnited KingdomElwin Sharvill RENEWAL
Ricardo D GlickGermanyXuxue Feng NEGOTIATION
Aika D CaudyArgentinaAmy Elsner RENEWAL
Clifford Y BologniaBrazilBernardo Dominic NEGOTIATION
Ricardo V VocelkaIndiaIvan Magalhaes PROPOSAL
Silvio P PerinFranceElwin Sharvill UNQUALIFIED
Smith L WieserUnited KingdomAnna Fali NEW
Emily F WhobreyBrazilIoni Bowcher QUALIFIED
Stacey V NestleIndiaBernardo Dominic PROPOSAL
Mayumi H NestleGermanyBernardo Dominic NEW
Morrow W StensethAustraliaStephen Shaw UNQUALIFIED
Johnson C InouyeArgentinaXuxue Feng NEW
Kadeem V AmigonFranceElwin Sharvill PROPOSAL
Jefferson L AlbaresSpainAsiya Javayant NEW
Darci J NickaItalyAmy Elsner QUALIFIED
Mujtaba Y FigeroaCanadaIoni Bowcher PROPOSAL
Morrow Q CampainAustraliaAnna Fali NEGOTIATION
Deepesh C IturbideCanadaElwin Sharvill UNQUALIFIED
David Z RutaRussiaIvan Magalhaes QUALIFIED
Wickens B RoysterJapanStephen Shaw RENEWAL
Greenwood C GarufiAustraliaStephen Shaw PROPOSAL
Ricardo Y StensethUnited KingdomOnyama Limba RENEWAL
Mujtaba K WhobreyCanadaAmy Elsner UNQUALIFIED
Emily E CampainCanadaXuxue Feng NEW
Sinclair T WaycottUnited KingdomIoni Bowcher NEW
Izzy V InouyeSpainIvan Magalhaes PROPOSAL
Francesco B KolmetzJapanStephen Shaw UNQUALIFIED
Ashley L DarakjyGermanyBernardo Dominic QUALIFIED
Jeanfrancois L FerenczBrazilAnna Fali QUALIFIED
Aika M BriddickBrazilAsiya Javayant UNQUALIFIED
Jennifer F OstroskyArgentinaAsiya Javayant 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>