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
Greenwood Z PaprockiItalyAmy Elsner NEGOTIATION
Murillo F MorascaBrazilStephen Shaw RENEWAL
Alejandro W MaletJapanAnna Fali UNQUALIFIED
Smith U CampainAustraliaIvan Magalhaes RENEWAL
Cody J SergiSpainIvan Magalhaes UNQUALIFIED
Claire K KuskoSpainXuxue Feng NEGOTIATION
Morrow N RulapaughJapanAnna Fali UNQUALIFIED
Smith F NestleSpainBernardo Dominic NEW
Smith I DilliardAustraliaElwin Sharvill PROPOSAL
Clifford P RoysterRussiaStephen Shaw RENEWAL
Kadeem Z ShinkoGermanyIoni Bowcher QUALIFIED
Ricardo C MaletUnited KingdomXuxue Feng RENEWAL
Munro F FerenczGermanyIvan Magalhaes QUALIFIED
Mujtaba C BologniaItalyAnna Fali PROPOSAL
Aruna B VenereJapanAmy Elsner PROPOSAL
Nicolas Z StockhamRussiaBernardo Dominic RENEWAL
Mayumi A SergiFranceAmy Elsner NEW
Alejandro Q RutaArgentinaIoni Bowcher NEGOTIATION
Greenwood M ChuiCanadaBernardo Dominic NEGOTIATION
Maisha Q MacleadGermanyAnna Fali QUALIFIED
Kadeem G FlosiUnited KingdomIoni Bowcher UNQUALIFIED
Francesco J DarakjyJapanStephen Shaw UNQUALIFIED
Maria U BologniaUnited KingdomIvan Magalhaes NEGOTIATION
Morrow S StockhamAustraliaAmy Elsner NEW
Emily S TollnerCanadaAnna Fali QUALIFIED
Chavez H NickaJapanElwin Sharvill UNQUALIFIED
Kadeem I RulapaughBrazilOnyama Limba NEGOTIATION
Claire S WhobreyRussiaOnyama Limba PROPOSAL
Faith P AmigonArgentinaOnyama Limba QUALIFIED
Alejandro A NickaAustraliaAmy Elsner NEGOTIATION
Jeanfrancois V FigeroaItalyAnna Fali NEGOTIATION
Salvatore V GarufiArgentinaAsiya Javayant UNQUALIFIED
Maria E TollnerIndiaIoni Bowcher QUALIFIED
Alejandro Z FigeroaSpainStephen Shaw NEW
Mayumi H GauchoUnited KingdomIoni Bowcher PROPOSAL
Deepesh H KuskoCanadaOnyama Limba UNQUALIFIED
Jennifer D BriddickIndiaStephen Shaw RENEWAL
Octavia N OstroskyIndiaIoni Bowcher RENEWAL
James V DilliardAustraliaElwin Sharvill NEW
Costa W DarakjyIndiaBernardo Dominic UNQUALIFIED
Ricardo D DilliardJapanAmy Elsner PROPOSAL
Jones D VocelkaRussiaIvan Magalhaes RENEWAL
Claire V AlbaresBrazilAmy Elsner QUALIFIED
Francesco J SergiAustraliaIoni Bowcher UNQUALIFIED
Silvio B RutaSpainOnyama Limba UNQUALIFIED
Kadeem Q GlickUnited KingdomBernardo Dominic NEW
Salvatore U MaletCanadaStephen Shaw PROPOSAL
Deepesh D ShinkoIndiaIoni Bowcher QUALIFIED
Jefferson Y GarufiJapanIoni Bowcher NEW
Stacey D RoysterFranceElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jefferson K SchemmerItalyIvan Magalhaes UNQUALIFIED
Silvio A CampainFranceStephen Shaw PROPOSAL
Izzy C SlusarskiAustraliaOnyama Limba NEW
Greenwood L WieserArgentinaAnna Fali RENEWAL
Francesco C AmigonItalyXuxue Feng NEW
Aditya J MorascaGermanyStephen Shaw QUALIFIED
Nicolas Q CaudyAustraliaIoni Bowcher RENEWAL
Rodrigues Q AmigonGermanyBernardo Dominic NEW
Juan C VenereIndiaAmy Elsner QUALIFIED
Silvio L GillianFranceXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith L GillianAustralia2024-04-06Chapman, Ross E Esq QUALIFIED76Ivan Magalhaes
1001Jeanfrancois Q PoquetteFrance2024-03-21Dorl, James J Esq NEW76Elwin Sharvill
1002Ashley J PerinUnited Kingdom2024-04-08Commercial Press RENEWAL86Xuxue Feng
1003Nicolas Q SaylorsAustralia2024-04-12Benton, John B Jr NEGOTIATION32Onyama Limba
1004Munro J WieserUnited Kingdom2024-04-01Buckley Miller Wright NEW51Stephen Shaw
1005Leon Y DarakjyRussia2024-04-17Chemel, James L Cpa NEGOTIATION71Xuxue Feng
1006Costa C PoquetteBrazil2024-03-22Chemel, James L Cpa PROPOSAL74Asiya Javayant
1007Kaitlin J PaprockiIndia2024-04-04Commercial Press QUALIFIED66Anna Fali
1008Maria Y RulapaughUnited Kingdom2024-04-06Rangoni Of Florence NEW46Xuxue Feng
1009Adams K SergiJapan2024-03-29Chemel, James L Cpa NEGOTIATION79Bernardo Dominic
1010Clifford O KuskoAustralia2024-04-11Truhlar And Truhlar Attys RENEWAL86Asiya Javayant
1011Juan P CaldareraUnited Kingdom2024-04-09Printing Dimensions UNQUALIFIED97Xuxue Feng
1012Jeanfrancois I FerenczGermany2024-04-04Commercial Press RENEWAL16Xuxue Feng
1013Smith N AlbaresArgentina2024-03-25Commercial Press RENEWAL47Elwin Sharvill
1014Silvio M StensethIndia2024-04-03Commercial Press RENEWAL23Ioni Bowcher
1015Cody U IturbideIndia2024-04-14Feiner Bros NEGOTIATION95Anna Fali
1016Emily Z IturbideSpain2024-03-20Chapman, Ross E Esq NEGOTIATION61Ivan Magalhaes
1017Francesco X GillianSpain2024-03-26Chanay, Jeffrey A Esq PROPOSAL77Onyama Limba
1018Smith M PaprockiFrance2024-04-02Dorl, James J Esq NEGOTIATION76Anna Fali
1019Antonio C NestleJapan2024-04-17Chemel, James L Cpa NEGOTIATION25Elwin Sharvill
1020Ricardo J KuskoItaly2024-04-18Chanay, Jeffrey A Esq QUALIFIED54Xuxue Feng
1021Aditya W MaletJapan2024-04-16Feiner Bros QUALIFIED97Stephen Shaw
1022Maisha W FigeroaArgentina2024-03-27Chemel, James L Cpa RENEWAL29Anna Fali
1023David X DilliardUnited Kingdom2024-04-03King, Christopher A Esq NEGOTIATION70Stephen Shaw
1024Tony V MorascaSpain2024-03-25Buckley Miller Wright NEGOTIATION5Ivan Magalhaes
1025Isabel X StensethArgentina2024-03-31Truhlar And Truhlar Attys UNQUALIFIED52Amy Elsner
1026Misaki H KuskoRussia2024-04-09Truhlar And Truhlar Attys QUALIFIED13Stephen Shaw
1027Salvatore Q BowleySpain2024-04-15Printing Dimensions QUALIFIED21Anna Fali
1028Munro J InouyeJapan2024-03-30Feltz Printing Service RENEWAL52Bernardo Dominic
1029Salvatore J NickaCanada2024-04-10King, Christopher A Esq NEW3Asiya Javayant
1030Leja V IturbideGermany2024-03-25Benton, John B Jr UNQUALIFIED53Anna Fali
1031Johnson B FlosiCanada2024-04-09Commercial Press NEW81Onyama Limba
1032Deepesh H CaudyIndia2024-03-28Chapman, Ross E Esq UNQUALIFIED28Elwin Sharvill
1033Adams Q WaycottItaly2024-04-10Morlong Associates UNQUALIFIED63Elwin Sharvill
1034Cody A ShinkoArgentina2024-04-12Benton, John B Jr UNQUALIFIED13Stephen Shaw
1035Cody L FerenczJapan2024-03-27Chemel, James L Cpa NEW95Amy Elsner
1036Wickens B RoysterAustralia2024-03-29Feiner Bros UNQUALIFIED78Ivan Magalhaes
1037Francesco Y GlickAustralia2024-03-25Chanay, Jeffrey A Esq QUALIFIED95Stephen Shaw
1038Francesco U GillianIndia2024-03-27Rousseaux, Michael Esq NEW58Bernardo Dominic
1039Silvio G InouyeBrazil2024-04-11Morlong Associates RENEWAL38Elwin Sharvill
1040Emily T TollnerIndia2024-04-01Rousseaux, Michael Esq QUALIFIED86Anna Fali
1041Jefferson R CaudyAustralia2024-03-25Buckley Miller Wright NEW38Stephen Shaw
1042Mayumi M VocelkaItaly2024-03-25Chanay, Jeffrey A Esq UNQUALIFIED15Stephen Shaw
1043Jeanfrancois L WieserFrance2024-03-28Rousseaux, Michael Esq NEGOTIATION7Xuxue Feng
1044Jefferson D GauchoAustralia2024-04-12Chemel, James L Cpa QUALIFIED80Ioni Bowcher
1045Nicolas J CaldareraAustralia2024-03-22Benton, John B Jr QUALIFIED54Amy Elsner
1046Juan E PerinIndia2024-04-12Rangoni Of Florence PROPOSAL10Bernardo Dominic
1047Nicolas N ShinkoFrance2024-04-18Morlong Associates RENEWAL78Anna Fali
1048Tony A OstroskySpain2024-03-21Buckley Miller Wright PROPOSAL28Asiya Javayant
1049Darci M MacleadArgentina2024-04-04Commercial Press PROPOSAL13Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Antonio E SaylorsBrazilBernardo Dominic NEGOTIATION
Deepesh X AmigonItalyElwin Sharvill NEW
Ivar W RoysterJapanBernardo Dominic UNQUALIFIED
Clifford F SchemmerUnited KingdomAsiya Javayant PROPOSAL
Emily M MacleadIndiaXuxue Feng RENEWAL
Greenwood S PoquetteGermanyAmy Elsner UNQUALIFIED
Rodrigues V VocelkaJapanAnna Fali UNQUALIFIED
Johnson B RutaUnited KingdomAnna Fali UNQUALIFIED
Aruna G CaldareraUnited KingdomOnyama Limba NEW
Ricardo A KuskoItalyOnyama Limba QUALIFIED
Juan A FigeroaAustraliaAnna Fali PROPOSAL
Ivar V MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Silvio E FigeroaItalyBernardo Dominic QUALIFIED
Wickens A GlickGermanyStephen Shaw QUALIFIED
Adams U VocelkaJapanAsiya Javayant PROPOSAL
Nicolas I KuskoRussiaStephen Shaw PROPOSAL
Kaitlin U BriddickSpainXuxue Feng QUALIFIED
Ricardo L FerenczCanadaAsiya Javayant PROPOSAL
Mujtaba P SaylorsSpainIvan Magalhaes PROPOSAL
Arvin I CampainArgentinaAmy Elsner QUALIFIED
Clifford J PerinUnited KingdomElwin Sharvill NEW
Wickens D GarufiRussiaAnna Fali PROPOSAL
Julie Q KolmetzFranceIvan Magalhaes RENEWAL
Aruna T RimRussiaElwin Sharvill QUALIFIED
Kadeem F BowleyUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois E SaylorsBrazilStephen Shaw PROPOSAL
Jones B PerinBrazilStephen Shaw NEW
Ashley L VocelkaSpainXuxue Feng PROPOSAL
Emily W DilliardRussiaStephen Shaw RENEWAL
Misaki E SaylorsItalyIvan Magalhaes UNQUALIFIED
Munro Z InouyeUnited KingdomIvan Magalhaes RENEWAL
Morrow A MorascaFranceAmy Elsner PROPOSAL
Rodrigues N RimFranceOnyama Limba PROPOSAL
Smith U StensethBrazilIvan Magalhaes NEW
Ashley Y TollnerAustraliaAnna Fali RENEWAL
Leja S ButtIndiaBernardo Dominic UNQUALIFIED
Arvin D PoquetteBrazilBernardo Dominic NEW
Murillo F PerinArgentinaBernardo Dominic PROPOSAL
Jefferson N KuskoArgentinaXuxue Feng UNQUALIFIED
Jennifer Z StockhamUnited KingdomIoni Bowcher RENEWAL
Darci V MaletIndiaIvan Magalhaes NEGOTIATION
Arvin V IturbideGermanyBernardo Dominic NEGOTIATION
Alejandro B KuskoBrazilAsiya Javayant QUALIFIED
Alejandro C MorascaCanadaAmy Elsner PROPOSAL
Izzy H PaprockiSpainBernardo Dominic NEGOTIATION
Deepesh I RimItalyIoni Bowcher UNQUALIFIED
Ricardo Q DarakjyArgentinaIoni Bowcher NEW
Clifford U VocelkaItalyIoni Bowcher QUALIFIED
Aruna E AlbaresItalyAmy Elsner QUALIFIED
Silvio R GlickItalyAmy Elsner QUALIFIED
Frozen Columns
Name
Johnson T Campain
Faith V Caldarera
Faith Z Bolognia
Ashley F Bolognia
Leja H Ostrosky
Claire D Oldroyd
Misaki A Caudy
Maria T Butt
Maisha D Vocelka
Juan S Waycott
Julie A Glick
Jefferson L Bowley
Clifford R Maclead
Leon Y Morasca
Aika M Wieser
James H Nicka
Aditya B Kolmetz
Ivar I Morasca
David F Marrier
Jefferson K Gillian
Jefferson E Venere
Silvio B Perin
Mayumi J Butt
Isabel F Ruta
David W Kolmetz
Jeanfrancois G Maclead
Munro T Sergi
Misaki S Glick
David E Darakjy
Isabel G Whobrey
Jefferson E Malet
Aditya C Shinko
Salvatore O Campain
Julie Y Morasca
Jeanfrancois N Schemmer
Mayumi S Iturbide
Wickens O Malet
Johnson L Figeroa
Ashley I Ferencz
Jones I Briddick
Octavia K Venere
Sinclair W Chui
Izzy T Ferencz
Aditya V Glick
Octavia R Glick
Chavez Q Tollner
Jeanfrancois T Campain
Aditya H Glick
Leon N Gaucho
Misaki O Royster
IdCountryDate
1000Spain2024-03-22
1001Australia2024-03-30
1002United Kingdom2024-04-01
1003France2024-03-26
1004Germany2024-03-23
1005Canada2024-04-10
1006France2024-04-12
1007Australia2024-04-01
1008Japan2024-03-31
1009Japan2024-04-01
1010France2024-04-01
1011Argentina2024-04-09
1012Australia2024-03-20
1013Spain2024-04-02
1014Brazil2024-03-29
1015United Kingdom2024-04-01
1016Brazil2024-04-10
1017Canada2024-04-09
1018India2024-04-04
1019Germany2024-03-25
1020Japan2024-03-28
1021United Kingdom2024-03-26
1022Australia2024-04-11
1023Japan2024-04-08
1024Germany2024-04-01
1025Brazil2024-03-27
1026Russia2024-04-17
1027Russia2024-04-11
1028Argentina2024-03-30
1029Germany2024-04-06
1030France2024-03-24
1031Russia2024-04-09
1032Canada2024-04-14
1033Italy2024-04-02
1034Italy2024-04-01
1035Germany2024-04-17
1036Italy2024-04-09
1037Brazil2024-03-27
1038Russia2024-03-25
1039Brazil2024-04-01
1040Australia2024-04-08
1041Canada2024-04-11
1042Brazil2024-04-02
1043Brazil2024-03-21
1044Italy2024-04-01
1045Canada2024-04-04
1046Russia2024-04-06
1047United Kingdom2024-03-21
1048France2024-03-21
1049Japan2024-03-27

On-Demand Data

NameIdCountryDate
Tony A Tollner1000Russia2024-04-06
Rodrigues N Marrier1001Italy2024-04-10
Aika H Butt1002Canada2024-04-15
Leon T Sergi1003Canada2024-04-09
Rodrigues J Paprocki1004Russia2024-04-14
Antonio E Maclead1005Germany2024-03-22
Arvin B Albares1006Russia2024-04-04
Jeanfrancois T Perin1007Argentina2024-04-08
Morrow N Royster1008India2024-04-06
Jefferson J Darakjy1009Canada2024-03-28
Wickens A Flosi1010Australia2024-03-22
Mujtaba T Rim1011Brazil2024-04-15
David O Perin1012Brazil2024-03-28
Julie C Ruta1013United Kingdom2024-04-17
Adams I Caldarera1014Germany2024-04-04
David S Wieser1015Canada2024-03-25
Antonio H Rulapaugh1016Germany2024-04-06
Julie H Slusarski1017Germany2024-04-11
Mujtaba J Venere1018Russia2024-04-14
Nicolas L Malet1019United Kingdom2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio N RoysterSpainIvan Magalhaes RENEWAL
Juan I GarufiGermanyAsiya Javayant UNQUALIFIED
Tony A VocelkaRussiaElwin Sharvill RENEWAL
Aruna A VocelkaAustraliaXuxue Feng NEGOTIATION
Stacey O VenereUnited KingdomAsiya Javayant UNQUALIFIED
Maria B OldroydGermanyBernardo Dominic QUALIFIED
Morrow P GauchoFranceAnna Fali NEGOTIATION
Salvatore Q TollnerGermanyElwin Sharvill NEW
Arvin T FollerItalyAmy Elsner PROPOSAL
Tony G RulapaughSpainAnna Fali UNQUALIFIED
Alejandro G ShinkoBrazilAmy Elsner PROPOSAL
Maisha M PoquetteItalyAsiya Javayant UNQUALIFIED
Smith X MaletRussiaAmy Elsner NEGOTIATION
Claire R PoquetteBrazilElwin Sharvill QUALIFIED
Antonio U WieserFranceIoni Bowcher QUALIFIED
Morrow W SchemmerCanadaBernardo Dominic NEGOTIATION
Misaki S MacleadBrazilIvan Magalhaes UNQUALIFIED
Aditya P SaylorsArgentinaBernardo Dominic UNQUALIFIED
Kadeem Z VocelkaJapanXuxue Feng NEGOTIATION
Darci T KuskoUnited KingdomIvan Magalhaes NEGOTIATION
Leon Q SchemmerSpainAnna Fali NEW
Maisha I ButtCanadaAmy Elsner RENEWAL
Ivar L IturbideSpainOnyama Limba NEW
Mujtaba W DilliardIndiaIoni Bowcher PROPOSAL
Smith D FigeroaArgentinaStephen Shaw PROPOSAL
Smith U SlusarskiBrazilAmy Elsner RENEWAL
Leja X CaudyIndiaOnyama Limba NEW
Murillo C BriddickIndiaIoni Bowcher QUALIFIED
Misaki N AlbaresAustraliaOnyama Limba PROPOSAL
James X OstroskyRussiaXuxue Feng RENEWAL
Nicolas M RoysterUnited KingdomBernardo Dominic RENEWAL
Maria I ChuiIndiaXuxue Feng NEGOTIATION
Aruna A NickaItalyOnyama Limba QUALIFIED
Tony X GauchoAustraliaIvan Magalhaes NEGOTIATION
Juan H WaycottIndiaBernardo Dominic UNQUALIFIED
Darci T WaycottSpainAnna Fali UNQUALIFIED
Jennifer D PoquetteJapanIvan Magalhaes NEW
Mujtaba J FlosiGermanyStephen Shaw NEW
Deepesh L RoysterIndiaXuxue Feng UNQUALIFIED
Salvatore G GauchoIndiaStephen Shaw QUALIFIED

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