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
David M GarufiSpainElwin Sharvill RENEWAL
Faith C BriddickSpainAnna Fali PROPOSAL
Ivar S GauchoUnited KingdomBernardo Dominic UNQUALIFIED
Morrow C OstroskyUnited KingdomIoni Bowcher NEW
David W VenereIndiaAsiya Javayant RENEWAL
Kaitlin J SchemmerJapanOnyama Limba NEGOTIATION
Octavia A DarakjyJapanAmy Elsner UNQUALIFIED
Izzy J AmigonAustraliaElwin Sharvill UNQUALIFIED
Mayumi H MacleadJapanStephen Shaw PROPOSAL
Mujtaba C WhobreyIndiaIoni Bowcher RENEWAL
Cody P CampainUnited KingdomAnna Fali PROPOSAL
Stacey X SlusarskiBrazilAmy Elsner QUALIFIED
Cody I KolmetzSpainAnna Fali QUALIFIED
Jefferson O WaycottGermanyIvan Magalhaes NEW
Faith Z SergiBrazilOnyama Limba UNQUALIFIED
Emily K DoeUnited KingdomOnyama Limba NEGOTIATION
Sinclair B KolmetzItalyIoni Bowcher NEW
Ashley G FlosiCanadaIoni Bowcher RENEWAL
Aruna W InouyeBrazilAsiya Javayant NEW
Kaitlin J DilliardAustraliaStephen Shaw NEW
Jefferson F KuskoRussiaIvan Magalhaes NEW
Chavez L PaprockiArgentinaStephen Shaw PROPOSAL
Emily Y AlbaresSpainOnyama Limba QUALIFIED
Francesco P DilliardUnited KingdomStephen Shaw UNQUALIFIED
Isabel Q PaprockiAustraliaAmy Elsner UNQUALIFIED
Maria D GarufiGermanyIoni Bowcher NEGOTIATION
James T WhobreyUnited KingdomIvan Magalhaes RENEWAL
David T PoquetteIndiaAmy Elsner NEW
Jones U RoysterAustraliaIoni Bowcher PROPOSAL
Greenwood K ButtAustraliaAmy Elsner UNQUALIFIED
Claire B SergiJapanBernardo Dominic NEGOTIATION
Jones Y RulapaughArgentinaStephen Shaw NEW
Chavez N BriddickItalyAsiya Javayant QUALIFIED
Smith V NickaRussiaElwin Sharvill QUALIFIED
Ricardo S GillianSpainAsiya Javayant UNQUALIFIED
Smith L StensethAustraliaIoni Bowcher PROPOSAL
Costa N ShinkoCanadaIvan Magalhaes PROPOSAL
Claire L KuskoGermanyAnna Fali RENEWAL
Francesco B OstroskyRussiaAsiya Javayant RENEWAL
Wickens J MarrierFranceOnyama Limba UNQUALIFIED
David E DoeJapanXuxue Feng QUALIFIED
Antonio D SergiJapanAmy Elsner PROPOSAL
Jefferson W FollerAustraliaStephen Shaw RENEWAL
Antonio Z FollerSpainBernardo Dominic RENEWAL
Emily R TollnerIndiaAsiya Javayant NEW
Murillo D ButtIndiaBernardo Dominic NEGOTIATION
Faith T GlickIndiaElwin Sharvill NEGOTIATION
Johnson F DarakjyArgentinaAsiya Javayant NEGOTIATION
David B GauchoIndiaIoni Bowcher UNQUALIFIED
Aika L RoysterUnited KingdomAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith M KolmetzRussiaElwin Sharvill PROPOSAL
Juan L OldroydRussiaIoni Bowcher NEW
James Z WieserJapanAmy Elsner QUALIFIED
Munro Q DoeArgentinaAmy Elsner NEGOTIATION
Stacey C DoeUnited KingdomAsiya Javayant UNQUALIFIED
Maria O OldroydFranceStephen Shaw NEGOTIATION
Sinclair N DoeGermanyAsiya Javayant NEGOTIATION
Kaitlin I CaldareraAustraliaBernardo Dominic UNQUALIFIED
Emily Z AmigonItalyAsiya Javayant QUALIFIED
Mayumi V DoeRussiaIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci E PerinUnited Kingdom2024-04-28Chemel, James L Cpa NEGOTIATION82Amy Elsner
1001Maisha P DilliardUnited Kingdom2024-04-13Buckley Miller Wright UNQUALIFIED65Asiya Javayant
1002Arvin H PoquetteItaly2024-04-21Feiner Bros NEGOTIATION68Onyama Limba
1003Chavez T FerenczSpain2024-04-23Benton, John B Jr RENEWAL23Stephen Shaw
1004Costa J GillianRussia2024-04-04Benton, John B Jr NEW56Stephen Shaw
1005Adams U CampainSpain2024-04-03Buckley Miller Wright UNQUALIFIED6Ioni Bowcher
1006Jefferson L ShinkoBrazil2024-04-14Morlong Associates NEGOTIATION74Anna Fali
1007Ashley I MacleadRussia2024-04-14Commercial Press RENEWAL49Elwin Sharvill
1008James E MacleadSpain2024-04-12Rousseaux, Michael Esq UNQUALIFIED24Xuxue Feng
1009Darci L StensethSpain2024-04-21Truhlar And Truhlar Attys NEGOTIATION34Asiya Javayant
1010Deepesh L StockhamCanada2024-04-11Feiner Bros NEGOTIATION19Asiya Javayant
1011Isabel Z OstroskyCanada2024-04-04Printing Dimensions QUALIFIED31Xuxue Feng
1012Octavia C TollnerCanada2024-04-21Dorl, James J Esq NEGOTIATION39Xuxue Feng
1013Misaki F FerenczGermany2024-04-06Morlong Associates UNQUALIFIED60Amy Elsner
1014Maisha R ShinkoRussia2024-04-07King, Christopher A Esq PROPOSAL49Bernardo Dominic
1015Aruna V OldroydAustralia2024-04-14Chemel, James L Cpa PROPOSAL40Stephen Shaw
1016Jennifer S MarrierAustralia2024-04-27Chemel, James L Cpa NEGOTIATION76Elwin Sharvill
1017Isabel U MarrierSpain2024-04-03Chanay, Jeffrey A Esq NEGOTIATION53Amy Elsner
1018Francesco T ShinkoItaly2024-04-13King, Christopher A Esq UNQUALIFIED84Ioni Bowcher
1019Juan D ChuiArgentina2024-04-17Feiner Bros PROPOSAL23Elwin Sharvill
1020Wickens L GarufiArgentina2024-04-29Morlong Associates UNQUALIFIED18Elwin Sharvill
1021James I WaycottAustralia2024-04-08Buckley Miller Wright RENEWAL65Stephen Shaw
1022Misaki R ShinkoSpain2024-04-13Benton, John B Jr RENEWAL40Ivan Magalhaes
1023Leon B BowleyItaly2024-04-10Rangoni Of Florence RENEWAL94Asiya Javayant
1024Ashley B InouyeCanada2024-04-23Commercial Press QUALIFIED17Elwin Sharvill
1025Kaitlin W KolmetzRussia2024-04-10Benton, John B Jr RENEWAL24Bernardo Dominic
1026Arvin B BriddickSpain2024-04-06Feltz Printing Service RENEWAL12Amy Elsner
1027Salvatore H BologniaCanada2024-04-10Feiner Bros PROPOSAL95Anna Fali
1028Salvatore Q TollnerIndia2024-04-14King, Christopher A Esq UNQUALIFIED29Amy Elsner
1029Costa S OstroskyGermany2024-04-22Chemel, James L Cpa NEGOTIATION73Elwin Sharvill
1030Mayumi P MaletSpain2024-04-18Chapman, Ross E Esq QUALIFIED95Ivan Magalhaes
1031Morrow H OstroskyArgentina2024-04-06Morlong Associates PROPOSAL65Xuxue Feng
1032Aditya A NestleJapan2024-04-20Commercial Press PROPOSAL58Ioni Bowcher
1033Chavez V DilliardItaly2024-04-15Morlong Associates NEW75Stephen Shaw
1034Adams I BriddickGermany2024-04-16Feltz Printing Service NEGOTIATION44Ioni Bowcher
1035James J PaprockiCanada2024-04-28Benton, John B Jr NEGOTIATION52Anna Fali
1036Mujtaba S InouyeJapan2024-04-17Commercial Press QUALIFIED68Xuxue Feng
1037Aruna T CampainIndia2024-04-12Chanay, Jeffrey A Esq NEW37Elwin Sharvill
1038Jeanfrancois C ButtSpain2024-04-29Chemel, James L Cpa UNQUALIFIED45Onyama Limba
1039Kadeem Y AmigonArgentina2024-04-09Rousseaux, Michael Esq QUALIFIED35Xuxue Feng
1040David S WaycottArgentina2024-04-14Truhlar And Truhlar Attys PROPOSAL28Amy Elsner
1041Leja B AlbaresGermany2024-04-29Truhlar And Truhlar Attys NEW40Asiya Javayant
1042Ivar S DarakjyArgentina2024-04-12Feiner Bros PROPOSAL64Stephen Shaw
1043Morrow L KuskoItaly2024-04-15Printing Dimensions NEW40Ioni Bowcher
1044Julie D KuskoUnited Kingdom2024-04-04Truhlar And Truhlar Attys PROPOSAL0Onyama Limba
1045Ivar V NestleRussia2024-04-18Buckley Miller Wright NEGOTIATION29Onyama Limba
1046Munro R ShinkoItaly2024-04-02Morlong Associates RENEWAL92Ivan Magalhaes
1047Leja S KolmetzArgentina2024-04-18Rangoni Of Florence PROPOSAL15Elwin Sharvill
1048Aika N MacleadArgentina2024-04-24Feltz Printing Service RENEWAL20Elwin Sharvill
1049Maria H SaylorsUnited Kingdom2024-04-13Truhlar And Truhlar Attys PROPOSAL18Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
David I RulapaughUnited KingdomAmy Elsner QUALIFIED
Smith R DoeUnited KingdomAnna Fali UNQUALIFIED
Francesco G MarrierCanadaAsiya Javayant NEGOTIATION
Wickens M ChuiBrazilIvan Magalhaes UNQUALIFIED
Morrow K MarrierAustraliaAnna Fali RENEWAL
Ashley A BriddickSpainBernardo Dominic UNQUALIFIED
Darci V TollnerSpainBernardo Dominic NEW
Misaki R RutaJapanAmy Elsner QUALIFIED
Leon I ChuiFranceXuxue Feng PROPOSAL
Izzy V DoeItalyIoni Bowcher PROPOSAL
Clifford P GarufiItalyOnyama Limba QUALIFIED
Wickens W WhobreyAustraliaStephen Shaw UNQUALIFIED
Deepesh H MaletSpainElwin Sharvill NEW
Wickens U WhobreyIndiaIvan Magalhaes UNQUALIFIED
Adams D VenereCanadaXuxue Feng NEW
Wickens F OstroskyUnited KingdomAmy Elsner RENEWAL
Wickens K ShinkoArgentinaAmy Elsner PROPOSAL
Francesco R VenereGermanyStephen Shaw QUALIFIED
Deepesh S AmigonIndiaElwin Sharvill UNQUALIFIED
Clifford D AlbaresArgentinaBernardo Dominic UNQUALIFIED
Deepesh F GillianSpainAmy Elsner NEW
Aika S RoysterBrazilOnyama Limba NEGOTIATION
Darci C BowleyUnited KingdomXuxue Feng RENEWAL
Clifford S PaprockiFranceIvan Magalhaes NEGOTIATION
Morrow L CampainArgentinaBernardo Dominic NEW
Sinclair A SergiArgentinaAnna Fali UNQUALIFIED
Greenwood X StockhamAustraliaAnna Fali UNQUALIFIED
Kadeem U GlickBrazilAsiya Javayant PROPOSAL
Aditya S SergiArgentinaAnna Fali PROPOSAL
Salvatore I FerenczAustraliaAsiya Javayant NEW
Emily H BriddickUnited KingdomAnna Fali RENEWAL
Tony T CaudyIndiaIvan Magalhaes PROPOSAL
Sinclair X RoysterItalyIoni Bowcher RENEWAL
Misaki W SaylorsItalyXuxue Feng NEW
Octavia T KuskoBrazilIoni Bowcher QUALIFIED
Adams G CampainCanadaElwin Sharvill NEW
Greenwood G FerenczUnited KingdomElwin Sharvill NEGOTIATION
Jones Q DilliardSpainBernardo Dominic NEW
Aruna G MorascaRussiaOnyama Limba RENEWAL
Wickens O CampainSpainBernardo Dominic NEGOTIATION
Morrow Q GarufiGermanyIvan Magalhaes UNQUALIFIED
Kaitlin I WhobreyBrazilAnna Fali NEW
Darci Z WhobreyJapanAsiya Javayant NEGOTIATION
Julie M WieserGermanyXuxue Feng PROPOSAL
Clifford S GlickJapanElwin Sharvill RENEWAL
Ashley K MaletItalyIvan Magalhaes NEW
Antonio B OldroydFranceIvan Magalhaes PROPOSAL
Silvio Q RimArgentinaOnyama Limba QUALIFIED
Tony C MacleadGermanyAsiya Javayant UNQUALIFIED
Mayumi N CampainArgentinaXuxue Feng PROPOSAL
Frozen Columns
Name
Arvin W Foller
Stacey B Dilliard
Deepesh L Slusarski
Isabel M Rim
Rodrigues G Rim
Jeanfrancois E Morasca
David B Bolognia
Jennifer Y Saylors
Claire Z Glick
Ricardo F Morasca
Johnson M Slusarski
Mayumi A Poquette
David F Chui
Mujtaba S Inouye
Maisha Q Kusko
Wickens Q Chui
Nicolas C Poquette
Jeanfrancois D Waycott
Leja I Morasca
Maria D Gaucho
Wickens M Foller
Salvatore R Inouye
Salvatore G Caldarera
Deepesh D Tollner
Munro H Glick
Wickens F Vocelka
Greenwood T Schemmer
Octavia N Briddick
Isabel J Royster
Jeanfrancois P Vocelka
Kaitlin U Amigon
Morrow C Foller
Izzy E Maclead
Aruna R Waycott
Kaitlin D Stockham
Aika O Nicka
Leon R Rulapaugh
Deepesh J Poquette
Greenwood G Kusko
Juan S Poquette
Ricardo Y Nicka
Claire V Nicka
Morrow X Dilliard
Julie X Morasca
Wickens A Rulapaugh
Morrow R Schemmer
Francesco G Stockham
Cody P Caudy
Julie E Garufi
Munro C Maclead
IdCountryDate
1000Russia2024-04-18
1001Brazil2024-04-25
1002Argentina2024-04-05
1003Argentina2024-04-20
1004Japan2024-04-05
1005United Kingdom2024-04-07
1006Australia2024-04-07
1007United Kingdom2024-04-27
1008Argentina2024-04-17
1009Canada2024-04-10
1010Italy2024-04-04
1011Canada2024-04-12
1012Italy2024-04-08
1013Argentina2024-04-01
1014Argentina2024-04-26
1015France2024-04-22
1016India2024-04-05
1017Australia2024-04-03
1018Australia2024-04-16
1019Germany2024-04-29
1020France2024-04-06
1021United Kingdom2024-04-05
1022Germany2024-04-26
1023France2024-04-20
1024Canada2024-04-24
1025Argentina2024-04-16
1026France2024-04-29
1027Argentina2024-04-19
1028Spain2024-04-21
1029Spain2024-04-29
1030Canada2024-04-10
1031Argentina2024-04-08
1032France2024-04-28
1033Australia2024-04-20
1034Canada2024-04-28
1035United Kingdom2024-04-02
1036Japan2024-04-24
1037Australia2024-04-18
1038France2024-04-12
1039Russia2024-04-26
1040Australia2024-04-07
1041Germany2024-04-01
1042Japan2024-04-16
1043Japan2024-04-02
1044India2024-04-27
1045Spain2024-04-08
1046United Kingdom2024-04-10
1047Argentina2024-04-18
1048Brazil2024-04-21
1049United Kingdom2024-04-07

On-Demand Data

NameIdCountryDate
Aditya S Bowley1000France2024-04-02
Kaitlin P Marrier1001Japan2024-04-01
Ivar D Malet1002Argentina2024-04-20
Smith Q Gaucho1003France2024-04-01
Ashley U Caldarera1004United Kingdom2024-04-06
Chavez G Briddick1005Australia2024-04-24
Izzy X Glick1006India2024-04-20
Wickens D Nestle1007Italy2024-04-17
Julie X Paprocki1008India2024-04-07
Smith E Albares1009United Kingdom2024-04-26
Isabel L Gillian1010Germany2024-04-06
Leja H Nestle1011Australia2024-04-26
Julie H Darakjy1012Brazil2024-04-26
Salvatore Z Kolmetz1013Brazil2024-04-24
Adams Z Foller1014Brazil2024-04-23
Morrow R Stenseth1015Spain2024-04-18
Clifford V Schemmer1016Argentina2024-04-19
Costa R Stenseth1017Russia2024-04-12
Munro H Oldroyd1018United Kingdom2024-04-26
David A Albares1019Canada2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair E FerenczArgentinaElwin Sharvill RENEWAL
Izzy W RimArgentinaAmy Elsner UNQUALIFIED
Mayumi F CampainSpainElwin Sharvill QUALIFIED
Leon B RoysterRussiaAsiya Javayant QUALIFIED
Alejandro Y FlosiGermanyAmy Elsner QUALIFIED
Arvin G RutaGermanyAmy Elsner PROPOSAL
Aruna S SlusarskiItalyAmy Elsner RENEWAL
Leja B BowleyItalyStephen Shaw QUALIFIED
Munro Z BriddickItalyXuxue Feng PROPOSAL
Jennifer X InouyeCanadaXuxue Feng NEW
Maria S SchemmerFranceAnna Fali PROPOSAL
Rodrigues G RimBrazilIvan Magalhaes PROPOSAL
Jennifer C InouyeUnited KingdomElwin Sharvill UNQUALIFIED
Johnson L FlosiBrazilStephen Shaw UNQUALIFIED
Sinclair X KuskoUnited KingdomIvan Magalhaes NEW
Rodrigues S BowleyGermanyElwin Sharvill PROPOSAL
Antonio I RimUnited KingdomElwin Sharvill QUALIFIED
Cody I CaudyJapanStephen Shaw NEGOTIATION
Faith I MaletGermanyStephen Shaw QUALIFIED
Tony R BriddickRussiaAnna Fali NEGOTIATION
Alejandro S CaldareraRussiaAmy Elsner PROPOSAL
Jennifer S WieserIndiaAnna Fali QUALIFIED
Emily Z MarrierGermanyXuxue Feng RENEWAL
Jones P FerenczBrazilOnyama Limba RENEWAL
Kadeem D RimSpainBernardo Dominic NEGOTIATION
Alejandro Z AmigonGermanyIvan Magalhaes PROPOSAL
Wickens J ShinkoFranceOnyama Limba RENEWAL
Emily Y CaudyArgentinaIoni Bowcher UNQUALIFIED
Johnson D InouyeCanadaIoni Bowcher PROPOSAL
Kadeem D FigeroaRussiaOnyama Limba PROPOSAL
Claire Y PoquetteBrazilAnna Fali UNQUALIFIED
Wickens Z NickaJapanAnna Fali NEGOTIATION
Izzy E PoquetteAustraliaStephen Shaw NEW
Kadeem A InouyeAustraliaAsiya Javayant UNQUALIFIED
Munro O SaylorsSpainStephen Shaw NEW
Mayumi J MacleadCanadaAnna Fali QUALIFIED
Izzy U BriddickBrazilElwin Sharvill QUALIFIED
Clifford G SchemmerIndiaXuxue Feng RENEWAL
Antonio B MacleadItalyElwin Sharvill UNQUALIFIED
Mayumi W PaprockiArgentinaAsiya Javayant 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>