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
Aika Y InouyeAustraliaElwin Sharvill UNQUALIFIED
Wickens V RutaFranceAnna Fali QUALIFIED
Leon T NestleFranceElwin Sharvill NEW
Ivar V DilliardItalyAnna Fali PROPOSAL
Salvatore A IturbideIndiaXuxue Feng NEGOTIATION
Murillo V SchemmerBrazilAnna Fali RENEWAL
Stacey Q BriddickUnited KingdomAmy Elsner RENEWAL
Aruna W DilliardCanadaAmy Elsner NEW
Kaitlin L NestleUnited KingdomStephen Shaw RENEWAL
Claire A AmigonArgentinaXuxue Feng RENEWAL
Silvio E RimUnited KingdomXuxue Feng PROPOSAL
Alejandro A BowleyFranceXuxue Feng QUALIFIED
Johnson U ShinkoFranceOnyama Limba PROPOSAL
Murillo Y PoquetteSpainAnna Fali NEGOTIATION
Misaki X CaudyUnited KingdomElwin Sharvill NEGOTIATION
Alejandro G SlusarskiSpainStephen Shaw QUALIFIED
Sinclair A WieserItalyAsiya Javayant QUALIFIED
Ricardo Y AmigonSpainOnyama Limba RENEWAL
Misaki O AmigonAustraliaOnyama Limba RENEWAL
Isabel Q AmigonJapanAnna Fali UNQUALIFIED
Jones P KuskoItalyIoni Bowcher QUALIFIED
Claire A RimCanadaBernardo Dominic UNQUALIFIED
Octavia X BriddickItalyBernardo Dominic RENEWAL
Octavia G GillianGermanyIvan Magalhaes QUALIFIED
Munro J FlosiSpainStephen Shaw PROPOSAL
Cody J OstroskyCanadaElwin Sharvill PROPOSAL
James V MaletRussiaStephen Shaw QUALIFIED
Faith F DarakjyItalyAnna Fali QUALIFIED
Mujtaba X PerinIndiaAnna Fali NEGOTIATION
Ivar L CampainJapanAnna Fali UNQUALIFIED
Nicolas Y BowleyAustraliaXuxue Feng NEW
Octavia U StensethUnited KingdomAnna Fali RENEWAL
Murillo L GillianArgentinaOnyama Limba PROPOSAL
Leja G GarufiSpainBernardo Dominic PROPOSAL
Octavia O MaletRussiaXuxue Feng NEW
Jefferson V StensethAustraliaAmy Elsner RENEWAL
Jeanfrancois H AlbaresIndiaStephen Shaw RENEWAL
Ashley Z BriddickRussiaElwin Sharvill PROPOSAL
Cody H NestleGermanyAnna Fali UNQUALIFIED
Aruna B BowleyFranceStephen Shaw NEW
David M VenereSpainXuxue Feng UNQUALIFIED
Leja C CampainFranceOnyama Limba NEGOTIATION
Cody I StensethItalyIoni Bowcher NEW
Ricardo R GlickSpainXuxue Feng UNQUALIFIED
Jeanfrancois U GauchoItalyIoni Bowcher UNQUALIFIED
Ivar I GillianItalyXuxue Feng RENEWAL
Maisha V TollnerItalyIvan Magalhaes QUALIFIED
Jennifer G PerinBrazilOnyama Limba UNQUALIFIED
Aditya R CaldareraCanadaIoni Bowcher NEW
Leon L FlosiSpainElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Smith V PoquetteBrazilIvan Magalhaes UNQUALIFIED
Leon C FerenczJapanElwin Sharvill NEGOTIATION
Emily L CampainFranceIoni Bowcher QUALIFIED
Isabel O RulapaughGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois W AmigonArgentinaElwin Sharvill PROPOSAL
Juan Z RoysterArgentinaStephen Shaw NEGOTIATION
Francesco X SaylorsArgentinaElwin Sharvill RENEWAL
Clifford H GlickItalyAnna Fali NEGOTIATION
Isabel H AmigonUnited KingdomAsiya Javayant QUALIFIED
Murillo H GauchoUnited KingdomAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leja U StensethUnited Kingdom2024-04-23Feltz Printing Service NEW2Bernardo Dominic
1001Morrow B BologniaItaly2024-05-02Feltz Printing Service RENEWAL16Onyama Limba
1002Sinclair N GillianCanada2024-04-24Dorl, James J Esq NEW25Stephen Shaw
1003Francesco I NickaSpain2024-04-17Rousseaux, Michael Esq PROPOSAL77Ivan Magalhaes
1004Leon C NickaUnited Kingdom2024-04-04Truhlar And Truhlar Attys UNQUALIFIED51Bernardo Dominic
1005Salvatore Z RoysterBrazil2024-04-19Morlong Associates UNQUALIFIED82Amy Elsner
1006Smith J SergiUnited Kingdom2024-04-03Truhlar And Truhlar Attys NEW56Stephen Shaw
1007Claire C SchemmerUnited Kingdom2024-04-30King, Christopher A Esq RENEWAL67Amy Elsner
1008Adams Z FollerFrance2024-04-23Printing Dimensions NEGOTIATION69Bernardo Dominic
1009Aditya D FerenczJapan2024-04-15Benton, John B Jr NEGOTIATION81Amy Elsner
1010Stacey H InouyeRussia2024-04-29Chanay, Jeffrey A Esq NEGOTIATION7Asiya Javayant
1011Kadeem Z SchemmerFrance2024-04-11Rousseaux, Michael Esq NEW83Asiya Javayant
1012Maria L MacleadIndia2024-04-25Feltz Printing Service NEW26Onyama Limba
1013Deepesh Q MaletRussia2024-04-22Chanay, Jeffrey A Esq QUALIFIED45Anna Fali
1014Jeanfrancois G GauchoAustralia2024-04-24Printing Dimensions NEW98Amy Elsner
1015Nicolas M IturbideBrazil2024-04-07Feiner Bros NEW37Amy Elsner
1016Arvin L WieserJapan2024-04-21Rousseaux, Michael Esq QUALIFIED83Amy Elsner
1017Sinclair P IturbideBrazil2024-04-25Feiner Bros RENEWAL92Stephen Shaw
1018Jones M FollerFrance2024-04-06Chanay, Jeffrey A Esq RENEWAL39Amy Elsner
1019Rodrigues Z ChuiArgentina2024-04-30Dorl, James J Esq NEGOTIATION82Amy Elsner
1020Ivar I BologniaGermany2024-04-08Chemel, James L Cpa RENEWAL43Asiya Javayant
1021Arvin R BologniaUnited Kingdom2024-04-30Morlong Associates UNQUALIFIED44Anna Fali
1022Alejandro K PerinSpain2024-04-14Chemel, James L Cpa NEW19Stephen Shaw
1023Chavez Z GauchoBrazil2024-04-26Chapman, Ross E Esq UNQUALIFIED82Elwin Sharvill
1024Greenwood S DilliardGermany2024-04-07Rousseaux, Michael Esq RENEWAL67Anna Fali
1025Maisha I GlickAustralia2024-04-15Truhlar And Truhlar Attys PROPOSAL34Anna Fali
1026Chavez N NestleArgentina2024-04-08Commercial Press NEW12Stephen Shaw
1027Mujtaba R StensethBrazil2024-04-27Buckley Miller Wright QUALIFIED14Elwin Sharvill
1028Leon T CampainGermany2024-05-01Buckley Miller Wright NEW30Onyama Limba
1029Salvatore K KolmetzIndia2024-04-20Commercial Press UNQUALIFIED1Ioni Bowcher
1030Darci B BriddickRussia2024-04-07Benton, John B Jr UNQUALIFIED90Anna Fali
1031Rodrigues L DarakjyCanada2024-04-11Chemel, James L Cpa PROPOSAL82Ivan Magalhaes
1032Morrow I SaylorsSpain2024-04-21Chanay, Jeffrey A Esq RENEWAL86Ivan Magalhaes
1033Smith D MorascaBrazil2024-05-01Feiner Bros UNQUALIFIED87Ioni Bowcher
1034Kaitlin Z VocelkaJapan2024-04-10King, Christopher A Esq NEW18Ioni Bowcher
1035Izzy G FlosiSpain2024-04-24Chapman, Ross E Esq QUALIFIED36Elwin Sharvill
1036Adams Z VocelkaUnited Kingdom2024-04-22Chemel, James L Cpa RENEWAL12Amy Elsner
1037Rodrigues I DarakjyIndia2024-04-19Morlong Associates NEW21Anna Fali
1038Izzy P SlusarskiItaly2024-04-09Rangoni Of Florence PROPOSAL9Ivan Magalhaes
1039Juan I NickaRussia2024-04-14Rangoni Of Florence QUALIFIED87Bernardo Dominic
1040Isabel O GauchoUnited Kingdom2024-04-26Chanay, Jeffrey A Esq NEGOTIATION62Anna Fali
1041Murillo E OstroskyRussia2024-05-01Chapman, Ross E Esq PROPOSAL49Amy Elsner
1042Jefferson X InouyeFrance2024-04-15Buckley Miller Wright UNQUALIFIED24Elwin Sharvill
1043Octavia N CampainItaly2024-04-11Rangoni Of Florence UNQUALIFIED89Asiya Javayant
1044Faith R NestleAustralia2024-04-06Truhlar And Truhlar Attys NEW9Asiya Javayant
1045David D SlusarskiIndia2024-04-22Chapman, Ross E Esq PROPOSAL67Bernardo Dominic
1046Julie P NickaFrance2024-04-04Dorl, James J Esq QUALIFIED64Onyama Limba
1047Aika M SaylorsIndia2024-05-01Chapman, Ross E Esq QUALIFIED59Xuxue Feng
1048Nicolas A AmigonIndia2024-04-12Chapman, Ross E Esq QUALIFIED62Xuxue Feng
1049Maria O StockhamBrazil2024-04-07Buckley Miller Wright NEGOTIATION52Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Nicolas T CampainFranceXuxue Feng QUALIFIED
Arvin L TollnerCanadaIvan Magalhaes QUALIFIED
Salvatore L BriddickUnited KingdomAsiya Javayant NEW
Sinclair S GarufiUnited KingdomAnna Fali PROPOSAL
Ricardo Z PerinItalyBernardo Dominic RENEWAL
Costa G FlosiUnited KingdomStephen Shaw UNQUALIFIED
Greenwood L DilliardRussiaAmy Elsner NEGOTIATION
Antonio X BriddickItalyAsiya Javayant UNQUALIFIED
Maria I WhobreyRussiaAsiya Javayant NEW
Sinclair V MorascaGermanyXuxue Feng UNQUALIFIED
Murillo E FerenczSpainXuxue Feng RENEWAL
Jeanfrancois K MacleadAustraliaElwin Sharvill UNQUALIFIED
Misaki L RutaBrazilXuxue Feng PROPOSAL
Stacey W IturbideFranceXuxue Feng NEGOTIATION
Aika L RimRussiaOnyama Limba RENEWAL
Smith Y DarakjyBrazilIvan Magalhaes NEGOTIATION
Aruna L FerenczSpainAsiya Javayant UNQUALIFIED
Greenwood Y SergiFranceStephen Shaw QUALIFIED
Aika V FlosiSpainXuxue Feng RENEWAL
Juan L KuskoCanadaStephen Shaw RENEWAL
Jeanfrancois N DoeJapanBernardo Dominic PROPOSAL
Izzy X VenereCanadaIoni Bowcher NEGOTIATION
Maisha I MacleadGermanyElwin Sharvill PROPOSAL
David P WhobreyRussiaOnyama Limba NEW
Jefferson Y PoquetteItalyAmy Elsner QUALIFIED
Johnson N BowleyAustraliaElwin Sharvill NEGOTIATION
Clifford F ButtSpainXuxue Feng QUALIFIED
Leon R ShinkoJapanElwin Sharvill PROPOSAL
Antonio A NickaAustraliaAsiya Javayant NEGOTIATION
Rodrigues M SaylorsUnited KingdomElwin Sharvill UNQUALIFIED
Claire X OldroydFranceIoni Bowcher PROPOSAL
Salvatore L ButtAustraliaAnna Fali NEGOTIATION
Mayumi Q AmigonBrazilAsiya Javayant RENEWAL
Ashley T RimBrazilAnna Fali PROPOSAL
Octavia X NestleItalyIvan Magalhaes NEW
Arvin V GarufiIndiaAmy Elsner QUALIFIED
Maria C MacleadItalyAmy Elsner NEW
Jennifer E CampainIndiaElwin Sharvill NEW
Deepesh A DoeFranceElwin Sharvill QUALIFIED
Greenwood C WieserBrazilXuxue Feng UNQUALIFIED
Nicolas F ButtBrazilBernardo Dominic NEGOTIATION
Smith M ShinkoRussiaAsiya Javayant UNQUALIFIED
Arvin T AlbaresCanadaElwin Sharvill UNQUALIFIED
Sinclair G MaletBrazilElwin Sharvill NEW
Aditya Z GlickRussiaStephen Shaw NEGOTIATION
Jefferson P DilliardGermanyBernardo Dominic NEGOTIATION
Antonio Z MorascaSpainOnyama Limba NEGOTIATION
Emily S BowleyItalyAsiya Javayant UNQUALIFIED
Arvin D CaudyItalyStephen Shaw PROPOSAL
James R VocelkaIndiaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Deepesh U Paprocki
Greenwood C Briddick
Sinclair B Garufi
Greenwood S Poquette
Leon H Whobrey
Arvin N Darakjy
Tony X Nestle
Ivar X Sergi
Adams E Glick
Leja M Paprocki
Deepesh T Waycott
Jefferson U Kolmetz
Juan H Amigon
Mujtaba Y Ostrosky
Darci M Wieser
Sinclair A Gaucho
Emily C Doe
Cody U Bowley
Claire P Malet
Deepesh U Nestle
Arvin W Garufi
Juan S Nicka
James Y Doe
Aditya I Caudy
Nicolas I Vocelka
Octavia E Campain
Leon O Amigon
Stacey N Ruta
Isabel M Amigon
Arvin X Whobrey
Jones J Malet
Cody A Rim
Kadeem B Gaucho
Jeanfrancois R Butt
Francesco A Butt
Johnson E Morasca
Octavia S Amigon
Maisha V Bolognia
Misaki Q Ostrosky
David A Flosi
Izzy W Oldroyd
Misaki O Shinko
David I Morasca
Emily N Caldarera
Nicolas M Iturbide
Julie H Royster
Alejandro B Vocelka
Emily L Gaucho
Aruna W Wieser
Mayumi U Sergi
IdCountryDate
1000Germany2024-04-25
1001United Kingdom2024-04-30
1002Russia2024-04-04
1003Japan2024-04-13
1004Australia2024-04-15
1005France2024-04-17
1006Russia2024-04-26
1007Argentina2024-04-11
1008Japan2024-04-13
1009India2024-04-26
1010India2024-04-29
1011Italy2024-04-28
1012Italy2024-04-08
1013Russia2024-04-11
1014Brazil2024-04-08
1015Australia2024-04-03
1016Germany2024-04-25
1017France2024-05-01
1018Italy2024-04-04
1019Argentina2024-04-15
1020Germany2024-04-24
1021Argentina2024-04-11
1022Argentina2024-04-03
1023Brazil2024-04-10
1024United Kingdom2024-04-15
1025Spain2024-04-17
1026India2024-04-22
1027Spain2024-04-23
1028Germany2024-04-28
1029Australia2024-04-24
1030Australia2024-04-08
1031Brazil2024-04-18
1032Canada2024-04-10
1033Brazil2024-04-28
1034France2024-04-10
1035Spain2024-04-17
1036Russia2024-04-17
1037United Kingdom2024-04-11
1038Brazil2024-04-04
1039India2024-04-13
1040Canada2024-04-16
1041Japan2024-04-20
1042Canada2024-04-08
1043Italy2024-05-02
1044United Kingdom2024-04-21
1045Italy2024-04-22
1046Russia2024-05-01
1047Japan2024-04-09
1048Brazil2024-04-12
1049India2024-04-30

On-Demand Data

NameIdCountryDate
Leon Z Maclead1000United Kingdom2024-04-07
Salvatore C Figeroa1001France2024-04-10
Jones O Darakjy1002France2024-04-15
Aika Z Schemmer1003United Kingdom2024-05-02
Greenwood F Butt1004Germany2024-04-26
Alejandro D Maclead1005Australia2024-04-16
Maria H Saylors1006Spain2024-04-08
Mayumi Q Caldarera1007Germany2024-04-21
Juan P Doe1008France2024-04-09
Arvin Q Rim1009Canada2024-05-01
Mujtaba I Tollner1010Argentina2024-04-23
Wickens H Paprocki1011India2024-04-22
Wickens R Slusarski1012India2024-04-30
Deepesh T Malet1013France2024-04-29
Isabel S Nicka1014Germany2024-04-10
Ashley R Royster1015Argentina2024-04-26
Alejandro S Sergi1016Italy2024-04-08
James I Malet1017Canada2024-04-17
Aika E Royster1018India2024-04-07
Munro B Saylors1019Australia2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James F SchemmerArgentinaElwin Sharvill NEGOTIATION
Chavez X DarakjyIndiaStephen Shaw RENEWAL
Deepesh B SaylorsAustraliaAsiya Javayant UNQUALIFIED
James C MaletUnited KingdomAsiya Javayant PROPOSAL
Johnson F RutaArgentinaIvan Magalhaes RENEWAL
Izzy J WaycottRussiaIvan Magalhaes UNQUALIFIED
Sinclair Y RutaBrazilAsiya Javayant PROPOSAL
Jefferson D DilliardAustraliaIvan Magalhaes RENEWAL
Sinclair V RulapaughFranceXuxue Feng QUALIFIED
Izzy V ShinkoRussiaXuxue Feng PROPOSAL
James R RulapaughArgentinaAsiya Javayant NEGOTIATION
Emily U ChuiUnited KingdomXuxue Feng NEW
Emily H FlosiUnited KingdomIvan Magalhaes NEW
Kaitlin G FollerUnited KingdomStephen Shaw RENEWAL
Chavez P WieserArgentinaBernardo Dominic NEGOTIATION
Munro J NickaBrazilIoni Bowcher NEGOTIATION
Maria H CaudyCanadaBernardo Dominic UNQUALIFIED
Ricardo G AlbaresBrazilBernardo Dominic NEGOTIATION
Kadeem L SlusarskiRussiaAnna Fali NEGOTIATION
Jefferson I SchemmerSpainStephen Shaw QUALIFIED
Munro C PoquetteFranceStephen Shaw QUALIFIED
Smith K CaudyUnited KingdomElwin Sharvill UNQUALIFIED
Mayumi Q GlickItalyAsiya Javayant NEGOTIATION
Aruna A BriddickUnited KingdomStephen Shaw PROPOSAL
Darci R FlosiUnited KingdomAsiya Javayant RENEWAL
Kadeem J OstroskyIndiaAmy Elsner PROPOSAL
Jennifer D InouyeJapanXuxue Feng PROPOSAL
Cody Z SergiGermanyBernardo Dominic PROPOSAL
Mayumi Q TollnerUnited KingdomIvan Magalhaes PROPOSAL
Arvin N AlbaresBrazilOnyama Limba RENEWAL
Juan U WieserJapanAnna Fali NEW
Johnson Q MorascaSpainXuxue Feng QUALIFIED
Leja K NickaArgentinaIoni Bowcher PROPOSAL
Francesco Z BowleyBrazilAmy Elsner UNQUALIFIED
Jefferson P BologniaAustraliaAsiya Javayant QUALIFIED
Nicolas T BowleyAustraliaXuxue Feng PROPOSAL
Alejandro K OldroydCanadaStephen Shaw PROPOSAL
Johnson M RoysterIndiaBernardo Dominic QUALIFIED
Ricardo Z GlickBrazilOnyama Limba UNQUALIFIED
Rodrigues W PaprockiUnited KingdomStephen Shaw 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>