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 E SergiIndiaElwin Sharvill RENEWAL
Julie J FollerAustraliaBernardo Dominic RENEWAL
Adams V TollnerJapanXuxue Feng NEW
Munro F WieserSpainIoni Bowcher RENEWAL
Darci R FollerAustraliaAmy Elsner NEGOTIATION
Darci M IturbideRussiaIvan Magalhaes NEGOTIATION
Nicolas I MarrierGermanyAsiya Javayant NEW
Antonio Q ShinkoItalyElwin Sharvill NEW
Maisha W KuskoUnited KingdomAmy Elsner NEGOTIATION
Sinclair M AlbaresRussiaXuxue Feng PROPOSAL
Jennifer Q MacleadFranceAmy Elsner RENEWAL
Wickens A ChuiSpainOnyama Limba PROPOSAL
Emily C StockhamItalyIvan Magalhaes QUALIFIED
Jeanfrancois U PoquetteUnited KingdomOnyama Limba UNQUALIFIED
Aika T SlusarskiRussiaOnyama Limba NEGOTIATION
Silvio O WaycottUnited KingdomStephen Shaw UNQUALIFIED
Cody O VocelkaUnited KingdomIvan Magalhaes NEW
Aruna J BriddickJapanIvan Magalhaes QUALIFIED
James H MorascaBrazilStephen Shaw UNQUALIFIED
Johnson W RoysterJapanIoni Bowcher NEW
David R TollnerAustraliaStephen Shaw RENEWAL
Kaitlin F AmigonIndiaAnna Fali UNQUALIFIED
Kaitlin T DoeGermanyIoni Bowcher RENEWAL
Mujtaba O PoquetteUnited KingdomAmy Elsner NEW
Isabel U PerinCanadaAsiya Javayant NEGOTIATION
Aika K GillianFranceIoni Bowcher QUALIFIED
Cody N MorascaItalyAmy Elsner UNQUALIFIED
Maria B SergiJapanStephen Shaw NEW
Misaki R ShinkoItalyAmy Elsner NEGOTIATION
Sinclair L CaudyBrazilBernardo Dominic NEGOTIATION
Deepesh D MorascaIndiaIoni Bowcher PROPOSAL
Johnson G BowleyCanadaAsiya Javayant QUALIFIED
Maisha Y RimSpainStephen Shaw NEGOTIATION
Clifford U NickaArgentinaElwin Sharvill UNQUALIFIED
Smith P WieserItalyOnyama Limba RENEWAL
Ricardo S FigeroaSpainXuxue Feng NEGOTIATION
Jennifer X MaletFranceAsiya Javayant QUALIFIED
Costa U BowleyRussiaOnyama Limba NEGOTIATION
Salvatore F DarakjyArgentinaAsiya Javayant NEGOTIATION
Adams A MacleadGermanyOnyama Limba RENEWAL
Ricardo J GillianUnited KingdomIoni Bowcher RENEWAL
Chavez U StockhamIndiaIoni Bowcher PROPOSAL
Mujtaba P SchemmerJapanIoni Bowcher RENEWAL
Clifford G PoquetteRussiaAnna Fali NEGOTIATION
Ricardo B GauchoBrazilStephen Shaw PROPOSAL
Leon Z RimUnited KingdomElwin Sharvill RENEWAL
Aika O WaycottRussiaIoni Bowcher NEW
Wickens K OldroydJapanOnyama Limba QUALIFIED
Izzy C WhobreyItalyXuxue Feng NEW
Nicolas K OldroydFranceElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Rodrigues R FollerRussiaAmy Elsner RENEWAL
Arvin U DoeArgentinaAsiya Javayant PROPOSAL
Greenwood W SchemmerRussiaAmy Elsner NEGOTIATION
Arvin F RutaAustraliaAnna Fali NEGOTIATION
Tony R SaylorsBrazilIoni Bowcher QUALIFIED
Darci J IturbideAustraliaAsiya Javayant NEGOTIATION
Nicolas O SlusarskiJapanElwin Sharvill RENEWAL
Stacey J KuskoRussiaOnyama Limba PROPOSAL
Faith S FerenczFranceAnna Fali PROPOSAL
Darci F MorascaRussiaOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones L PaprockiJapan2024-05-10Dorl, James J Esq NEGOTIATION69Ioni Bowcher
1001Smith X GauchoRussia2024-04-27Morlong Associates PROPOSAL36Asiya Javayant
1002Ashley Z GlickSpain2024-05-15Chapman, Ross E Esq NEGOTIATION17Onyama Limba
1003Alejandro V BowleySpain2024-04-29Benton, John B Jr RENEWAL14Amy Elsner
1004Chavez N WaycottCanada2024-05-08Feltz Printing Service NEGOTIATION8Elwin Sharvill
1005Costa E GauchoFrance2024-04-26Morlong Associates UNQUALIFIED4Onyama Limba
1006Tony W FigeroaIndia2024-05-06Feiner Bros UNQUALIFIED26Ivan Magalhaes
1007Alejandro L GauchoCanada2024-05-17Morlong Associates NEGOTIATION44Xuxue Feng
1008Jones X GlickIndia2024-04-26Commercial Press NEGOTIATION39Stephen Shaw
1009Julie U GarufiFrance2024-04-27Commercial Press RENEWAL96Bernardo Dominic
1010Ricardo I MaletItaly2024-05-03Truhlar And Truhlar Attys RENEWAL36Onyama Limba
1011Izzy O DoeGermany2024-05-04Buckley Miller Wright QUALIFIED50Anna Fali
1012Claire F BriddickCanada2024-05-01Dorl, James J Esq NEGOTIATION83Asiya Javayant
1013Silvio F WaycottAustralia2024-05-13Benton, John B Jr UNQUALIFIED61Asiya Javayant
1014Silvio H FollerGermany2024-05-12Rousseaux, Michael Esq UNQUALIFIED97Asiya Javayant
1015Maria W PaprockiGermany2024-04-28Dorl, James J Esq PROPOSAL68Onyama Limba
1016Adams O ButtCanada2024-04-23Morlong Associates PROPOSAL11Xuxue Feng
1017Izzy P WieserSpain2024-05-06Buckley Miller Wright NEW20Ioni Bowcher
1018Arvin R StockhamIndia2024-05-11Truhlar And Truhlar Attys UNQUALIFIED3Xuxue Feng
1019Ashley D DilliardGermany2024-05-20Commercial Press UNQUALIFIED54Elwin Sharvill
1020Clifford U StensethGermany2024-05-03Rousseaux, Michael Esq NEW94Xuxue Feng
1021Clifford W KolmetzSpain2024-04-27Feiner Bros NEGOTIATION39Asiya Javayant
1022Nicolas V OstroskyCanada2024-04-30Rousseaux, Michael Esq UNQUALIFIED81Ivan Magalhaes
1023Leon V PoquetteItaly2024-04-27King, Christopher A Esq NEW85Onyama Limba
1024Octavia F CaldareraSpain2024-05-08Rousseaux, Michael Esq RENEWAL48Asiya Javayant
1025Aditya T FlosiUnited Kingdom2024-04-23Benton, John B Jr UNQUALIFIED59Ioni Bowcher
1026Kaitlin Z CaudyJapan2024-05-09Truhlar And Truhlar Attys NEW70Amy Elsner
1027Aika V PaprockiRussia2024-05-07Benton, John B Jr NEW51Stephen Shaw
1028Emily W StensethCanada2024-05-14Feltz Printing Service QUALIFIED39Ivan Magalhaes
1029Isabel P MarrierCanada2024-05-02Dorl, James J Esq QUALIFIED69Xuxue Feng
1030Francesco L RulapaughBrazil2024-05-16Feiner Bros QUALIFIED83Ivan Magalhaes
1031Mujtaba F FigeroaJapan2024-05-11Rousseaux, Michael Esq NEW47Ivan Magalhaes
1032Ricardo N ButtFrance2024-05-15Commercial Press NEW38Ioni Bowcher
1033David R MacleadSpain2024-05-21Chanay, Jeffrey A Esq PROPOSAL6Ivan Magalhaes
1034Salvatore X VocelkaFrance2024-05-06Chanay, Jeffrey A Esq RENEWAL87Ioni Bowcher
1035Munro G GlickUnited Kingdom2024-05-05Commercial Press PROPOSAL25Stephen Shaw
1036Nicolas T TollnerFrance2024-04-25Benton, John B Jr PROPOSAL16Ioni Bowcher
1037Claire Q VenereJapan2024-04-26Dorl, James J Esq UNQUALIFIED60Onyama Limba
1038Arvin M WhobreyArgentina2024-05-20King, Christopher A Esq QUALIFIED82Elwin Sharvill
1039Cody U WieserUnited Kingdom2024-05-17Morlong Associates UNQUALIFIED75Bernardo Dominic
1040Johnson J CaudyJapan2024-05-14Chapman, Ross E Esq QUALIFIED0Elwin Sharvill
1041Nicolas E ButtSpain2024-05-02Chanay, Jeffrey A Esq UNQUALIFIED6Elwin Sharvill
1042Deepesh N AlbaresUnited Kingdom2024-05-09Morlong Associates NEW35Ioni Bowcher
1043Ashley N DilliardSpain2024-04-22Chapman, Ross E Esq RENEWAL79Onyama Limba
1044Claire R PaprockiAustralia2024-04-29Feiner Bros NEGOTIATION54Elwin Sharvill
1045Morrow G TollnerIndia2024-05-18Buckley Miller Wright NEGOTIATION67Stephen Shaw
1046Greenwood L GarufiJapan2024-05-08Feltz Printing Service QUALIFIED50Elwin Sharvill
1047Wickens K OldroydFrance2024-05-18Morlong Associates PROPOSAL18Stephen Shaw
1048Ivar W PerinCanada2024-05-17Truhlar And Truhlar Attys NEGOTIATION35Bernardo Dominic
1049Maria W PoquetteGermany2024-05-02Dorl, James J Esq PROPOSAL32Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Stacey T BowleyCanadaXuxue Feng RENEWAL
Chavez F PerinJapanIvan Magalhaes NEGOTIATION
Faith Y StockhamItalyBernardo Dominic NEGOTIATION
Francesco L DilliardSpainStephen Shaw PROPOSAL
Johnson O ShinkoUnited KingdomAsiya Javayant RENEWAL
Silvio S MorascaSpainIoni Bowcher UNQUALIFIED
Ricardo Z DoeGermanyAmy Elsner PROPOSAL
Adams D DarakjyUnited KingdomAnna Fali PROPOSAL
Jones K GauchoFranceIoni Bowcher UNQUALIFIED
Jennifer M FerenczGermanyAmy Elsner NEGOTIATION
Mujtaba M WieserRussiaXuxue Feng QUALIFIED
Maisha H AlbaresJapanAsiya Javayant PROPOSAL
Ricardo W DarakjyFranceAmy Elsner UNQUALIFIED
Ivar B StockhamAustraliaStephen Shaw NEGOTIATION
Sinclair Y InouyeItalyAsiya Javayant QUALIFIED
Deepesh P MacleadRussiaIoni Bowcher RENEWAL
Izzy P KolmetzUnited KingdomBernardo Dominic RENEWAL
Jones K RulapaughAustraliaStephen Shaw QUALIFIED
Wickens U FlosiFranceStephen Shaw UNQUALIFIED
Tony G MaletFranceElwin Sharvill PROPOSAL
Darci O GlickRussiaStephen Shaw NEGOTIATION
Misaki Q VocelkaSpainStephen Shaw PROPOSAL
Isabel E GlickBrazilOnyama Limba QUALIFIED
Munro O OstroskySpainOnyama Limba NEGOTIATION
Tony Z RoysterRussiaXuxue Feng NEGOTIATION
Ashley Z ChuiJapanStephen Shaw NEGOTIATION
Aika A KuskoBrazilIvan Magalhaes NEGOTIATION
Johnson Y PoquetteBrazilStephen Shaw RENEWAL
Aika X SaylorsGermanyAsiya Javayant PROPOSAL
Arvin C NestleIndiaAmy Elsner UNQUALIFIED
Costa X BologniaCanadaBernardo Dominic RENEWAL
Silvio K WhobreySpainBernardo Dominic UNQUALIFIED
Costa E PaprockiSpainBernardo Dominic PROPOSAL
Ashley U PerinUnited KingdomAmy Elsner PROPOSAL
Maria D MarrierUnited KingdomOnyama Limba RENEWAL
Alejandro M CaudyItalyAmy Elsner NEGOTIATION
Leon F SaylorsFranceStephen Shaw UNQUALIFIED
Smith G RutaRussiaBernardo Dominic UNQUALIFIED
Aruna Q BriddickAustraliaBernardo Dominic QUALIFIED
Aruna Q SlusarskiUnited KingdomBernardo Dominic NEGOTIATION
Emily V PaprockiFranceAmy Elsner PROPOSAL
Clifford D FerenczArgentinaIvan Magalhaes NEW
Johnson L GillianIndiaIoni Bowcher QUALIFIED
Ashley G CaudyItalyAmy Elsner QUALIFIED
Deepesh H IturbideArgentinaXuxue Feng NEW
Juan L GlickRussiaIvan Magalhaes UNQUALIFIED
Tony R DoeAustraliaAsiya Javayant QUALIFIED
Chavez O PaprockiCanadaAmy Elsner UNQUALIFIED
Jeanfrancois X FerenczArgentinaAmy Elsner PROPOSAL
Maisha H CampainArgentinaAmy Elsner RENEWAL
Frozen Columns
Name
Isabel U Wieser
Leon I Foller
Johnson E Marrier
Silvio Y Bowley
Kadeem K Figeroa
Antonio R Ostrosky
Aruna Y Flosi
Antonio V Butt
Maisha R Nicka
Nicolas X Wieser
James J Iturbide
Jennifer P Foller
Morrow K Amigon
Aika M Whobrey
Chavez Z Ferencz
Claire A Briddick
Kadeem Y Schemmer
Kadeem S Kolmetz
Chavez I Caldarera
Jones G Ostrosky
Jones U Perin
Misaki L Waycott
Aditya N Poquette
Juan I Paprocki
Alejandro J Gillian
Maisha S Bowley
Stacey H Tollner
Julie P Darakjy
Jefferson A Chui
Maisha N Slusarski
Jones E Royster
Ricardo O Chui
Ivar Y Ruta
Claire W Whobrey
Wickens B Venere
Nicolas N Ruta
Aika B Shinko
Izzy X Caldarera
Maisha M Maclead
Julie C Maclead
Alejandro P Campain
Mayumi L Caldarera
Alejandro W Caudy
Silvio N Nicka
Nicolas G Oldroyd
Ivar A Morasca
Maisha C Poquette
Isabel N Foller
Ashley K Nicka
Jeanfrancois H Malet
IdCountryDate
1000Canada2024-05-18
1001Canada2024-05-18
1002France2024-04-26
1003Spain2024-05-15
1004Australia2024-05-04
1005Germany2024-05-14
1006Russia2024-05-11
1007Japan2024-05-15
1008Canada2024-04-22
1009Japan2024-05-04
1010India2024-04-29
1011Japan2024-04-26
1012India2024-05-13
1013United Kingdom2024-05-11
1014Italy2024-05-18
1015Australia2024-05-16
1016Australia2024-05-13
1017Italy2024-05-15
1018Brazil2024-05-15
1019Italy2024-05-12
1020Australia2024-05-18
1021India2024-05-02
1022France2024-05-14
1023India2024-05-16
1024Argentina2024-05-12
1025Canada2024-05-17
1026Spain2024-05-13
1027India2024-05-11
1028Spain2024-04-30
1029Brazil2024-05-05
1030Japan2024-04-27
1031Germany2024-05-18
1032Argentina2024-04-22
1033Brazil2024-05-18
1034Italy2024-04-30
1035Japan2024-05-14
1036Italy2024-05-13
1037Russia2024-05-19
1038Spain2024-05-09
1039Italy2024-05-21
1040France2024-05-04
1041India2024-05-16
1042Australia2024-05-12
1043Italy2024-05-04
1044Russia2024-05-18
1045France2024-05-03
1046Italy2024-04-23
1047Germany2024-04-26
1048Italy2024-05-14
1049United Kingdom2024-05-11

On-Demand Data

NameIdCountryDate
Leon B Flosi1000Russia2024-05-21
Stacey J Paprocki1001Italy2024-04-25
David G Glick1002France2024-05-20
Chavez D Flosi1003United Kingdom2024-05-21
Murillo K Butt1004Argentina2024-04-28
Nicolas U Flosi1005Australia2024-05-14
Octavia O Caudy1006Argentina2024-05-18
Francesco I Albares1007Canada2024-04-29
Cody V Slusarski1008Brazil2024-05-07
Mujtaba S Nicka1009Brazil2024-04-23
Leon L Oldroyd1010India2024-04-23
Stacey K Malet1011Canada2024-04-26
Kadeem B Oldroyd1012Argentina2024-04-26
Arvin Q Rim1013Canada2024-04-26
Wickens H Vocelka1014Australia2024-05-19
Antonio R Stenseth1015India2024-04-23
Izzy F Kolmetz1016Argentina2024-05-04
Alejandro X Flosi1017Germany2024-05-10
Greenwood J Iturbide1018Japan2024-05-13
Leja K Iturbide1019Italy2024-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna Z CaldareraJapanIvan Magalhaes PROPOSAL
Isabel E WaycottAustraliaAsiya Javayant NEW
Mujtaba Z ButtIndiaAnna Fali UNQUALIFIED
Jones Q GillianRussiaAnna Fali UNQUALIFIED
Chavez C VenereIndiaOnyama Limba NEGOTIATION
Clifford K MarrierAustraliaBernardo Dominic RENEWAL
Aika K PaprockiItalyIoni Bowcher PROPOSAL
Leon I NickaAustraliaAsiya Javayant UNQUALIFIED
Wickens N MorascaCanadaBernardo Dominic UNQUALIFIED
Maisha H RulapaughFranceOnyama Limba RENEWAL
Jennifer K BologniaArgentinaBernardo Dominic NEW
Deepesh P BologniaRussiaElwin Sharvill QUALIFIED
Deepesh T DoeUnited KingdomIvan Magalhaes RENEWAL
Adams T RoysterArgentinaIoni Bowcher NEW
Leon K AlbaresArgentinaXuxue Feng NEW
Emily W SlusarskiIndiaAsiya Javayant NEW
Stacey X PaprockiBrazilIoni Bowcher QUALIFIED
Clifford P FollerUnited KingdomElwin Sharvill NEW
Tony W ShinkoIndiaIoni Bowcher RENEWAL
Salvatore G OstroskySpainAsiya Javayant UNQUALIFIED
Juan I DarakjyArgentinaAmy Elsner UNQUALIFIED
Izzy T VenereFranceAsiya Javayant QUALIFIED
Kaitlin J OstroskyItalyAmy Elsner NEGOTIATION
Aruna Z PoquetteArgentinaIvan Magalhaes QUALIFIED
Jones W VenereBrazilAsiya Javayant NEW
Izzy C SchemmerArgentinaIoni Bowcher NEGOTIATION
Mayumi B WieserItalyAmy Elsner NEW
Octavia Q StensethJapanIoni Bowcher RENEWAL
Arvin C FlosiSpainXuxue Feng UNQUALIFIED
Claire H AlbaresFranceAnna Fali NEW
Nicolas J MorascaArgentinaIvan Magalhaes NEW
Maisha W GlickAustraliaXuxue Feng NEGOTIATION
Silvio E ButtGermanyXuxue Feng NEW
Clifford K StensethUnited KingdomElwin Sharvill NEGOTIATION
Mujtaba O SchemmerCanadaAmy Elsner QUALIFIED
Costa T TollnerArgentinaBernardo Dominic RENEWAL
Munro G SchemmerItalyIvan Magalhaes NEGOTIATION
Ricardo A SlusarskiAustraliaOnyama Limba PROPOSAL
Murillo I NickaArgentinaOnyama Limba NEGOTIATION
Morrow G SergiSpainAsiya Javayant 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>