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
Alejandro K MacleadBrazilXuxue Feng NEGOTIATION
Aika L BologniaUnited KingdomIvan Magalhaes RENEWAL
Aika U RutaAustraliaIvan Magalhaes QUALIFIED
Leja Z CampainUnited KingdomOnyama Limba QUALIFIED
Nicolas P CaudyFranceAmy Elsner NEW
Salvatore Q PaprockiRussiaAnna Fali QUALIFIED
Jones V AlbaresJapanXuxue Feng RENEWAL
Kaitlin K SaylorsBrazilBernardo Dominic RENEWAL
Leon X BriddickIndiaIoni Bowcher NEGOTIATION
Kaitlin G GillianSpainAnna Fali UNQUALIFIED
Smith C FlosiAustraliaStephen Shaw PROPOSAL
Deepesh G FigeroaFranceStephen Shaw RENEWAL
Leja M MarrierArgentinaAsiya Javayant UNQUALIFIED
Jennifer E RutaArgentinaOnyama Limba RENEWAL
Izzy C NickaItalyStephen Shaw NEGOTIATION
Aditya L GauchoFranceAmy Elsner RENEWAL
Nicolas B OstroskyFranceIoni Bowcher NEW
Julie C FerenczAustraliaElwin Sharvill QUALIFIED
Arvin T KuskoIndiaOnyama Limba PROPOSAL
Morrow V SergiBrazilBernardo Dominic QUALIFIED
Greenwood H DilliardIndiaIoni Bowcher NEGOTIATION
David Y GarufiUnited KingdomIoni Bowcher RENEWAL
Leon Q RulapaughBrazilBernardo Dominic PROPOSAL
Isabel U InouyeCanadaAsiya Javayant RENEWAL
Aika I AmigonFranceAsiya Javayant RENEWAL
Kadeem Z RoysterUnited KingdomStephen Shaw RENEWAL
Rodrigues W KolmetzRussiaBernardo Dominic UNQUALIFIED
Clifford N DarakjyGermanyBernardo Dominic NEGOTIATION
Ashley Z OstroskyBrazilAsiya Javayant RENEWAL
Mujtaba D FerenczIndiaAnna Fali RENEWAL
Mayumi F SchemmerJapanXuxue Feng NEW
Ricardo D BriddickItalyBernardo Dominic NEW
Jones X AmigonFranceAnna Fali NEGOTIATION
David Q FerenczBrazilXuxue Feng UNQUALIFIED
Mujtaba Z BologniaItalyBernardo Dominic NEW
Ashley A AmigonJapanXuxue Feng RENEWAL
Antonio G BowleyBrazilIoni Bowcher NEGOTIATION
Emily W PoquetteArgentinaStephen Shaw QUALIFIED
Jefferson T PerinCanadaIoni Bowcher UNQUALIFIED
Cody C SlusarskiBrazilAmy Elsner NEGOTIATION
Morrow A RutaAustraliaBernardo Dominic QUALIFIED
Tony T SaylorsSpainAmy Elsner NEGOTIATION
Francesco D OstroskyCanadaStephen Shaw NEW
Misaki E SchemmerArgentinaOnyama Limba NEW
Alejandro X KolmetzCanadaStephen Shaw QUALIFIED
David E NickaCanadaXuxue Feng NEGOTIATION
Ivar M TollnerItalyAmy Elsner PROPOSAL
Emily Z ShinkoJapanAmy Elsner QUALIFIED
Aruna K MaletJapanXuxue Feng NEGOTIATION
Jeanfrancois G WieserBrazilAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson L DilliardCanadaElwin Sharvill PROPOSAL
Clifford N RoysterItalyIoni Bowcher UNQUALIFIED
Silvio A MarrierJapanXuxue Feng RENEWAL
Munro D WaycottIndiaBernardo Dominic PROPOSAL
Octavia S GauchoCanadaOnyama Limba PROPOSAL
Jeanfrancois L ButtBrazilAnna Fali RENEWAL
Maria S BriddickUnited KingdomAmy Elsner UNQUALIFIED
Izzy T RimArgentinaIvan Magalhaes NEW
Aditya V GlickRussiaIvan Magalhaes RENEWAL
Izzy G RutaGermanyAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro V StockhamIndia2024-04-04Feltz Printing Service RENEWAL72Asiya Javayant
1001Darci H DilliardCanada2024-04-21Truhlar And Truhlar Attys NEGOTIATION66Xuxue Feng
1002Silvio K VenereUnited Kingdom2024-04-05Buckley Miller Wright RENEWAL8Xuxue Feng
1003Smith B CaldareraJapan2024-04-01Commercial Press UNQUALIFIED5Xuxue Feng
1004Munro N SaylorsIndia2024-04-10Commercial Press NEGOTIATION68Elwin Sharvill
1005Jeanfrancois B RutaFrance2024-04-19Chanay, Jeffrey A Esq QUALIFIED38Bernardo Dominic
1006Jefferson J WhobreyUnited Kingdom2024-04-01Feiner Bros NEGOTIATION7Onyama Limba
1007Costa T AmigonFrance2024-03-25Chanay, Jeffrey A Esq QUALIFIED41Elwin Sharvill
1008Jones V VocelkaUnited Kingdom2024-04-08King, Christopher A Esq NEW12Stephen Shaw
1009Leon Z OldroydArgentina2024-04-08Morlong Associates QUALIFIED42Onyama Limba
1010Costa E SergiCanada2024-04-02Chanay, Jeffrey A Esq PROPOSAL57Asiya Javayant
1011Izzy I GarufiCanada2024-04-11King, Christopher A Esq QUALIFIED1Ioni Bowcher
1012Nicolas Q StensethArgentina2024-03-25Rangoni Of Florence RENEWAL88Amy Elsner
1013Cody S FerenczGermany2024-03-29Chapman, Ross E Esq UNQUALIFIED84Ivan Magalhaes
1014Julie S WhobreySpain2024-04-10Dorl, James J Esq UNQUALIFIED25Asiya Javayant
1015Salvatore Q StockhamIndia2024-04-23Chapman, Ross E Esq UNQUALIFIED3Anna Fali
1016Antonio W IturbideBrazil2024-04-20King, Christopher A Esq QUALIFIED77Anna Fali
1017David M BowleyUnited Kingdom2024-04-22Printing Dimensions PROPOSAL75Bernardo Dominic
1018Tony N CaudyGermany2024-04-01Chemel, James L Cpa NEGOTIATION43Ioni Bowcher
1019Ashley E VenereAustralia2024-04-19Chemel, James L Cpa UNQUALIFIED23Stephen Shaw
1020Smith B VocelkaRussia2024-04-19Morlong Associates RENEWAL16Anna Fali
1021Maisha Y BriddickIndia2024-04-06Printing Dimensions NEW28Bernardo Dominic
1022James U InouyeCanada2024-04-11Feiner Bros NEGOTIATION22Xuxue Feng
1023Morrow W AlbaresUnited Kingdom2024-03-28Rousseaux, Michael Esq UNQUALIFIED60Anna Fali
1024Claire B GauchoBrazil2024-04-13Chapman, Ross E Esq NEW69Bernardo Dominic
1025Darci W CaldareraBrazil2024-04-04Morlong Associates QUALIFIED35Bernardo Dominic
1026Ivar B MorascaSpain2024-04-01Printing Dimensions NEGOTIATION45Amy Elsner
1027Faith Y DarakjyFrance2024-04-15King, Christopher A Esq RENEWAL21Elwin Sharvill
1028Wickens Q ShinkoJapan2024-04-23Rousseaux, Michael Esq NEGOTIATION17Anna Fali
1029Izzy I NestleJapan2024-04-15Feiner Bros QUALIFIED68Xuxue Feng
1030Kadeem R StensethRussia2024-03-27Rangoni Of Florence PROPOSAL89Anna Fali
1031Rodrigues R SaylorsBrazil2024-04-08Chemel, James L Cpa PROPOSAL79Elwin Sharvill
1032Salvatore I VenereAustralia2024-04-08Buckley Miller Wright UNQUALIFIED29Xuxue Feng
1033Mayumi T FerenczArgentina2024-03-29Printing Dimensions NEGOTIATION94Ivan Magalhaes
1034Maria N RulapaughRussia2024-03-28King, Christopher A Esq PROPOSAL18Elwin Sharvill
1035Emily L SergiJapan2024-04-22Benton, John B Jr RENEWAL15Amy Elsner
1036Ivar R FollerSpain2024-04-09Morlong Associates PROPOSAL87Asiya Javayant
1037Juan L MacleadAustralia2024-04-22Printing Dimensions NEGOTIATION40Stephen Shaw
1038Alejandro J MaletAustralia2024-04-08Rousseaux, Michael Esq RENEWAL27Ioni Bowcher
1039Rodrigues L BriddickRussia2024-04-11Truhlar And Truhlar Attys UNQUALIFIED47Asiya Javayant
1040Julie E DilliardAustralia2024-04-19Rangoni Of Florence NEW48Anna Fali
1041Morrow F SlusarskiBrazil2024-03-28Feiner Bros QUALIFIED23Ioni Bowcher
1042Deepesh F ButtGermany2024-04-20King, Christopher A Esq PROPOSAL78Anna Fali
1043Ivar S InouyeGermany2024-04-13Rousseaux, Michael Esq NEW49Elwin Sharvill
1044Aditya F PerinIndia2024-04-01Dorl, James J Esq PROPOSAL34Bernardo Dominic
1045Adams K CaudyGermany2024-04-11Chanay, Jeffrey A Esq QUALIFIED0Xuxue Feng
1046Maisha O DarakjyJapan2024-04-06Dorl, James J Esq NEGOTIATION60Anna Fali
1047Kaitlin E DilliardArgentina2024-04-08Rousseaux, Michael Esq NEW45Xuxue Feng
1048Munro W WhobreyItaly2024-04-21Chanay, Jeffrey A Esq PROPOSAL48Bernardo Dominic
1049Jeanfrancois F PoquetteJapan2024-04-03Buckley Miller Wright PROPOSAL32Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Antonio K FigeroaBrazilElwin Sharvill RENEWAL
Wickens H AlbaresFranceStephen Shaw QUALIFIED
Johnson Y TollnerFranceAmy Elsner RENEWAL
Silvio F PaprockiGermanyAmy Elsner QUALIFIED
Aika L VenereSpainOnyama Limba NEW
Arvin A OldroydItalyAsiya Javayant NEW
Jefferson D FigeroaAustraliaOnyama Limba RENEWAL
Ashley W GlickUnited KingdomElwin Sharvill QUALIFIED
Tony K NestleArgentinaStephen Shaw PROPOSAL
Stacey C AlbaresAustraliaAmy Elsner NEW
Faith E WaycottAustraliaStephen Shaw NEW
Silvio S ButtAustraliaIoni Bowcher NEGOTIATION
Ricardo S NestleItalyIvan Magalhaes RENEWAL
Aika Z DoeFranceElwin Sharvill RENEWAL
Smith M MacleadJapanAnna Fali PROPOSAL
Alejandro O MarrierJapanXuxue Feng RENEWAL
Stacey Y ChuiFranceAsiya Javayant PROPOSAL
Sinclair Z SlusarskiBrazilOnyama Limba QUALIFIED
Emily N MorascaJapanOnyama Limba NEW
Claire O MorascaUnited KingdomAnna Fali QUALIFIED
Juan B FlosiArgentinaOnyama Limba NEW
Stacey J MarrierUnited KingdomBernardo Dominic QUALIFIED
Stacey S GlickAustraliaOnyama Limba RENEWAL
Julie I RutaArgentinaAnna Fali UNQUALIFIED
Jones G RulapaughBrazilIvan Magalhaes UNQUALIFIED
Alejandro F GlickArgentinaAnna Fali QUALIFIED
Darci V NestleItalyElwin Sharvill RENEWAL
Francesco Q RulapaughItalyIvan Magalhaes PROPOSAL
Alejandro P AmigonIndiaStephen Shaw UNQUALIFIED
Chavez M CaldareraSpainOnyama Limba QUALIFIED
Francesco C StensethJapanIvan Magalhaes NEW
Leja O ButtUnited KingdomAsiya Javayant NEGOTIATION
Nicolas U OldroydRussiaXuxue Feng NEGOTIATION
Smith S SaylorsFranceXuxue Feng UNQUALIFIED
Aditya W CaudyCanadaElwin Sharvill RENEWAL
Aditya P PerinCanadaAsiya Javayant NEGOTIATION
Tony F MaletCanadaAmy Elsner UNQUALIFIED
Smith O ButtJapanStephen Shaw PROPOSAL
Misaki U NickaAustraliaBernardo Dominic NEW
Salvatore C AlbaresFranceBernardo Dominic RENEWAL
Kadeem F VocelkaSpainIoni Bowcher RENEWAL
Maisha Q TollnerArgentinaAmy Elsner UNQUALIFIED
Arvin V DilliardFranceAsiya Javayant NEGOTIATION
Isabel W BologniaBrazilOnyama Limba UNQUALIFIED
Adams I WhobreyIndiaBernardo Dominic RENEWAL
Claire C WhobreyUnited KingdomOnyama Limba QUALIFIED
Ivar K FerenczBrazilIoni Bowcher PROPOSAL
Leja I FerenczRussiaStephen Shaw PROPOSAL
Stacey U IturbideCanadaXuxue Feng RENEWAL
Johnson D BriddickUnited KingdomOnyama Limba UNQUALIFIED
Frozen Columns
Name
Alejandro D Vocelka
Misaki G Kusko
Deepesh N Venere
James Y Vocelka
Emily Q Wieser
Leon W Figeroa
Alejandro X Glick
Jeanfrancois N Rim
Jefferson N Glick
Maria M Slusarski
Salvatore N Slusarski
Kaitlin K Wieser
Kaitlin W Slusarski
Arvin S Kolmetz
Clifford O Sergi
Adams B Bowley
Stacey E Iturbide
Munro C Gaucho
Cody I Flosi
Aditya N Vocelka
Ivar L Rulapaugh
Jeanfrancois G Nicka
Mayumi Q Iturbide
Kaitlin N Shinko
Arvin Y Sergi
Costa A Caldarera
Jeanfrancois D Ferencz
Adams A Ostrosky
Ashley E Ferencz
Ricardo O Saylors
Tony G Sergi
Johnson Y Ferencz
Ivar M Malet
Kadeem K Albares
Arvin E Schemmer
Arvin L Ostrosky
Mayumi S Paprocki
Clifford C Stenseth
Salvatore Z Amigon
Munro C Foller
Ricardo Y Kolmetz
Jennifer B Gillian
Jones Z Wieser
Cody W Caudy
Isabel R Malet
Faith O Gaucho
Alejandro V Ruta
Stacey I Chui
Johnson Z Oldroyd
Kaitlin G Vocelka
IdCountryDate
1000Argentina2024-04-21
1001Russia2024-04-07
1002France2024-04-22
1003Spain2024-04-09
1004Argentina2024-03-31
1005France2024-04-18
1006France2024-03-30
1007Russia2024-04-09
1008United Kingdom2024-04-08
1009Argentina2024-03-30
1010Japan2024-03-31
1011Brazil2024-04-01
1012Japan2024-04-23
1013France2024-03-25
1014Argentina2024-04-06
1015Japan2024-03-30
1016Japan2024-03-29
1017Spain2024-03-30
1018Australia2024-04-17
1019Canada2024-04-01
1020Italy2024-04-22
1021United Kingdom2024-04-10
1022Japan2024-04-07
1023Germany2024-04-13
1024United Kingdom2024-04-15
1025Spain2024-03-29
1026India2024-04-01
1027Japan2024-04-17
1028Japan2024-03-30
1029Russia2024-04-14
1030Argentina2024-04-07
1031Australia2024-04-08
1032Japan2024-04-21
1033Germany2024-04-17
1034India2024-04-21
1035Argentina2024-04-06
1036Brazil2024-04-10
1037Canada2024-04-12
1038India2024-04-05
1039Italy2024-03-26
1040France2024-04-17
1041Russia2024-04-06
1042United Kingdom2024-04-12
1043Canada2024-03-31
1044Spain2024-04-04
1045Argentina2024-04-08
1046France2024-04-02
1047Russia2024-04-23
1048Australia2024-04-07
1049Brazil2024-04-23

On-Demand Data

NameIdCountryDate
Isabel M Maclead1000France2024-04-17
Cody Q Ruta1001India2024-03-26
Leon B Schemmer1002Argentina2024-04-09
Aika S Royster1003Japan2024-03-29
Jones H Kolmetz1004Italy2024-04-15
Sinclair Z Malet1005Russia2024-03-31
Chavez P Nicka1006Brazil2024-03-29
Arvin T Marrier1007India2024-04-10
Morrow O Nicka1008France2024-04-05
Rodrigues R Nicka1009Canada2024-04-05
Sinclair H Malet1010Australia2024-04-16
Maria N Perin1011Argentina2024-04-17
Silvio T Venere1012Argentina2024-03-29
Maria S Wieser1013Spain2024-04-16
Antonio I Slusarski1014Canada2024-04-07
Jefferson R Albares1015Italy2024-04-12
Silvio O Briddick1016United Kingdom2024-04-12
Rodrigues I Oldroyd1017Italy2024-04-04
Ashley J Doe1018France2024-04-13
Aruna J Rim1019Canada2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro J MaletBrazilOnyama Limba PROPOSAL
Aika N MaletArgentinaIvan Magalhaes QUALIFIED
Wickens G NestleJapanIoni Bowcher PROPOSAL
Tony Y OldroydSpainAmy Elsner PROPOSAL
Maisha N MaletFranceAnna Fali NEW
Mayumi A FigeroaCanadaOnyama Limba UNQUALIFIED
Munro Y DoeArgentinaIvan Magalhaes NEGOTIATION
Munro N WaycottFranceElwin Sharvill NEGOTIATION
Smith W GlickGermanyAnna Fali NEW
Jennifer V WieserIndiaStephen Shaw UNQUALIFIED
Claire W BriddickSpainElwin Sharvill PROPOSAL
Costa U RoysterArgentinaIvan Magalhaes PROPOSAL
Darci H RimRussiaElwin Sharvill UNQUALIFIED
Mayumi H FigeroaGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois R CampainRussiaElwin Sharvill PROPOSAL
Isabel J RoysterArgentinaStephen Shaw NEGOTIATION
Stacey C SergiUnited KingdomAnna Fali NEGOTIATION
Adams X MaletAustraliaIvan Magalhaes UNQUALIFIED
Kaitlin K WaycottCanadaIoni Bowcher UNQUALIFIED
Ashley U VocelkaJapanIvan Magalhaes QUALIFIED
Nicolas X GillianRussiaStephen Shaw UNQUALIFIED
Maria A GillianUnited KingdomAnna Fali PROPOSAL
Costa K GauchoFranceIvan Magalhaes NEW
Jeanfrancois V RoysterIndiaOnyama Limba NEW
Kadeem A OldroydSpainElwin Sharvill UNQUALIFIED
Cody C PerinGermanyAnna Fali QUALIFIED
Ivar I ShinkoJapanElwin Sharvill QUALIFIED
Antonio D SergiSpainXuxue Feng QUALIFIED
Chavez X FlosiSpainIvan Magalhaes RENEWAL
Leja J ShinkoFranceAmy Elsner UNQUALIFIED
Mayumi A RulapaughCanadaOnyama Limba NEW
Alejandro J GlickAustraliaXuxue Feng UNQUALIFIED
Munro F RoysterBrazilElwin Sharvill QUALIFIED
Morrow Q KuskoCanadaElwin Sharvill UNQUALIFIED
Murillo T IturbideItalyOnyama Limba NEGOTIATION
Darci R BriddickSpainElwin Sharvill UNQUALIFIED
Jeanfrancois Y SchemmerGermanyXuxue Feng NEW
Greenwood Z BowleyRussiaBernardo Dominic NEGOTIATION
Jeanfrancois W MorascaGermanyAnna Fali NEGOTIATION
Emily Q ChuiCanadaStephen Shaw NEGOTIATION

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