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
Stacey Q OldroydFranceAmy Elsner QUALIFIED
Arvin W WhobreyAustraliaIoni Bowcher NEW
Jeanfrancois F OldroydJapanAmy Elsner NEW
Faith R GarufiArgentinaAmy Elsner RENEWAL
Alejandro U PoquetteCanadaElwin Sharvill QUALIFIED
Rodrigues B WhobreyRussiaAmy Elsner NEW
Jefferson F AlbaresItalyBernardo Dominic RENEWAL
Jennifer Z InouyeUnited KingdomIoni Bowcher NEGOTIATION
Isabel D StockhamFranceElwin Sharvill NEW
Emily O AlbaresAustraliaOnyama Limba PROPOSAL
Aditya E RutaItalyIvan Magalhaes QUALIFIED
Kadeem X PaprockiGermanyAsiya Javayant PROPOSAL
Maisha P WhobreyGermanyElwin Sharvill PROPOSAL
Jennifer P FigeroaSpainStephen Shaw NEGOTIATION
Salvatore W SergiFranceXuxue Feng UNQUALIFIED
Izzy S GillianItalyAmy Elsner PROPOSAL
Chavez H SchemmerArgentinaAsiya Javayant NEGOTIATION
Stacey J ChuiJapanIoni Bowcher QUALIFIED
Mayumi D WhobreyJapanAnna Fali NEGOTIATION
Leon C WieserSpainXuxue Feng NEGOTIATION
Francesco W RulapaughUnited KingdomIoni Bowcher PROPOSAL
Francesco Z PoquetteAustraliaStephen Shaw QUALIFIED
Aruna O RoysterGermanyAmy Elsner NEW
Kaitlin C BowleyArgentinaOnyama Limba PROPOSAL
Darci C PaprockiIndiaStephen Shaw PROPOSAL
Emily P RulapaughUnited KingdomOnyama Limba PROPOSAL
Ricardo W CampainArgentinaAsiya Javayant QUALIFIED
Ashley R MaletUnited KingdomOnyama Limba NEW
Arvin B WhobreyJapanOnyama Limba UNQUALIFIED
Stacey N OldroydSpainAnna Fali NEGOTIATION
Aruna K SaylorsBrazilAmy Elsner UNQUALIFIED
Ivar I DarakjyCanadaIvan Magalhaes NEW
Greenwood S MarrierSpainElwin Sharvill PROPOSAL
Nicolas S DoeJapanIvan Magalhaes NEGOTIATION
Costa P GlickAustraliaElwin Sharvill RENEWAL
Octavia W ButtGermanyAsiya Javayant UNQUALIFIED
Morrow Z CampainGermanyStephen Shaw NEGOTIATION
Rodrigues B FlosiJapanIoni Bowcher NEGOTIATION
Jones U RulapaughFranceAsiya Javayant RENEWAL
Darci M SchemmerSpainXuxue Feng PROPOSAL
James T PerinCanadaIoni Bowcher QUALIFIED
Jennifer Y NestleFranceStephen Shaw UNQUALIFIED
Adams U GillianFranceAnna Fali NEGOTIATION
Costa B ShinkoUnited KingdomOnyama Limba RENEWAL
Octavia X IturbideUnited KingdomElwin Sharvill QUALIFIED
Cody J CaldareraItalyStephen Shaw QUALIFIED
Costa I ButtIndiaAnna Fali RENEWAL
Jennifer P InouyeUnited KingdomAmy Elsner NEGOTIATION
Salvatore K NestleItalyAsiya Javayant UNQUALIFIED
Adams R OstroskyRussiaIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mujtaba B MaletArgentinaIoni Bowcher NEW
Leon I RutaSpainIvan Magalhaes QUALIFIED
Mayumi P GauchoAustraliaOnyama Limba RENEWAL
David S DilliardAustraliaAsiya Javayant PROPOSAL
Aruna R RulapaughBrazilAnna Fali PROPOSAL
Francesco J TollnerItalyIoni Bowcher NEGOTIATION
Sinclair F RutaAustraliaStephen Shaw UNQUALIFIED
Jennifer W KolmetzGermanyStephen Shaw UNQUALIFIED
Tony C InouyeRussiaAmy Elsner UNQUALIFIED
Alejandro I WhobreyArgentinaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer X CaudyCanada2024-04-16Chanay, Jeffrey A Esq QUALIFIED79Amy Elsner
1001Antonio X AlbaresIndia2024-03-28Feltz Printing Service NEW24Stephen Shaw
1002Deepesh D RulapaughGermany2024-03-30Rousseaux, Michael Esq NEGOTIATION71Ioni Bowcher
1003Emily E InouyeRussia2024-04-23Buckley Miller Wright PROPOSAL54Ioni Bowcher
1004Salvatore J BologniaItaly2024-04-04Rousseaux, Michael Esq UNQUALIFIED39Anna Fali
1005Maisha W CampainAustralia2024-04-10Benton, John B Jr PROPOSAL85Amy Elsner
1006Isabel R SlusarskiArgentina2024-04-23King, Christopher A Esq UNQUALIFIED57Amy Elsner
1007Adams L RutaRussia2024-03-27Commercial Press NEW38Bernardo Dominic
1008Alejandro M BriddickFrance2024-04-18Commercial Press UNQUALIFIED79Xuxue Feng
1009Ricardo L FigeroaArgentina2024-03-27Buckley Miller Wright PROPOSAL8Anna Fali
1010Maria B NestleCanada2024-04-04King, Christopher A Esq RENEWAL62Ivan Magalhaes
1011Mujtaba L ChuiCanada2024-04-20Dorl, James J Esq UNQUALIFIED89Ioni Bowcher
1012Aika O WhobreyFrance2024-04-12Rangoni Of Florence NEW68Amy Elsner
1013Stacey J FlosiBrazil2024-04-03Chapman, Ross E Esq UNQUALIFIED6Elwin Sharvill
1014David W KolmetzFrance2024-04-25Feltz Printing Service RENEWAL92Ivan Magalhaes
1015Ricardo O DoeJapan2024-04-06Chemel, James L Cpa NEW82Onyama Limba
1016Maria J PoquetteRussia2024-04-14Buckley Miller Wright NEW66Ivan Magalhaes
1017Mujtaba X GauchoAustralia2024-03-27Buckley Miller Wright RENEWAL46Asiya Javayant
1018Arvin X BowleyArgentina2024-04-11Printing Dimensions UNQUALIFIED47Elwin Sharvill
1019Leja O StockhamIndia2024-04-19Rangoni Of Florence UNQUALIFIED64Elwin Sharvill
1020Sinclair C MaletIndia2024-04-16King, Christopher A Esq UNQUALIFIED73Elwin Sharvill
1021Faith E GlickIndia2024-04-15Chemel, James L Cpa PROPOSAL24Anna Fali
1022Morrow U MorascaIndia2024-04-03Feltz Printing Service UNQUALIFIED13Bernardo Dominic
1023Salvatore E PaprockiJapan2024-04-06Rangoni Of Florence UNQUALIFIED41Onyama Limba
1024Jones Q SaylorsCanada2024-04-14Dorl, James J Esq NEGOTIATION12Onyama Limba
1025Adams G FollerSpain2024-04-24Feltz Printing Service NEGOTIATION3Ivan Magalhaes
1026Mayumi M WhobreyUnited Kingdom2024-04-18Morlong Associates RENEWAL29Stephen Shaw
1027Maria T RulapaughUnited Kingdom2024-03-29Truhlar And Truhlar Attys UNQUALIFIED45Asiya Javayant
1028Jeanfrancois I GarufiAustralia2024-04-15Commercial Press UNQUALIFIED7Onyama Limba
1029Sinclair K TollnerItaly2024-04-15Feiner Bros NEGOTIATION8Ivan Magalhaes
1030Claire E ButtFrance2024-04-16Feiner Bros RENEWAL49Anna Fali
1031Deepesh H WhobreyItaly2024-04-02Buckley Miller Wright PROPOSAL75Bernardo Dominic
1032Tony U AmigonRussia2024-04-14Rousseaux, Michael Esq QUALIFIED67Bernardo Dominic
1033Jeanfrancois U PerinAustralia2024-04-24Feiner Bros RENEWAL81Xuxue Feng
1034Johnson R IturbideIndia2024-04-09Printing Dimensions NEW17Elwin Sharvill
1035Rodrigues X MaletBrazil2024-04-13Dorl, James J Esq PROPOSAL83Elwin Sharvill
1036Jennifer V VenereAustralia2024-04-15Truhlar And Truhlar Attys RENEWAL85Anna Fali
1037Tony I SergiRussia2024-04-12King, Christopher A Esq NEGOTIATION98Ivan Magalhaes
1038Maisha G MaletGermany2024-04-05Dorl, James J Esq NEW77Ioni Bowcher
1039Maria O CampainIndia2024-03-29Rangoni Of Florence NEGOTIATION60Onyama Limba
1040Faith I PoquetteAustralia2024-04-11Feiner Bros PROPOSAL79Asiya Javayant
1041Salvatore X VocelkaJapan2024-03-29Rangoni Of Florence QUALIFIED91Amy Elsner
1042James Q KolmetzCanada2024-04-08Printing Dimensions PROPOSAL71Anna Fali
1043Smith A SlusarskiCanada2024-04-20Rousseaux, Michael Esq NEW46Anna Fali
1044Leon P CaldareraArgentina2024-04-20Buckley Miller Wright QUALIFIED81Stephen Shaw
1045Mayumi D GlickArgentina2024-04-16Benton, John B Jr PROPOSAL60Xuxue Feng
1046Mujtaba X OstroskyGermany2024-04-09Chapman, Ross E Esq NEGOTIATION64Anna Fali
1047Julie I DoeArgentina2024-04-07Chapman, Ross E Esq PROPOSAL34Stephen Shaw
1048Cody D CaudyBrazil2024-04-23Chanay, Jeffrey A Esq UNQUALIFIED27Anna Fali
1049Isabel Y WieserJapan2024-04-18Commercial Press QUALIFIED77Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ivar O CampainAustraliaIvan Magalhaes PROPOSAL
Leon G GauchoAustraliaOnyama Limba QUALIFIED
Aruna S VocelkaJapanIvan Magalhaes NEGOTIATION
Smith J ChuiJapanIoni Bowcher NEGOTIATION
Maisha L PerinIndiaStephen Shaw QUALIFIED
Mayumi E SlusarskiItalyXuxue Feng NEGOTIATION
Aditya L AmigonUnited KingdomElwin Sharvill PROPOSAL
Jennifer H RulapaughBrazilBernardo Dominic NEW
Jennifer U ChuiCanadaBernardo Dominic QUALIFIED
Kaitlin W ButtArgentinaIoni Bowcher RENEWAL
Nicolas R MacleadArgentinaIoni Bowcher UNQUALIFIED
Faith M MaletGermanyXuxue Feng NEW
Arvin K CampainBrazilElwin Sharvill QUALIFIED
Costa M PerinAustraliaAsiya Javayant QUALIFIED
Faith G KolmetzUnited KingdomXuxue Feng QUALIFIED
Morrow N StockhamIndiaXuxue Feng NEW
Ricardo I GarufiItalyAmy Elsner PROPOSAL
Izzy D GarufiCanadaIoni Bowcher UNQUALIFIED
David N SlusarskiArgentinaElwin Sharvill NEGOTIATION
Maria H GarufiItalyStephen Shaw QUALIFIED
Costa D SergiBrazilElwin Sharvill PROPOSAL
Rodrigues R BologniaBrazilIvan Magalhaes QUALIFIED
Emily U GlickIndiaXuxue Feng PROPOSAL
Mayumi Z RoysterJapanAnna Fali UNQUALIFIED
Francesco W DilliardJapanXuxue Feng NEGOTIATION
Costa V GarufiAustraliaAnna Fali PROPOSAL
Darci U WieserGermanyAsiya Javayant UNQUALIFIED
James Q VocelkaJapanXuxue Feng UNQUALIFIED
Alejandro I MaletFranceElwin Sharvill UNQUALIFIED
Ashley H TollnerArgentinaAsiya Javayant QUALIFIED
Costa A WaycottJapanOnyama Limba QUALIFIED
Kaitlin D OldroydFranceOnyama Limba UNQUALIFIED
Leja B KolmetzIndiaXuxue Feng UNQUALIFIED
Wickens F GarufiItalyIoni Bowcher PROPOSAL
Emily Q MacleadUnited KingdomAsiya Javayant NEW
Julie J PaprockiBrazilStephen Shaw QUALIFIED
Tony K GillianSpainIoni Bowcher UNQUALIFIED
Silvio Y RutaAustraliaOnyama Limba NEGOTIATION
Rodrigues A CampainUnited KingdomElwin Sharvill NEGOTIATION
Wickens Y FerenczBrazilOnyama Limba QUALIFIED
Emily P FerenczBrazilAnna Fali PROPOSAL
Jeanfrancois N InouyeCanadaBernardo Dominic RENEWAL
Isabel D ShinkoIndiaElwin Sharvill UNQUALIFIED
Stacey G AmigonUnited KingdomIoni Bowcher NEW
Faith Y BologniaJapanAsiya Javayant NEGOTIATION
Leja I NestleSpainIoni Bowcher QUALIFIED
Jennifer O WhobreyIndiaIoni Bowcher QUALIFIED
Kaitlin U CaldareraCanadaXuxue Feng UNQUALIFIED
Mujtaba E VocelkaJapanIoni Bowcher RENEWAL
Kadeem Y FerenczIndiaOnyama Limba PROPOSAL
Frozen Columns
Name
Octavia E Ruta
Jennifer E Wieser
Silvio G Waycott
Maria G Nestle
James Y Amigon
Octavia V Whobrey
Mujtaba Y Amigon
Silvio O Malet
Leon H Figeroa
Ashley D Tollner
Costa N Waycott
Maria W Ruta
Cody V Briddick
Leon Z Darakjy
Kadeem Z Slusarski
Alejandro B Rulapaugh
Izzy V Figeroa
Clifford M Amigon
Isabel E Garufi
Kadeem U Ostrosky
Cody H Butt
Ashley R Campain
Cody E Wieser
Rodrigues A Ruta
Clifford O Poquette
Salvatore U Paprocki
Jefferson Z Malet
Kaitlin B Marrier
Francesco I Maclead
Stacey G Chui
Kaitlin A Butt
Johnson C Ruta
Maisha M Kusko
Jeanfrancois I Gaucho
Greenwood U Butt
Chavez V Glick
Jefferson H Schemmer
Maisha T Paprocki
Morrow L Amigon
Izzy G Shinko
Wickens A Rim
Aruna U Saylors
Leja T Slusarski
James Y Butt
Tony I Briddick
Maria B Doe
David R Amigon
Ashley C Gaucho
Octavia O Flosi
Nicolas J Stockham
IdCountryDate
1000Canada2024-04-17
1001India2024-04-24
1002France2024-04-14
1003Argentina2024-04-13
1004United Kingdom2024-04-20
1005Japan2024-04-10
1006United Kingdom2024-04-02
1007Australia2024-03-31
1008Argentina2024-04-09
1009Spain2024-04-05
1010United Kingdom2024-04-01
1011Russia2024-04-01
1012Argentina2024-04-25
1013Canada2024-03-29
1014United Kingdom2024-04-05
1015Spain2024-04-11
1016United Kingdom2024-04-04
1017Argentina2024-04-03
1018Germany2024-04-23
1019Japan2024-04-03
1020Italy2024-04-18
1021United Kingdom2024-04-09
1022Canada2024-04-03
1023Russia2024-04-25
1024France2024-04-10
1025Russia2024-04-10
1026Russia2024-04-19
1027Japan2024-04-10
1028Argentina2024-04-11
1029Japan2024-04-14
1030Spain2024-04-24
1031France2024-04-01
1032Russia2024-04-05
1033Italy2024-04-07
1034United Kingdom2024-04-23
1035Brazil2024-04-17
1036Italy2024-04-15
1037Spain2024-03-28
1038Brazil2024-03-27
1039Brazil2024-04-08
1040Canada2024-04-16
1041France2024-03-28
1042Argentina2024-04-15
1043Brazil2024-04-17
1044Australia2024-04-16
1045Italy2024-04-21
1046France2024-04-12
1047India2024-04-02
1048Russia2024-03-30
1049Argentina2024-04-01

On-Demand Data

NameIdCountryDate
Tony P Vocelka1000Argentina2024-04-07
Jefferson A Schemmer1001France2024-04-22
Tony L Nestle1002India2024-04-16
Leja F Vocelka1003United Kingdom2024-04-06
Arvin M Paprocki1004India2024-04-25
Aruna R Butt1005Russia2024-04-02
Julie N Perin1006Germany2024-03-31
Stacey T Gillian1007Italy2024-03-30
Tony X Bolognia1008United Kingdom2024-04-02
Julie Z Ferencz1009India2024-03-30
Nicolas B Caldarera1010France2024-04-13
Leja R Flosi1011United Kingdom2024-04-08
Murillo Q Sergi1012Germany2024-04-21
Jefferson I Slusarski1013Japan2024-04-23
Rodrigues G Flosi1014Canada2024-04-01
Arvin Q Caudy1015Italy2024-04-22
Juan S Albares1016India2024-04-24
Jefferson C Tollner1017Canada2024-03-30
Izzy R Nicka1018Germany2024-04-11
Cody S Darakjy1019Spain2024-03-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire S IturbideCanadaIvan Magalhaes QUALIFIED
Aika O PoquetteBrazilStephen Shaw PROPOSAL
Sinclair Q RoysterItalyStephen Shaw RENEWAL
Aditya D AlbaresUnited KingdomIvan Magalhaes UNQUALIFIED
Adams Y DoeUnited KingdomStephen Shaw RENEWAL
Faith V BriddickCanadaAmy Elsner QUALIFIED
Julie D DarakjyArgentinaStephen Shaw PROPOSAL
Izzy X ChuiUnited KingdomBernardo Dominic PROPOSAL
David B WaycottAustraliaStephen Shaw NEW
Morrow P WhobreyIndiaAmy Elsner QUALIFIED
Kaitlin F MacleadIndiaElwin Sharvill QUALIFIED
Faith K IturbideRussiaAsiya Javayant RENEWAL
Jennifer X AmigonGermanyBernardo Dominic PROPOSAL
Claire J NickaRussiaIoni Bowcher RENEWAL
David P OldroydItalyIvan Magalhaes NEGOTIATION
Munro S SergiSpainBernardo Dominic QUALIFIED
Morrow U OldroydSpainAnna Fali PROPOSAL
Kaitlin R ChuiCanadaOnyama Limba PROPOSAL
Misaki H SchemmerJapanXuxue Feng UNQUALIFIED
Wickens K SlusarskiSpainIvan Magalhaes RENEWAL
Julie D CaldareraBrazilAnna Fali NEW
Smith U SlusarskiGermanyElwin Sharvill PROPOSAL
Leon A WieserAustraliaIoni Bowcher QUALIFIED
Costa Y GarufiGermanyBernardo Dominic UNQUALIFIED
Mayumi I FigeroaGermanyAmy Elsner NEGOTIATION
Maisha R CaldareraAustraliaAnna Fali QUALIFIED
Maisha P GillianIndiaBernardo Dominic NEW
Jennifer V FigeroaJapanAnna Fali PROPOSAL
Emily Q TollnerFranceElwin Sharvill NEW
Izzy J NestleUnited KingdomIoni Bowcher QUALIFIED
Wickens Z CaudyJapanIoni Bowcher RENEWAL
Maria U CaldareraBrazilXuxue Feng NEGOTIATION
Izzy E GillianSpainStephen Shaw RENEWAL
David P FerenczItalyStephen Shaw NEGOTIATION
Ashley X AlbaresFranceStephen Shaw NEGOTIATION
Claire F MarrierFranceIoni Bowcher PROPOSAL
Izzy E VocelkaBrazilBernardo Dominic UNQUALIFIED
Aruna M WhobreyItalyAsiya Javayant UNQUALIFIED
Murillo O InouyeItalyXuxue Feng QUALIFIED
Darci W OldroydItalyStephen Shaw NEW

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