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
Salvatore I GauchoFranceStephen Shaw PROPOSAL
Emily P InouyeAustraliaOnyama Limba UNQUALIFIED
Rodrigues G RimItalyAmy Elsner QUALIFIED
Isabel P BologniaGermanyElwin Sharvill PROPOSAL
Jeanfrancois K CaudyAustraliaAmy Elsner RENEWAL
Leja I StockhamBrazilElwin Sharvill NEW
Kaitlin L WaycottItalyXuxue Feng UNQUALIFIED
Maria A GlickSpainAmy Elsner UNQUALIFIED
Ricardo N MaletArgentinaStephen Shaw RENEWAL
Isabel F BowleyAustraliaAsiya Javayant UNQUALIFIED
Smith P BriddickAustraliaAmy Elsner UNQUALIFIED
Smith W VenereIndiaOnyama Limba NEW
Faith Q KolmetzIndiaAnna Fali UNQUALIFIED
Morrow U InouyeRussiaOnyama Limba RENEWAL
Ricardo O StensethJapanAsiya Javayant PROPOSAL
Ivar D GillianIndiaAmy Elsner QUALIFIED
Isabel X SchemmerJapanStephen Shaw QUALIFIED
Francesco I GlickItalyAsiya Javayant RENEWAL
Aika Q KuskoRussiaIvan Magalhaes NEGOTIATION
Nicolas X GauchoAustraliaStephen Shaw RENEWAL
Aika O NickaAustraliaElwin Sharvill NEGOTIATION
Mujtaba M ChuiGermanyElwin Sharvill RENEWAL
James S CampainFranceIoni Bowcher QUALIFIED
Leja G SchemmerSpainElwin Sharvill PROPOSAL
Nicolas F FlosiJapanXuxue Feng RENEWAL
Leon R GlickJapanAnna Fali PROPOSAL
Rodrigues J WieserCanadaIoni Bowcher PROPOSAL
Kadeem F WhobreyJapanBernardo Dominic NEW
Aditya V MaletJapanAsiya Javayant PROPOSAL
Jones Z IturbideBrazilAsiya Javayant QUALIFIED
Jones X KuskoAustraliaIoni Bowcher UNQUALIFIED
Aika M RoysterItalyXuxue Feng NEW
Jeanfrancois X ShinkoRussiaBernardo Dominic NEGOTIATION
Costa F MorascaIndiaStephen Shaw NEW
Cody N StensethRussiaOnyama Limba NEGOTIATION
Leja K IturbideArgentinaIvan Magalhaes NEW
Leja B RutaUnited KingdomElwin Sharvill NEGOTIATION
Mujtaba B RulapaughItalyElwin Sharvill RENEWAL
Alejandro A DarakjyItalyIoni Bowcher PROPOSAL
Nicolas G VenereSpainAnna Fali PROPOSAL
Murillo A SaylorsItalyElwin Sharvill UNQUALIFIED
Cody P AlbaresSpainXuxue Feng NEGOTIATION
Alejandro T MaletItalyElwin Sharvill QUALIFIED
Costa N WhobreyRussiaAnna Fali RENEWAL
Munro E KolmetzCanadaAnna Fali NEGOTIATION
Faith T GarufiCanadaXuxue Feng PROPOSAL
Tony L PaprockiGermanyXuxue Feng NEGOTIATION
Leja X BowleyAustraliaXuxue Feng NEGOTIATION
Cody W ButtItalyXuxue Feng NEW
Maisha W VocelkaArgentinaAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Greenwood U PaprockiArgentinaAnna Fali QUALIFIED
Greenwood I GillianArgentinaStephen Shaw UNQUALIFIED
Octavia Y WieserCanadaOnyama Limba NEW
Salvatore A BriddickJapanAsiya Javayant QUALIFIED
Emily U MaletGermanyOnyama Limba NEW
Costa D MorascaArgentinaElwin Sharvill UNQUALIFIED
Greenwood D DoeUnited KingdomIvan Magalhaes NEGOTIATION
Leon I MaletArgentinaAsiya Javayant PROPOSAL
Ivar C TollnerSpainOnyama Limba NEGOTIATION
Chavez Q OldroydArgentinaBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas Y RimRussia2024-04-20Printing Dimensions QUALIFIED1Amy Elsner
1001Sinclair C RulapaughArgentina2024-04-16Chanay, Jeffrey A Esq PROPOSAL16Stephen Shaw
1002Chavez C ChuiFrance2024-04-04Buckley Miller Wright UNQUALIFIED52Xuxue Feng
1003David N BologniaCanada2024-04-20Printing Dimensions RENEWAL6Xuxue Feng
1004Nicolas B WhobreyArgentina2024-04-14Rousseaux, Michael Esq UNQUALIFIED66Bernardo Dominic
1005Francesco G GarufiRussia2024-04-14Feltz Printing Service NEGOTIATION52Stephen Shaw
1006Johnson T WaycottUnited Kingdom2024-03-30King, Christopher A Esq NEW88Onyama Limba
1007Mujtaba F TollnerGermany2024-04-21Buckley Miller Wright RENEWAL9Ioni Bowcher
1008Murillo M FigeroaSpain2024-03-29Rousseaux, Michael Esq PROPOSAL75Ioni Bowcher
1009Arvin R RulapaughCanada2024-04-10Rousseaux, Michael Esq PROPOSAL76Asiya Javayant
1010Wickens N FlosiSpain2024-04-15Feltz Printing Service UNQUALIFIED59Ioni Bowcher
1011Silvio E BologniaGermany2024-04-03Buckley Miller Wright QUALIFIED61Ivan Magalhaes
1012Ricardo F FigeroaBrazil2024-04-17Dorl, James J Esq NEGOTIATION60Stephen Shaw
1013Stacey U RoysterFrance2024-04-05Chapman, Ross E Esq RENEWAL42Xuxue Feng
1014Tony K GauchoAustralia2024-04-05Benton, John B Jr PROPOSAL74Bernardo Dominic
1015Jeanfrancois F SlusarskiItaly2024-04-17Morlong Associates NEGOTIATION45Anna Fali
1016Arvin D GlickArgentina2024-03-29Morlong Associates QUALIFIED36Bernardo Dominic
1017Adams U FigeroaCanada2024-04-09Feltz Printing Service QUALIFIED72Onyama Limba
1018Leon Q MacleadUnited Kingdom2024-03-27Printing Dimensions NEW30Amy Elsner
1019Misaki Y InouyeFrance2024-04-16Dorl, James J Esq NEW16Ioni Bowcher
1020Ricardo H GarufiUnited Kingdom2024-04-23Chapman, Ross E Esq RENEWAL4Ivan Magalhaes
1021Sinclair J SaylorsArgentina2024-04-10Rousseaux, Michael Esq QUALIFIED34Amy Elsner
1022David B MaletItaly2024-03-27King, Christopher A Esq RENEWAL74Ioni Bowcher
1023Aruna J PoquetteSpain2024-04-09Rangoni Of Florence RENEWAL76Anna Fali
1024Juan H ShinkoCanada2024-04-11Dorl, James J Esq PROPOSAL17Xuxue Feng
1025Jennifer O BowleyRussia2024-03-26Chapman, Ross E Esq NEW17Anna Fali
1026Jennifer M SlusarskiCanada2024-04-11Morlong Associates PROPOSAL51Xuxue Feng
1027Arvin Y GauchoFrance2024-04-17Buckley Miller Wright NEW0Bernardo Dominic
1028Jefferson U OldroydJapan2024-04-14Morlong Associates UNQUALIFIED88Xuxue Feng
1029Octavia W MarrierFrance2024-04-07Truhlar And Truhlar Attys PROPOSAL93Onyama Limba
1030Mujtaba W RimSpain2024-04-10Dorl, James J Esq QUALIFIED33Amy Elsner
1031Aika H RutaJapan2024-03-25King, Christopher A Esq QUALIFIED9Onyama Limba
1032Nicolas D FlosiIndia2024-04-16Chapman, Ross E Esq NEW4Elwin Sharvill
1033Claire R MorascaUnited Kingdom2024-04-09Benton, John B Jr PROPOSAL87Asiya Javayant
1034Nicolas A MacleadFrance2024-04-17Dorl, James J Esq NEGOTIATION12Amy Elsner
1035Maisha T OldroydFrance2024-04-12Commercial Press PROPOSAL29Ivan Magalhaes
1036Jefferson Z MorascaRussia2024-04-08Dorl, James J Esq QUALIFIED50Bernardo Dominic
1037Salvatore O MaletRussia2024-04-18Truhlar And Truhlar Attys QUALIFIED81Stephen Shaw
1038Aruna C StensethGermany2024-04-12Rousseaux, Michael Esq PROPOSAL41Asiya Javayant
1039Wickens K MacleadIndia2024-04-09Rangoni Of Florence QUALIFIED3Anna Fali
1040Emily I SlusarskiAustralia2024-04-05Buckley Miller Wright UNQUALIFIED29Elwin Sharvill
1041Arvin N ShinkoUnited Kingdom2024-03-26Printing Dimensions RENEWAL34Ioni Bowcher
1042Cody U RulapaughArgentina2024-04-09Chanay, Jeffrey A Esq RENEWAL35Xuxue Feng
1043Costa M GauchoFrance2024-03-28Dorl, James J Esq NEW13Anna Fali
1044Arvin Q DilliardRussia2024-04-18Morlong Associates NEGOTIATION76Elwin Sharvill
1045Ricardo Z GarufiUnited Kingdom2024-04-13Morlong Associates PROPOSAL86Stephen Shaw
1046Cody Y DoeGermany2024-04-15Chanay, Jeffrey A Esq RENEWAL39Asiya Javayant
1047Mujtaba U DarakjySpain2024-03-26Feiner Bros NEW57Onyama Limba
1048Izzy Y CaldareraArgentina2024-04-08Benton, John B Jr QUALIFIED71Anna Fali
1049Adams C DoeUnited Kingdom2024-04-12Truhlar And Truhlar Attys RENEWAL31Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Sinclair X RulapaughSpainAnna Fali QUALIFIED
Wickens F FollerBrazilXuxue Feng PROPOSAL
Jones N DarakjyCanadaXuxue Feng PROPOSAL
Ricardo D GauchoArgentinaXuxue Feng QUALIFIED
David H NickaCanadaElwin Sharvill RENEWAL
Emily H ButtCanadaElwin Sharvill RENEWAL
Izzy R IturbideRussiaAmy Elsner PROPOSAL
Cody C GauchoAustraliaAsiya Javayant UNQUALIFIED
Ivar V CaudyFranceStephen Shaw NEGOTIATION
Mayumi W NestleAustraliaAsiya Javayant QUALIFIED
Francesco A MorascaCanadaElwin Sharvill NEW
Nicolas Y VenereSpainIvan Magalhaes RENEWAL
Octavia S DilliardGermanyStephen Shaw PROPOSAL
Jennifer A FerenczFranceXuxue Feng RENEWAL
Alejandro P IturbideAustraliaXuxue Feng RENEWAL
Tony A TollnerBrazilAsiya Javayant PROPOSAL
Arvin T IturbideCanadaAnna Fali RENEWAL
Stacey Q WhobreyRussiaAnna Fali PROPOSAL
Silvio K OstroskyFranceStephen Shaw UNQUALIFIED
Jones N RutaCanadaXuxue Feng PROPOSAL
Ricardo B ChuiCanadaAnna Fali PROPOSAL
Aditya L DarakjyGermanyXuxue Feng PROPOSAL
Jefferson B DarakjyAustraliaStephen Shaw NEGOTIATION
Emily O NestleUnited KingdomIvan Magalhaes QUALIFIED
Claire F MaletArgentinaStephen Shaw NEGOTIATION
Clifford P BowleyFranceOnyama Limba PROPOSAL
Ricardo Y VocelkaIndiaIoni Bowcher UNQUALIFIED
Aruna X FlosiRussiaBernardo Dominic QUALIFIED
Morrow V DoeBrazilIoni Bowcher PROPOSAL
Maisha R GlickSpainBernardo Dominic PROPOSAL
Kadeem P BriddickFranceIvan Magalhaes NEGOTIATION
Leon C GarufiAustraliaIoni Bowcher UNQUALIFIED
Juan O RutaCanadaStephen Shaw QUALIFIED
Aika Y RutaRussiaStephen Shaw NEGOTIATION
Aditya G PoquetteBrazilAsiya Javayant UNQUALIFIED
Maria W GauchoArgentinaStephen Shaw NEGOTIATION
Rodrigues G RoysterIndiaAmy Elsner NEGOTIATION
Juan E AmigonAustraliaAnna Fali PROPOSAL
Ashley M BriddickItalyElwin Sharvill NEGOTIATION
Jefferson K ShinkoFranceAmy Elsner UNQUALIFIED
Antonio T RimSpainAmy Elsner UNQUALIFIED
Jefferson V ButtIndiaIvan Magalhaes NEGOTIATION
Kaitlin V VenereArgentinaOnyama Limba NEW
Aika Q SchemmerBrazilIvan Magalhaes NEGOTIATION
Leja L GlickUnited KingdomBernardo Dominic RENEWAL
Leja K VocelkaAustraliaAnna Fali UNQUALIFIED
Sinclair F BowleyRussiaStephen Shaw PROPOSAL
Arvin Q ChuiJapanIvan Magalhaes NEW
Salvatore D AlbaresSpainAsiya Javayant NEGOTIATION
Cody H MacleadIndiaXuxue Feng QUALIFIED
Frozen Columns
Name
Tony A Maclead
Jefferson U Iturbide
Leja F Ostrosky
David V Slusarski
David Z Ruta
Murillo R Poquette
Leon L Figeroa
Misaki H Flosi
Greenwood P Gillian
David G Darakjy
Mujtaba P Ostrosky
Rodrigues I Maclead
Costa F Rulapaugh
Mayumi T Poquette
Adams S Bowley
Mayumi R Garufi
Nicolas J Saylors
Greenwood S Gaucho
Munro T Ruta
Maisha F Caldarera
James Q Chui
Julie V Bowley
Maisha J Malet
Emily Q Marrier
Isabel R Oldroyd
Greenwood K Maclead
Stacey J Schemmer
Sinclair E Malet
Adams T Foller
Smith Y Inouye
Nicolas C Shinko
Silvio O Caldarera
Arvin Z Ostrosky
Nicolas V Bolognia
Cody Z Royster
Johnson X Saylors
Jefferson Y Stenseth
Maria H Ruta
Greenwood O Royster
Ashley B Kolmetz
Alejandro X Nestle
Rodrigues H Tollner
David M Iturbide
Aruna A Kusko
David S Paprocki
Francesco P Marrier
Kadeem W Flosi
Clifford S Stenseth
Jefferson X Caldarera
Murillo O Stenseth
IdCountryDate
1000Russia2024-04-23
1001Italy2024-04-13
1002Japan2024-04-13
1003Japan2024-04-17
1004Spain2024-04-18
1005Russia2024-03-29
1006India2024-04-14
1007India2024-04-13
1008Italy2024-04-13
1009Japan2024-04-15
1010Brazil2024-03-31
1011Japan2024-04-08
1012United Kingdom2024-04-22
1013United Kingdom2024-04-19
1014Italy2024-04-10
1015India2024-04-01
1016Brazil2024-04-07
1017United Kingdom2024-04-15
1018Canada2024-04-06
1019India2024-04-05
1020Spain2024-04-15
1021Australia2024-04-22
1022Japan2024-04-14
1023Italy2024-04-21
1024United Kingdom2024-04-22
1025Brazil2024-04-22
1026Italy2024-03-28
1027Argentina2024-03-27
1028Argentina2024-03-30
1029India2024-04-15
1030Australia2024-04-14
1031Italy2024-03-25
1032Spain2024-04-07
1033France2024-04-15
1034Italy2024-04-01
1035Germany2024-03-30
1036Australia2024-04-20
1037Italy2024-04-07
1038Japan2024-04-18
1039Japan2024-04-18
1040Germany2024-04-23
1041Germany2024-04-12
1042Germany2024-04-04
1043United Kingdom2024-03-31
1044Italy2024-04-20
1045United Kingdom2024-03-29
1046India2024-03-29
1047Italy2024-04-02
1048Italy2024-04-03
1049India2024-03-28

On-Demand Data

NameIdCountryDate
Stacey S Rulapaugh1000India2024-04-22
Sinclair T Slusarski1001Japan2024-04-10
Misaki H Venere1002Russia2024-04-09
Ivar I Vocelka1003Germany2024-04-12
Clifford W Butt1004Brazil2024-04-16
Wickens M Tollner1005India2024-03-28
Octavia P Morasca1006Argentina2024-03-31
Faith H Malet1007Brazil2024-04-13
Mayumi E Paprocki1008Germany2024-04-14
Alejandro K Vocelka1009Spain2024-04-09
Kaitlin I Sergi1010Argentina2024-04-02
Ashley F Maclead1011Italy2024-04-03
Jefferson M Caudy1012Japan2024-04-04
Julie J Saylors1013Russia2024-04-22
Adams N Kolmetz1014Japan2024-04-20
Izzy U Paprocki1015Italy2024-04-04
Jeanfrancois V Paprocki1016Australia2024-04-17
Faith V Stenseth1017Argentina2024-03-29
Faith L Marrier1018Australia2024-04-01
Greenwood L Chui1019United Kingdom2024-03-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy O SlusarskiIndiaXuxue Feng NEW
Stacey G IturbideSpainIvan Magalhaes QUALIFIED
Ashley X MaletAustraliaAsiya Javayant NEGOTIATION
Clifford X VocelkaArgentinaXuxue Feng PROPOSAL
Isabel I AlbaresItalyIvan Magalhaes NEGOTIATION
Clifford U FollerIndiaIoni Bowcher QUALIFIED
Jennifer A SergiRussiaStephen Shaw RENEWAL
Faith W CaudyUnited KingdomXuxue Feng PROPOSAL
Munro L CaldareraRussiaBernardo Dominic UNQUALIFIED
Sinclair R SaylorsGermanyStephen Shaw NEGOTIATION
Rodrigues I FollerFranceIoni Bowcher NEGOTIATION
Adams O TollnerIndiaAmy Elsner UNQUALIFIED
Kadeem N RulapaughFranceBernardo Dominic QUALIFIED
Kadeem H WieserItalyIvan Magalhaes QUALIFIED
Murillo R VenereItalyXuxue Feng NEGOTIATION
Stacey O RimArgentinaXuxue Feng NEW
Adams E MarrierArgentinaOnyama Limba UNQUALIFIED
Aruna A InouyeBrazilAnna Fali NEGOTIATION
Aika C MacleadSpainElwin Sharvill PROPOSAL
Tony Y BowleyUnited KingdomAmy Elsner RENEWAL
Clifford N ShinkoBrazilIvan Magalhaes NEW
Darci L OldroydBrazilIvan Magalhaes UNQUALIFIED
Aika E SergiItalyStephen Shaw UNQUALIFIED
Mayumi T NestleSpainElwin Sharvill NEGOTIATION
Clifford L PoquetteBrazilIoni Bowcher RENEWAL
Johnson Q CampainArgentinaAnna Fali UNQUALIFIED
James H WhobreyFranceOnyama Limba NEGOTIATION
Ivar U PaprockiCanadaAnna Fali NEGOTIATION
Isabel L ButtAustraliaIoni Bowcher RENEWAL
Deepesh M DarakjyBrazilOnyama Limba NEW
Faith H OldroydBrazilAsiya Javayant PROPOSAL
Cody L AlbaresFranceOnyama Limba UNQUALIFIED
Juan M DilliardArgentinaElwin Sharvill PROPOSAL
Mayumi I RimBrazilBernardo Dominic NEW
Ivar W OldroydUnited KingdomBernardo Dominic NEGOTIATION
Jennifer L SlusarskiGermanyIvan Magalhaes UNQUALIFIED
Ivar W FigeroaUnited KingdomStephen Shaw RENEWAL
Rodrigues S OstroskyIndiaAmy Elsner PROPOSAL
Murillo T OldroydSpainStephen Shaw NEGOTIATION
Antonio B KolmetzCanadaXuxue Feng RENEWAL

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