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
Mujtaba C KuskoIndiaStephen Shaw UNQUALIFIED
Salvatore T NestleSpainAnna Fali QUALIFIED
Jeanfrancois Y SaylorsFranceAmy Elsner NEGOTIATION
Kadeem Z GlickBrazilAmy Elsner UNQUALIFIED
Darci S FollerCanadaElwin Sharvill NEW
Mujtaba R WieserBrazilAmy Elsner UNQUALIFIED
Salvatore D GillianRussiaXuxue Feng NEGOTIATION
Cody D VenereUnited KingdomStephen Shaw NEW
Tony L ChuiFranceElwin Sharvill NEW
Juan S StensethUnited KingdomElwin Sharvill NEGOTIATION
David F VocelkaGermanyIvan Magalhaes QUALIFIED
Arvin U CampainItalyOnyama Limba PROPOSAL
Smith C FigeroaRussiaAmy Elsner NEGOTIATION
Cody S CaldareraIndiaAmy Elsner UNQUALIFIED
Ricardo S TollnerJapanAnna Fali QUALIFIED
Darci X CaudySpainElwin Sharvill RENEWAL
Wickens N MarrierFranceStephen Shaw NEW
Claire G MacleadItalyOnyama Limba NEGOTIATION
Adams S WhobreyUnited KingdomXuxue Feng QUALIFIED
Aruna E IturbideFranceIoni Bowcher QUALIFIED
Octavia R SlusarskiSpainIvan Magalhaes QUALIFIED
Ricardo W BriddickArgentinaIvan Magalhaes UNQUALIFIED
Octavia Y PerinItalyStephen Shaw NEGOTIATION
Jones T InouyeJapanAnna Fali NEGOTIATION
Silvio J GillianCanadaIvan Magalhaes NEW
Nicolas Q DarakjyCanadaBernardo Dominic RENEWAL
Kaitlin I MarrierFranceAsiya Javayant QUALIFIED
Adams X ShinkoGermanyIvan Magalhaes PROPOSAL
Misaki F InouyeAustraliaBernardo Dominic QUALIFIED
Faith X MaletItalyAsiya Javayant NEGOTIATION
Smith E AlbaresIndiaXuxue Feng NEW
Sinclair V DoeUnited KingdomElwin Sharvill NEGOTIATION
Wickens V MorascaIndiaBernardo Dominic PROPOSAL
Wickens S SaylorsBrazilOnyama Limba QUALIFIED
Aditya X BologniaBrazilIvan Magalhaes NEW
Greenwood A GarufiItalyElwin Sharvill QUALIFIED
Kaitlin M VenereFranceIvan Magalhaes UNQUALIFIED
Jennifer P BriddickUnited KingdomStephen Shaw QUALIFIED
Smith T KuskoCanadaAsiya Javayant PROPOSAL
Jennifer K KolmetzFranceOnyama Limba NEGOTIATION
David L KolmetzBrazilIvan Magalhaes RENEWAL
Faith U GauchoFranceXuxue Feng UNQUALIFIED
David M PaprockiGermanyStephen Shaw NEW
Munro T MacleadFranceIoni Bowcher NEGOTIATION
Adams T MorascaRussiaOnyama Limba NEW
Aika J AmigonJapanStephen Shaw PROPOSAL
Greenwood E SaylorsFranceXuxue Feng NEW
Maisha M AlbaresFranceAnna Fali NEGOTIATION
Kaitlin Z CaudyGermanyBernardo Dominic NEGOTIATION
Stacey L BologniaCanadaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy Z RutaCanadaIvan Magalhaes PROPOSAL
Kaitlin K RulapaughGermanyAsiya Javayant UNQUALIFIED
Alejandro M MarrierRussiaElwin Sharvill NEGOTIATION
Jennifer E SaylorsUnited KingdomIoni Bowcher PROPOSAL
Emily W MaletUnited KingdomIvan Magalhaes UNQUALIFIED
Ashley J GlickSpainAsiya Javayant NEW
Emily F FlosiSpainIvan Magalhaes UNQUALIFIED
David Y MaletItalyElwin Sharvill NEGOTIATION
Mayumi Y CaudyGermanyXuxue Feng UNQUALIFIED
Nicolas X ShinkoSpainAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore M DilliardGermany2024-04-07Feltz Printing Service RENEWAL44Stephen Shaw
1001Francesco B SlusarskiJapan2024-04-18Rangoni Of Florence UNQUALIFIED34Amy Elsner
1002Adams V FollerBrazil2024-04-20Morlong Associates NEGOTIATION23Xuxue Feng
1003Maria L MorascaSpain2024-04-18Truhlar And Truhlar Attys QUALIFIED22Bernardo Dominic
1004Sinclair I MacleadItaly2024-04-11Feiner Bros UNQUALIFIED49Elwin Sharvill
1005Emily W RimIndia2024-04-06Commercial Press QUALIFIED39Onyama Limba
1006Maisha Y BowleyItaly2024-04-06Feiner Bros QUALIFIED80Ioni Bowcher
1007Johnson P GlickSpain2024-03-28King, Christopher A Esq PROPOSAL75Bernardo Dominic
1008Nicolas P ShinkoFrance2024-04-04Benton, John B Jr PROPOSAL85Amy Elsner
1009Darci Q TollnerBrazil2024-04-19Feltz Printing Service QUALIFIED10Elwin Sharvill
1010Francesco C ChuiAustralia2024-04-10Rangoni Of Florence NEGOTIATION63Stephen Shaw
1011Alejandro X DoeFrance2024-04-23Truhlar And Truhlar Attys NEGOTIATION26Amy Elsner
1012Adams C InouyeSpain2024-04-12Feltz Printing Service NEGOTIATION74Asiya Javayant
1013Jefferson A FlosiUnited Kingdom2024-03-30Truhlar And Truhlar Attys QUALIFIED63Amy Elsner
1014Ashley Q MarrierItaly2024-04-20Morlong Associates RENEWAL83Bernardo Dominic
1015Kadeem M KolmetzJapan2024-04-16Rousseaux, Michael Esq PROPOSAL83Ivan Magalhaes
1016Claire A RimArgentina2024-04-04Buckley Miller Wright PROPOSAL98Anna Fali
1017Mujtaba A CaldareraCanada2024-04-12Chemel, James L Cpa UNQUALIFIED66Xuxue Feng
1018Alejandro S WieserRussia2024-04-21Buckley Miller Wright UNQUALIFIED14Xuxue Feng
1019Ricardo E ButtIndia2024-04-22Dorl, James J Esq UNQUALIFIED49Ioni Bowcher
1020Juan M CaldareraCanada2024-04-23Feltz Printing Service PROPOSAL28Onyama Limba
1021Silvio J SaylorsAustralia2024-04-22Chemel, James L Cpa NEW48Xuxue Feng
1022Aditya L AmigonGermany2024-04-19Dorl, James J Esq NEW69Stephen Shaw
1023Nicolas U DoeArgentina2024-04-11Feiner Bros NEW34Amy Elsner
1024Tony D GauchoSpain2024-04-16Buckley Miller Wright RENEWAL43Amy Elsner
1025Deepesh E RutaItaly2024-03-28Feiner Bros PROPOSAL83Ioni Bowcher
1026Izzy H RoysterItaly2024-04-23Printing Dimensions RENEWAL87Bernardo Dominic
1027Aika H OstroskyJapan2024-04-12Rangoni Of Florence UNQUALIFIED11Xuxue Feng
1028Maisha B MarrierJapan2024-04-04King, Christopher A Esq PROPOSAL19Asiya Javayant
1029Nicolas L NickaAustralia2024-04-09Feltz Printing Service PROPOSAL21Amy Elsner
1030Munro Z IturbideFrance2024-04-12King, Christopher A Esq UNQUALIFIED12Ivan Magalhaes
1031Mayumi N BowleyItaly2024-04-02Rousseaux, Michael Esq RENEWAL94Elwin Sharvill
1032Julie L MarrierCanada2024-04-07Feltz Printing Service NEW85Stephen Shaw
1033Antonio F ChuiAustralia2024-04-20Rousseaux, Michael Esq NEW1Stephen Shaw
1034Rodrigues A MorascaUnited Kingdom2024-04-04Chanay, Jeffrey A Esq NEGOTIATION81Amy Elsner
1035Ivar J CampainUnited Kingdom2024-03-29Chanay, Jeffrey A Esq QUALIFIED96Amy Elsner
1036Sinclair Z DarakjyAustralia2024-03-29Chemel, James L Cpa PROPOSAL37Ivan Magalhaes
1037Johnson P FollerArgentina2024-04-05Chanay, Jeffrey A Esq RENEWAL45Elwin Sharvill
1038Jones Y WaycottGermany2024-04-17Rangoni Of Florence UNQUALIFIED48Bernardo Dominic
1039Izzy T KolmetzFrance2024-04-01Printing Dimensions PROPOSAL54Ivan Magalhaes
1040Greenwood G CaudyIndia2024-04-10Feiner Bros UNQUALIFIED29Amy Elsner
1041Morrow E ShinkoJapan2024-04-21Rousseaux, Michael Esq PROPOSAL40Ivan Magalhaes
1042Mayumi Y FollerItaly2024-04-18Morlong Associates QUALIFIED64Ivan Magalhaes
1043Jennifer J MacleadSpain2024-03-26Morlong Associates PROPOSAL8Stephen Shaw
1044Mayumi W DarakjyFrance2024-04-21Dorl, James J Esq QUALIFIED82Onyama Limba
1045Aditya N GlickSpain2024-04-17King, Christopher A Esq RENEWAL33Amy Elsner
1046Mujtaba V DilliardRussia2024-04-23Chapman, Ross E Esq UNQUALIFIED82Onyama Limba
1047Mayumi J GarufiRussia2024-04-13Feltz Printing Service QUALIFIED9Anna Fali
1048Murillo Z StockhamItaly2024-03-31Chapman, Ross E Esq UNQUALIFIED88Bernardo Dominic
1049Stacey G NestleRussia2024-04-20King, Christopher A Esq NEGOTIATION37Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Costa E SaylorsJapanIoni Bowcher UNQUALIFIED
Mujtaba K RutaSpainElwin Sharvill QUALIFIED
Wickens L StockhamCanadaBernardo Dominic QUALIFIED
Leja Z RutaCanadaBernardo Dominic RENEWAL
Nicolas U NickaIndiaIvan Magalhaes NEGOTIATION
Murillo F OldroydFranceIoni Bowcher QUALIFIED
Smith E OstroskyBrazilIvan Magalhaes NEW
Costa K MaletArgentinaXuxue Feng RENEWAL
Wickens X ShinkoCanadaAnna Fali NEW
Faith V AlbaresFranceElwin Sharvill PROPOSAL
Kadeem H PoquetteSpainXuxue Feng PROPOSAL
Munro N ButtArgentinaXuxue Feng UNQUALIFIED
Jennifer E FlosiAustraliaElwin Sharvill UNQUALIFIED
Misaki H ShinkoGermanyElwin Sharvill NEGOTIATION
Rodrigues R VenereSpainAnna Fali RENEWAL
Morrow U CaudyRussiaAmy Elsner PROPOSAL
Stacey S NestleSpainIvan Magalhaes NEW
Isabel E MacleadUnited KingdomXuxue Feng PROPOSAL
Ivar G InouyeJapanAnna Fali NEGOTIATION
Maisha N NestleCanadaIoni Bowcher NEGOTIATION
Darci R NickaItalyIoni Bowcher RENEWAL
Leja R SchemmerFranceOnyama Limba NEGOTIATION
Misaki Q BriddickGermanyAmy Elsner QUALIFIED
Aditya E GarufiAustraliaBernardo Dominic NEGOTIATION
Wickens E RimArgentinaIoni Bowcher NEGOTIATION
Cody J RoysterArgentinaIoni Bowcher QUALIFIED
Darci T PerinUnited KingdomIvan Magalhaes UNQUALIFIED
Faith L CampainArgentinaOnyama Limba RENEWAL
Francesco U MacleadSpainElwin Sharvill NEW
Tony E ChuiBrazilAsiya Javayant RENEWAL
Kadeem K RimItalyStephen Shaw PROPOSAL
Tony H IturbideBrazilAsiya Javayant PROPOSAL
Leon U IturbideBrazilIvan Magalhaes UNQUALIFIED
Faith A MarrierFranceIoni Bowcher PROPOSAL
Maria A MorascaRussiaAnna Fali NEW
Mayumi Q RulapaughJapanIvan Magalhaes RENEWAL
Jefferson T RulapaughItalyAmy Elsner NEW
Ashley E CampainUnited KingdomOnyama Limba PROPOSAL
Aruna Y GauchoRussiaIoni Bowcher NEW
Misaki W NestleIndiaBernardo Dominic RENEWAL
Ricardo P SlusarskiBrazilStephen Shaw QUALIFIED
Juan T FerenczCanadaAnna Fali PROPOSAL
Juan B BowleyItalyAmy Elsner NEGOTIATION
Izzy C TollnerAustraliaIvan Magalhaes RENEWAL
Alejandro K NestleFranceAnna Fali NEW
Munro K SchemmerIndiaAmy Elsner NEGOTIATION
Jeanfrancois O AlbaresRussiaElwin Sharvill UNQUALIFIED
Jefferson Q SergiFranceAnna Fali NEW
Izzy W CaudyIndiaAmy Elsner PROPOSAL
Arvin B SergiIndiaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Leon K Schemmer
Julie C Slusarski
James Q Venere
Deepesh C Kusko
Greenwood S Glick
Greenwood J Butt
Kadeem G Butt
Jeanfrancois P Schemmer
Stacey Q Nicka
Ricardo L Wieser
Jones D Inouye
Mujtaba F Ruta
Izzy D Campain
Johnson K Nestle
Greenwood O Gillian
Silvio I Briddick
David R Morasca
Salvatore B Gaucho
James S Stenseth
Jeanfrancois R Slusarski
Alejandro G Stockham
Misaki Q Vocelka
Chavez Y Chui
Ashley B Wieser
Aruna W Campain
Francesco A Bolognia
Jeanfrancois V Malet
Costa Q Glick
Aruna W Maclead
Jennifer O Perin
Leon F Royster
Sinclair I Malet
Leja D Wieser
Leon Y Royster
Rodrigues F Campain
Misaki E Campain
Jennifer L Venere
Jeanfrancois I Butt
Clifford P Bolognia
Darci F Nestle
Greenwood D Morasca
Darci K Foller
Adams I Shinko
Juan Z Campain
Sinclair X Ruta
Silvio U Poquette
Costa N Ferencz
Octavia Y Nestle
Juan I Bowley
Greenwood N Bowley
IdCountryDate
1000Brazil2024-04-11
1001Japan2024-04-05
1002Brazil2024-04-13
1003Australia2024-04-21
1004Japan2024-04-05
1005Spain2024-03-27
1006Russia2024-04-18
1007Italy2024-04-16
1008Spain2024-04-16
1009India2024-04-09
1010Argentina2024-04-20
1011United Kingdom2024-04-09
1012Brazil2024-04-23
1013Spain2024-04-18
1014France2024-04-17
1015Australia2024-04-12
1016France2024-04-19
1017Spain2024-04-14
1018Argentina2024-04-09
1019United Kingdom2024-03-31
1020Spain2024-04-14
1021Germany2024-04-21
1022Spain2024-04-23
1023Spain2024-03-27
1024France2024-04-20
1025Australia2024-04-08
1026Japan2024-04-23
1027Germany2024-04-22
1028Canada2024-04-16
1029Canada2024-04-21
1030Russia2024-04-09
1031Russia2024-04-05
1032Italy2024-04-01
1033Argentina2024-04-05
1034Argentina2024-03-31
1035India2024-04-15
1036Spain2024-04-05
1037France2024-04-22
1038Argentina2024-04-02
1039Argentina2024-04-14
1040India2024-04-20
1041Russia2024-03-30
1042Australia2024-04-11
1043United Kingdom2024-04-19
1044Brazil2024-04-21
1045France2024-04-03
1046Spain2024-04-01
1047Spain2024-03-29
1048France2024-04-13
1049Brazil2024-04-23

On-Demand Data

NameIdCountryDate
Ricardo W Marrier1000Italy2024-04-14
Wickens C Chui1001India2024-04-18
Deepesh F Nicka1002Brazil2024-04-19
James B Nestle1003Australia2024-04-04
Cody Z Foller1004Spain2024-03-28
Jennifer J Darakjy1005France2024-04-04
Clifford K Shinko1006Italy2024-04-02
Costa B Shinko1007India2024-04-01
Mayumi W Dilliard1008Russia2024-04-05
Kadeem N Paprocki1009Russia2024-04-05
Maria P Ostrosky1010Russia2024-03-26
David I Kolmetz1011Argentina2024-04-23
Stacey M Amigon1012Argentina2024-03-28
Ricardo U Kusko1013Russia2024-04-14
Sinclair I Chui1014Spain2024-04-18
David L Caldarera1015France2024-04-16
Silvio Z Foller1016India2024-04-17
Chavez S Slusarski1017Argentina2024-04-12
Ivar B Doe1018Germany2024-04-24
Octavia S Perin1019Brazil2024-04-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford Z BologniaBrazilIoni Bowcher PROPOSAL
Costa Y NickaAustraliaXuxue Feng UNQUALIFIED
Johnson C DoeRussiaAnna Fali NEW
Rodrigues P WaycottUnited KingdomOnyama Limba UNQUALIFIED
David K WieserArgentinaAmy Elsner NEW
Cody S StensethFranceIoni Bowcher NEGOTIATION
Silvio X KolmetzUnited KingdomOnyama Limba NEW
Mayumi R AlbaresCanadaIoni Bowcher QUALIFIED
Ricardo T SlusarskiFranceXuxue Feng PROPOSAL
Ricardo L KolmetzBrazilStephen Shaw NEW
Johnson P PerinItalyStephen Shaw UNQUALIFIED
Kadeem I AlbaresArgentinaBernardo Dominic QUALIFIED
Rodrigues F VocelkaIndiaIoni Bowcher RENEWAL
Jones C SaylorsCanadaAmy Elsner UNQUALIFIED
Cody K MacleadJapanBernardo Dominic PROPOSAL
David F FerenczSpainAnna Fali UNQUALIFIED
David H MorascaJapanElwin Sharvill PROPOSAL
Sinclair G CampainAustraliaElwin Sharvill RENEWAL
Rodrigues R NestleCanadaIoni Bowcher NEW
Arvin T OldroydFranceXuxue Feng NEGOTIATION
Rodrigues D GarufiRussiaAnna Fali UNQUALIFIED
Munro H ShinkoArgentinaAnna Fali RENEWAL
Darci Z RulapaughJapanIvan Magalhaes NEW
Arvin S DilliardSpainAnna Fali QUALIFIED
Costa Z MaletItalyStephen Shaw PROPOSAL
Wickens H MarrierAustraliaXuxue Feng UNQUALIFIED
Mayumi I RimCanadaAmy Elsner UNQUALIFIED
Kaitlin A WhobreyIndiaXuxue Feng PROPOSAL
Greenwood W PaprockiItalyAsiya Javayant RENEWAL
Octavia V CaldareraIndiaOnyama Limba UNQUALIFIED
Kaitlin J ButtAustraliaBernardo Dominic RENEWAL
Kadeem A TollnerUnited KingdomBernardo Dominic NEGOTIATION
Aika A StensethRussiaBernardo Dominic RENEWAL
Adams R CaldareraAustraliaAmy Elsner NEGOTIATION
Antonio Z SchemmerBrazilBernardo Dominic QUALIFIED
Emily X IturbideUnited KingdomIvan Magalhaes RENEWAL
Jefferson I KolmetzRussiaAsiya Javayant PROPOSAL
James U CaudyJapanBernardo Dominic PROPOSAL
Cody T SchemmerGermanyBernardo Dominic NEW
Leon N FigeroaUnited KingdomAnna Fali 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>