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
Emily K WieserBrazilElwin Sharvill PROPOSAL
Clifford G OstroskySpainBernardo Dominic UNQUALIFIED
Salvatore R AmigonAustraliaAsiya Javayant QUALIFIED
Antonio G RimBrazilElwin Sharvill NEGOTIATION
Tony N SlusarskiJapanIvan Magalhaes NEGOTIATION
Izzy F WhobreyJapanAmy Elsner UNQUALIFIED
Aika X BowleyJapanBernardo Dominic NEGOTIATION
Mayumi X OstroskyJapanAsiya Javayant PROPOSAL
Stacey M InouyeIndiaStephen Shaw PROPOSAL
Kadeem K ShinkoCanadaElwin Sharvill PROPOSAL
Ivar J DoeGermanyElwin Sharvill PROPOSAL
Izzy P StockhamSpainBernardo Dominic UNQUALIFIED
Octavia P RulapaughSpainStephen Shaw QUALIFIED
Isabel X TollnerCanadaElwin Sharvill NEGOTIATION
Mujtaba C WieserItalyXuxue Feng NEGOTIATION
Darci A IturbideItalyOnyama Limba RENEWAL
Tony X OstroskyUnited KingdomOnyama Limba UNQUALIFIED
Ashley F PoquetteSpainAmy Elsner QUALIFIED
Aditya K SaylorsArgentinaIvan Magalhaes NEGOTIATION
Misaki W RoysterArgentinaBernardo Dominic PROPOSAL
Munro O WhobreyIndiaIoni Bowcher QUALIFIED
Misaki S BowleyIndiaIoni Bowcher NEW
Misaki X CaudyRussiaAnna Fali QUALIFIED
Arvin S WieserJapanOnyama Limba NEW
Juan Z GarufiJapanElwin Sharvill QUALIFIED
Kaitlin K FigeroaBrazilAnna Fali QUALIFIED
Jefferson Q KolmetzBrazilAmy Elsner NEW
Smith T ShinkoGermanyXuxue Feng NEW
Salvatore O FlosiRussiaIvan Magalhaes RENEWAL
Darci T CaldareraRussiaIvan Magalhaes NEW
Adams T RutaCanadaStephen Shaw UNQUALIFIED
Deepesh H MacleadIndiaIoni Bowcher NEW
Ricardo D RoysterFranceIoni Bowcher PROPOSAL
Francesco Z CaudyFranceIvan Magalhaes NEW
Jeanfrancois M GauchoBrazilOnyama Limba UNQUALIFIED
Mayumi D GauchoCanadaElwin Sharvill NEGOTIATION
Tony Y FerenczFranceElwin Sharvill RENEWAL
Francesco Q VenereSpainIvan Magalhaes NEGOTIATION
Mayumi I AlbaresCanadaOnyama Limba PROPOSAL
Jennifer C WieserItalyIoni Bowcher RENEWAL
Silvio Z GlickAustraliaXuxue Feng NEW
Aruna F AlbaresArgentinaAmy Elsner PROPOSAL
Juan B CampainBrazilIvan Magalhaes QUALIFIED
Antonio K GarufiGermanyElwin Sharvill UNQUALIFIED
Deepesh A IturbideJapanElwin Sharvill PROPOSAL
Jones J FigeroaCanadaOnyama Limba UNQUALIFIED
Misaki U AlbaresUnited KingdomAsiya Javayant PROPOSAL
Stacey D NestleIndiaIvan Magalhaes RENEWAL
Isabel D BowleyJapanAsiya Javayant NEGOTIATION
Juan U AmigonGermanyIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Munro W CaldareraAustraliaBernardo Dominic NEW
Tony L DilliardCanadaAnna Fali UNQUALIFIED
Ricardo O InouyeIndiaAnna Fali UNQUALIFIED
Julie K DarakjyUnited KingdomAsiya Javayant RENEWAL
Kadeem L StockhamIndiaIvan Magalhaes PROPOSAL
Maria L BriddickRussiaAmy Elsner QUALIFIED
Chavez W OstroskyUnited KingdomAnna Fali QUALIFIED
Faith Z CaldareraItalyElwin Sharvill NEW
Murillo I FlosiIndiaAsiya Javayant NEGOTIATION
Juan M CampainUnited KingdomStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika U StensethIndia2024-04-25Printing Dimensions QUALIFIED41Bernardo Dominic
1001Aruna C FigeroaCanada2024-04-07Commercial Press RENEWAL47Onyama Limba
1002Jennifer X DilliardUnited Kingdom2024-04-25Chemel, James L Cpa NEW77Asiya Javayant
1003Murillo W SergiSpain2024-04-26Chapman, Ross E Esq UNQUALIFIED87Amy Elsner
1004Salvatore N WaycottFrance2024-04-13Commercial Press QUALIFIED53Ioni Bowcher
1005Silvio X IturbideFrance2024-04-08King, Christopher A Esq QUALIFIED53Amy Elsner
1006Arvin B BologniaCanada2024-03-29Chemel, James L Cpa PROPOSAL73Bernardo Dominic
1007Munro G GarufiUnited Kingdom2024-04-17Dorl, James J Esq RENEWAL84Stephen Shaw
1008Mayumi D StockhamJapan2024-04-07King, Christopher A Esq UNQUALIFIED2Ioni Bowcher
1009Maria L VenereGermany2024-04-07Benton, John B Jr QUALIFIED83Asiya Javayant
1010Wickens V PaprockiRussia2024-04-09Chemel, James L Cpa NEGOTIATION34Bernardo Dominic
1011Alejandro U WieserFrance2024-04-22Morlong Associates UNQUALIFIED13Elwin Sharvill
1012Silvio J AmigonGermany2024-04-19Benton, John B Jr PROPOSAL71Bernardo Dominic
1013Rodrigues Q ShinkoAustralia2024-04-16Rangoni Of Florence PROPOSAL78Asiya Javayant
1014Emily E NickaCanada2024-04-20Buckley Miller Wright RENEWAL8Xuxue Feng
1015Kadeem B VocelkaRussia2024-04-06Rangoni Of Florence NEGOTIATION67Amy Elsner
1016Jefferson P BologniaRussia2024-04-16Printing Dimensions NEW5Xuxue Feng
1017David V DilliardCanada2024-04-23Printing Dimensions QUALIFIED20Anna Fali
1018Jefferson P AmigonJapan2024-03-30Chemel, James L Cpa QUALIFIED95Bernardo Dominic
1019Ricardo W OldroydIndia2024-03-31Truhlar And Truhlar Attys NEGOTIATION25Stephen Shaw
1020Wickens Q PoquetteUnited Kingdom2024-04-04Dorl, James J Esq PROPOSAL71Anna Fali
1021Ashley O OldroydItaly2024-04-22Chemel, James L Cpa UNQUALIFIED18Amy Elsner
1022Misaki L MaletAustralia2024-04-10Morlong Associates NEGOTIATION31Elwin Sharvill
1023Alejandro J FlosiSpain2024-04-17Feltz Printing Service NEGOTIATION89Elwin Sharvill
1024Chavez S FigeroaJapan2024-04-16Commercial Press PROPOSAL10Amy Elsner
1025Costa T GarufiGermany2024-04-26Feltz Printing Service NEGOTIATION11Ivan Magalhaes
1026Nicolas K RimAustralia2024-04-01Rousseaux, Michael Esq RENEWAL48Elwin Sharvill
1027Morrow I WaycottJapan2024-03-31Benton, John B Jr PROPOSAL46Elwin Sharvill
1028Nicolas N IturbideUnited Kingdom2024-04-24Chanay, Jeffrey A Esq QUALIFIED32Asiya Javayant
1029Darci N FollerFrance2024-04-14Chemel, James L Cpa PROPOSAL56Onyama Limba
1030Salvatore K PerinAustralia2024-04-18Rousseaux, Michael Esq PROPOSAL64Amy Elsner
1031Jeanfrancois N VenereAustralia2024-04-14Feltz Printing Service RENEWAL47Onyama Limba
1032Claire R SaylorsGermany2024-04-04Chapman, Ross E Esq QUALIFIED32Onyama Limba
1033Aruna S GillianJapan2024-04-05Benton, John B Jr UNQUALIFIED49Bernardo Dominic
1034Leon O TollnerSpain2024-04-27Chemel, James L Cpa UNQUALIFIED39Anna Fali
1035Nicolas Z FerenczUnited Kingdom2024-04-16Benton, John B Jr RENEWAL27Bernardo Dominic
1036Chavez E DarakjyBrazil2024-04-10Feiner Bros QUALIFIED89Onyama Limba
1037Jeanfrancois L AmigonItaly2024-04-10Benton, John B Jr NEGOTIATION41Ioni Bowcher
1038Deepesh V InouyeAustralia2024-04-08Commercial Press NEW48Bernardo Dominic
1039Francesco R CaudyUnited Kingdom2024-04-12Printing Dimensions UNQUALIFIED35Anna Fali
1040Izzy R IturbideGermany2024-04-05Morlong Associates QUALIFIED15Anna Fali
1041Antonio V RimArgentina2024-04-09Printing Dimensions RENEWAL27Elwin Sharvill
1042Aika V CaldareraCanada2024-04-19Commercial Press PROPOSAL71Anna Fali
1043Nicolas S CampainItaly2024-04-23Commercial Press RENEWAL15Amy Elsner
1044Darci V DilliardBrazil2024-03-30Chanay, Jeffrey A Esq NEGOTIATION70Elwin Sharvill
1045Clifford B PaprockiRussia2024-04-11Feiner Bros RENEWAL67Xuxue Feng
1046Aditya F KuskoIndia2024-04-12King, Christopher A Esq UNQUALIFIED47Xuxue Feng
1047Kaitlin D GillianArgentina2024-04-05Benton, John B Jr RENEWAL96Xuxue Feng
1048Maisha N InouyeRussia2024-04-26Feltz Printing Service NEW75Stephen Shaw
1049Octavia T MorascaCanada2024-04-01Rousseaux, Michael Esq UNQUALIFIED32Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Murillo T SlusarskiAustraliaAsiya Javayant NEGOTIATION
Greenwood R RutaIndiaAnna Fali NEW
Cody Z CampainFranceIvan Magalhaes NEGOTIATION
Arvin P BriddickArgentinaBernardo Dominic PROPOSAL
Arvin R MaletItalyIvan Magalhaes NEW
Octavia K CampainAustraliaAnna Fali RENEWAL
Faith U CaldareraArgentinaBernardo Dominic NEGOTIATION
Stacey R InouyeRussiaIvan Magalhaes NEGOTIATION
Arvin K StensethCanadaStephen Shaw NEGOTIATION
Costa N DilliardBrazilIvan Magalhaes NEW
Cody R WaycottJapanOnyama Limba UNQUALIFIED
Jones V BriddickCanadaStephen Shaw NEGOTIATION
Stacey C FollerUnited KingdomBernardo Dominic PROPOSAL
David T FigeroaCanadaStephen Shaw UNQUALIFIED
Claire Z NestleSpainOnyama Limba NEW
Claire Y BologniaGermanyXuxue Feng NEGOTIATION
Jeanfrancois I PaprockiUnited KingdomIvan Magalhaes NEGOTIATION
Arvin H TollnerCanadaXuxue Feng RENEWAL
Julie Y WhobreySpainXuxue Feng NEGOTIATION
Murillo H GauchoItalyIvan Magalhaes UNQUALIFIED
Salvatore D SchemmerCanadaElwin Sharvill RENEWAL
Leja D GauchoCanadaIoni Bowcher QUALIFIED
Clifford N PaprockiAustraliaOnyama Limba QUALIFIED
Greenwood L MaletAustraliaAmy Elsner RENEWAL
Maisha Q SaylorsAustraliaAsiya Javayant UNQUALIFIED
Darci D NickaBrazilIvan Magalhaes NEGOTIATION
Rodrigues X ShinkoGermanyIoni Bowcher PROPOSAL
Juan N StensethCanadaAnna Fali QUALIFIED
Morrow M RimBrazilOnyama Limba UNQUALIFIED
Leon C BriddickFranceOnyama Limba PROPOSAL
Chavez B MaletGermanyIoni Bowcher NEW
Kaitlin F PaprockiFranceAmy Elsner RENEWAL
Munro H FigeroaJapanIvan Magalhaes NEW
Juan J GillianCanadaIvan Magalhaes NEGOTIATION
Mujtaba F WhobreyBrazilAsiya Javayant QUALIFIED
Smith X GillianIndiaAmy Elsner QUALIFIED
Mujtaba A KuskoIndiaXuxue Feng UNQUALIFIED
Antonio Q GarufiFranceOnyama Limba NEW
Leja W VenereIndiaAsiya Javayant NEGOTIATION
Cody L GauchoSpainStephen Shaw UNQUALIFIED
Munro P SergiItalyOnyama Limba NEW
Costa R RoysterCanadaOnyama Limba UNQUALIFIED
Darci M SaylorsRussiaXuxue Feng QUALIFIED
Francesco F BologniaGermanyAsiya Javayant QUALIFIED
Sinclair Y NickaUnited KingdomBernardo Dominic UNQUALIFIED
Rodrigues S InouyeItalyAnna Fali QUALIFIED
Deepesh O GarufiAustraliaXuxue Feng UNQUALIFIED
Kadeem T MaletIndiaStephen Shaw PROPOSAL
Salvatore V BowleyJapanAsiya Javayant RENEWAL
Tony R InouyeCanadaStephen Shaw UNQUALIFIED
Frozen Columns
Name
Murillo T Marrier
Maisha M Caldarera
Izzy Q Poquette
Stacey O Rulapaugh
Chavez G Nicka
Claire K Paprocki
Tony C Albares
Ashley P Butt
Antonio U Ferencz
Izzy Z Glick
Greenwood F Gillian
Leon E Glick
Faith M Ruta
Julie S Chui
Adams J Sergi
Deepesh P Kolmetz
Cody Z Campain
Octavia N Caudy
Isabel R Rulapaugh
Jennifer Q Gillian
Kaitlin J Albares
Mujtaba U Malet
Silvio B Malet
Rodrigues G Waycott
Chavez D Campain
Juan Z Bowley
Aika Q Ferencz
Morrow E Tollner
Jefferson G Nestle
Jennifer U Stenseth
Greenwood J Caldarera
Clifford F Tollner
Chavez K Caudy
Tony Z Tollner
Mayumi V Doe
Adams H Gillian
Silvio W Whobrey
Murillo K Oldroyd
Johnson X Malet
Cody R Darakjy
Cody C Stenseth
Maria M Morasca
Tony H Sergi
Munro I Briddick
Morrow Y Butt
Clifford M Figeroa
Kadeem R Briddick
Misaki P Poquette
Wickens N Gillian
Wickens J Ostrosky
IdCountryDate
1000Spain2024-04-01
1001Brazil2024-04-10
1002France2024-04-04
1003United Kingdom2024-04-12
1004Russia2024-04-25
1005Australia2024-04-02
1006Germany2024-04-20
1007France2024-04-08
1008Russia2024-04-25
1009India2024-04-03
1010India2024-04-22
1011Australia2024-04-08
1012Brazil2024-04-23
1013United Kingdom2024-04-07
1014Canada2024-04-04
1015India2024-04-15
1016Italy2024-04-13
1017Australia2024-04-11
1018Germany2024-04-15
1019Spain2024-04-27
1020Russia2024-04-15
1021India2024-04-22
1022Russia2024-03-31
1023Russia2024-04-09
1024Canada2024-04-08
1025Australia2024-04-19
1026France2024-04-04
1027Germany2024-04-14
1028France2024-04-11
1029Russia2024-04-08
1030United Kingdom2024-04-13
1031France2024-04-07
1032Russia2024-04-01
1033Brazil2024-04-01
1034Argentina2024-04-20
1035Argentina2024-04-26
1036Italy2024-04-20
1037United Kingdom2024-03-30
1038Canada2024-04-12
1039Argentina2024-04-06
1040Brazil2024-04-25
1041Japan2024-04-02
1042France2024-04-24
1043India2024-04-10
1044India2024-04-06
1045Brazil2024-04-23
1046Germany2024-04-19
1047Japan2024-04-16
1048Russia2024-04-27
1049Argentina2024-04-07

On-Demand Data

NameIdCountryDate
Johnson F Malet1000Russia2024-04-07
Murillo N Whobrey1001Canada2024-04-13
Kaitlin P Kolmetz1002Italy2024-04-04
Alejandro X Royster1003Japan2024-04-13
Kaitlin U Caudy1004United Kingdom2024-04-24
Salvatore B Malet1005Germany2024-04-21
Greenwood A Oldroyd1006Russia2024-04-08
Aditya H Campain1007France2024-04-03
Aika Y Malet1008Germany2024-04-24
Rodrigues X Ferencz1009Germany2024-04-18
Darci S Amigon1010Spain2024-04-06
Mayumi Z Ferencz1011United Kingdom2024-04-01
Jefferson F Rim1012Italy2024-04-03
Wickens X Stockham1013Canada2024-04-07
Jefferson I Waycott1014Japan2024-04-26
Murillo A Amigon1015France2024-04-17
Ashley L Vocelka1016Argentina2024-04-05
Rodrigues Y Malet1017Japan2024-04-11
Arvin M Stenseth1018Russia2024-04-05
Juan W Darakjy1019United Kingdom2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo K MaletCanadaAmy Elsner QUALIFIED
Wickens P DarakjySpainAmy Elsner QUALIFIED
Ashley N SlusarskiGermanyOnyama Limba UNQUALIFIED
Adams K MarrierItalyXuxue Feng RENEWAL
Aditya W OldroydBrazilAsiya Javayant PROPOSAL
Francesco L CaldareraFranceAnna Fali QUALIFIED
Adams L AlbaresItalyAsiya Javayant NEW
Tony O CaldareraJapanStephen Shaw RENEWAL
Deepesh K TollnerUnited KingdomBernardo Dominic NEGOTIATION
Ricardo O DoeGermanyAmy Elsner UNQUALIFIED
Cody X VocelkaAustraliaStephen Shaw RENEWAL
Maria W NestleBrazilOnyama Limba NEW
Jones H GauchoGermanyStephen Shaw NEGOTIATION
Leon J DilliardGermanyAnna Fali UNQUALIFIED
David Z VocelkaAustraliaXuxue Feng NEW
Mujtaba E AmigonItalyAmy Elsner PROPOSAL
Sinclair R SaylorsJapanAnna Fali PROPOSAL
Misaki R SlusarskiArgentinaStephen Shaw PROPOSAL
Nicolas Y BowleyIndiaAsiya Javayant QUALIFIED
Francesco N MaletIndiaElwin Sharvill RENEWAL
Leon X SaylorsItalyBernardo Dominic PROPOSAL
Wickens S SergiAustraliaBernardo Dominic RENEWAL
Wickens W BriddickIndiaXuxue Feng QUALIFIED
Ashley F RoysterSpainAsiya Javayant PROPOSAL
Antonio Z RutaCanadaOnyama Limba QUALIFIED
Arvin W NickaJapanIvan Magalhaes QUALIFIED
Morrow X NestleUnited KingdomAsiya Javayant PROPOSAL
Chavez W RutaIndiaAsiya Javayant RENEWAL
Octavia S DoeJapanStephen Shaw PROPOSAL
Alejandro N BologniaArgentinaIoni Bowcher UNQUALIFIED
Jones Z OldroydSpainIoni Bowcher UNQUALIFIED
Deepesh F RimJapanIvan Magalhaes RENEWAL
Izzy A CampainIndiaStephen Shaw RENEWAL
Leon N TollnerAustraliaAsiya Javayant NEW
Jeanfrancois D ChuiGermanyIoni Bowcher RENEWAL
Johnson C ShinkoSpainAmy Elsner NEW
Francesco Q VenereItalyXuxue Feng NEGOTIATION
Claire V GlickJapanAnna Fali PROPOSAL
Jefferson U IturbideRussiaElwin Sharvill PROPOSAL
Darci R WaycottAustraliaIvan Magalhaes PROPOSAL

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