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 S ChuiJapanElwin Sharvill NEGOTIATION
Darci S StensethSpainStephen Shaw QUALIFIED
Aruna T MacleadCanadaAnna Fali QUALIFIED
Johnson S MaletItalyStephen Shaw RENEWAL
James Q BriddickCanadaXuxue Feng NEGOTIATION
Ricardo A GarufiSpainElwin Sharvill RENEWAL
Leon N RoysterRussiaAsiya Javayant PROPOSAL
Izzy K AlbaresArgentinaStephen Shaw UNQUALIFIED
Morrow U MorascaCanadaIoni Bowcher PROPOSAL
Aditya R MaletArgentinaXuxue Feng QUALIFIED
Stacey O ButtGermanyBernardo Dominic NEW
Darci R WhobreyRussiaIvan Magalhaes PROPOSAL
James D MorascaArgentinaStephen Shaw UNQUALIFIED
Faith D CaudyIndiaOnyama Limba PROPOSAL
Sinclair E MaletJapanIoni Bowcher NEGOTIATION
Misaki H BologniaGermanyBernardo Dominic NEW
Ashley S DilliardUnited KingdomAsiya Javayant PROPOSAL
Izzy H FerenczUnited KingdomIoni Bowcher UNQUALIFIED
Aruna H VocelkaUnited KingdomIoni Bowcher NEGOTIATION
Maisha K PaprockiArgentinaAnna Fali NEW
Claire X FlosiFranceAsiya Javayant UNQUALIFIED
Deepesh K RimCanadaXuxue Feng PROPOSAL
James B ButtArgentinaStephen Shaw QUALIFIED
Maria T PoquetteCanadaIoni Bowcher NEGOTIATION
Izzy W WaycottSpainElwin Sharvill NEGOTIATION
Julie F BowleyAustraliaBernardo Dominic RENEWAL
Ivar X DarakjySpainXuxue Feng UNQUALIFIED
Kaitlin T IturbideRussiaStephen Shaw NEGOTIATION
Misaki X ChuiAustraliaElwin Sharvill RENEWAL
Mayumi I SchemmerRussiaIoni Bowcher NEGOTIATION
Sinclair D KuskoGermanyOnyama Limba QUALIFIED
Faith Z GlickRussiaStephen Shaw NEGOTIATION
Jones G CaldareraCanadaBernardo Dominic UNQUALIFIED
Salvatore I WieserIndiaElwin Sharvill QUALIFIED
Cody D TollnerFranceAsiya Javayant NEGOTIATION
Murillo T ChuiJapanAmy Elsner NEW
Jeanfrancois H MacleadIndiaXuxue Feng QUALIFIED
Kaitlin K DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Jeanfrancois T GillianIndiaAmy Elsner RENEWAL
Murillo P SergiJapanBernardo Dominic UNQUALIFIED
Aditya T MacleadJapanIvan Magalhaes NEGOTIATION
Rodrigues N NestleFranceOnyama Limba RENEWAL
Silvio L IturbideSpainAsiya Javayant RENEWAL
Ashley U WhobreyFranceAnna Fali NEGOTIATION
Francesco G PerinAustraliaOnyama Limba UNQUALIFIED
Antonio O BologniaUnited KingdomElwin Sharvill NEW
Munro R MorascaRussiaStephen Shaw NEW
Silvio D OldroydSpainAsiya Javayant NEW
Clifford H BologniaRussiaAmy Elsner NEGOTIATION
Greenwood G WieserIndiaElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci S FerenczBrazilStephen Shaw PROPOSAL
Wickens P CaudyArgentinaIoni Bowcher UNQUALIFIED
Wickens L WaycottItalyElwin Sharvill NEGOTIATION
Aditya U MaletItalyElwin Sharvill NEW
Arvin B FerenczBrazilStephen Shaw NEGOTIATION
Aditya W SchemmerCanadaAsiya Javayant QUALIFIED
Ricardo W KuskoGermanyStephen Shaw RENEWAL
Smith Z MaletAustraliaXuxue Feng UNQUALIFIED
Antonio Y MacleadIndiaBernardo Dominic RENEWAL
Jeanfrancois H RutaUnited KingdomAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois E FigeroaAustralia2024-04-04Rangoni Of Florence NEGOTIATION82Bernardo Dominic
1001Morrow S CampainBrazil2024-04-02Printing Dimensions RENEWAL25Xuxue Feng
1002Nicolas Z SlusarskiBrazil2024-04-21Truhlar And Truhlar Attys UNQUALIFIED38Amy Elsner
1003Aruna B BowleyIndia2024-04-11Printing Dimensions NEGOTIATION19Bernardo Dominic
1004Sinclair S NestleBrazil2024-04-26Buckley Miller Wright PROPOSAL59Asiya Javayant
1005Leja B PerinGermany2024-04-02King, Christopher A Esq PROPOSAL42Anna Fali
1006Wickens H ShinkoUnited Kingdom2024-04-04Dorl, James J Esq UNQUALIFIED44Bernardo Dominic
1007Chavez F DarakjyBrazil2024-04-08King, Christopher A Esq QUALIFIED38Ioni Bowcher
1008Jeanfrancois M WieserRussia2024-04-22Dorl, James J Esq NEGOTIATION29Bernardo Dominic
1009Claire H StockhamJapan2024-04-01Chanay, Jeffrey A Esq RENEWAL26Elwin Sharvill
1010Aika M OstroskyRussia2024-04-14Dorl, James J Esq UNQUALIFIED72Elwin Sharvill
1011Leja V NickaIndia2024-04-19Rousseaux, Michael Esq PROPOSAL23Xuxue Feng
1012Sinclair D OstroskyJapan2024-04-12Morlong Associates UNQUALIFIED74Stephen Shaw
1013Rodrigues C MorascaItaly2024-04-15Morlong Associates UNQUALIFIED27Asiya Javayant
1014Emily Z OldroydRussia2024-04-05Truhlar And Truhlar Attys UNQUALIFIED23Elwin Sharvill
1015David F KolmetzRussia2024-03-31Morlong Associates QUALIFIED47Stephen Shaw
1016Smith D OstroskyUnited Kingdom2024-04-01Chapman, Ross E Esq NEW8Anna Fali
1017Rodrigues P ChuiJapan2024-04-03Feltz Printing Service PROPOSAL95Stephen Shaw
1018Leja K MorascaRussia2024-04-20Rangoni Of Florence QUALIFIED92Onyama Limba
1019Clifford Y TollnerFrance2024-04-14Printing Dimensions QUALIFIED60Onyama Limba
1020Francesco K FigeroaAustralia2024-03-30Morlong Associates RENEWAL77Ivan Magalhaes
1021Kaitlin D RoysterGermany2024-04-01Feiner Bros NEW8Ivan Magalhaes
1022Deepesh X MorascaIndia2024-04-26Rousseaux, Michael Esq UNQUALIFIED35Anna Fali
1023Juan I RutaUnited Kingdom2024-04-20Truhlar And Truhlar Attys PROPOSAL68Ivan Magalhaes
1024Antonio X TollnerIndia2024-04-05Benton, John B Jr PROPOSAL18Onyama Limba
1025Tony E GarufiAustralia2024-04-25Chanay, Jeffrey A Esq QUALIFIED59Elwin Sharvill
1026Arvin A PerinArgentina2024-04-17Chapman, Ross E Esq RENEWAL93Bernardo Dominic
1027Morrow F ButtRussia2024-04-15Chanay, Jeffrey A Esq NEW92Xuxue Feng
1028Jeanfrancois Z DoeUnited Kingdom2024-04-09Morlong Associates UNQUALIFIED10Xuxue Feng
1029Juan K WhobreyRussia2024-04-16Printing Dimensions QUALIFIED21Asiya Javayant
1030David U DarakjyJapan2024-04-07Morlong Associates NEGOTIATION33Xuxue Feng
1031Kadeem I WaycottFrance2024-04-25Printing Dimensions RENEWAL36Xuxue Feng
1032Octavia W DoeGermany2024-04-25Feltz Printing Service PROPOSAL3Anna Fali
1033Leon C MorascaArgentina2024-04-10Commercial Press PROPOSAL27Anna Fali
1034Leon G DoeSpain2024-04-15Benton, John B Jr NEGOTIATION74Amy Elsner
1035Greenwood O GarufiJapan2024-04-01Chanay, Jeffrey A Esq QUALIFIED0Ioni Bowcher
1036Clifford I KolmetzUnited Kingdom2024-04-15Chanay, Jeffrey A Esq RENEWAL16Amy Elsner
1037Emily N PoquetteUnited Kingdom2024-03-30Feiner Bros QUALIFIED79Anna Fali
1038Adams R StensethIndia2024-04-05Chanay, Jeffrey A Esq PROPOSAL24Xuxue Feng
1039Claire D VocelkaJapan2024-04-03Feiner Bros RENEWAL86Onyama Limba
1040Claire J ShinkoArgentina2024-04-21Feiner Bros RENEWAL59Asiya Javayant
1041Arvin Z StensethAustralia2024-04-09Chapman, Ross E Esq NEGOTIATION97Ivan Magalhaes
1042Julie O GlickRussia2024-04-05Commercial Press NEW77Xuxue Feng
1043Deepesh X VenereJapan2024-04-26Commercial Press RENEWAL2Elwin Sharvill
1044Misaki Q MarrierSpain2024-04-19Chapman, Ross E Esq NEGOTIATION58Anna Fali
1045Johnson B CaudyBrazil2024-04-07Feiner Bros PROPOSAL66Xuxue Feng
1046Isabel J OldroydItaly2024-04-21Rousseaux, Michael Esq RENEWAL0Asiya Javayant
1047Antonio W TollnerIndia2024-04-18Chemel, James L Cpa PROPOSAL73Bernardo Dominic
1048Deepesh F VocelkaAustralia2024-03-31Commercial Press PROPOSAL47Xuxue Feng
1049Isabel X DarakjyBrazil2024-03-29Chapman, Ross E Esq RENEWAL49Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois K AmigonAustraliaAsiya Javayant UNQUALIFIED
Faith S MarrierUnited KingdomBernardo Dominic NEW
Ricardo H MacleadFranceXuxue Feng NEW
Alejandro G VenereIndiaAnna Fali UNQUALIFIED
Clifford P FerenczRussiaXuxue Feng PROPOSAL
Greenwood C MaletBrazilAsiya Javayant QUALIFIED
Isabel K MorascaUnited KingdomElwin Sharvill UNQUALIFIED
Munro Q MaletItalyIoni Bowcher RENEWAL
Izzy I AmigonBrazilIoni Bowcher PROPOSAL
Deepesh V BologniaBrazilStephen Shaw PROPOSAL
James V WaycottUnited KingdomIoni Bowcher PROPOSAL
Costa W OldroydIndiaIvan Magalhaes PROPOSAL
Salvatore J SaylorsRussiaAsiya Javayant NEGOTIATION
Salvatore S StensethGermanyIvan Magalhaes NEW
Misaki N FlosiRussiaIoni Bowcher QUALIFIED
Izzy I CaldareraRussiaIvan Magalhaes NEGOTIATION
Greenwood N TollnerAustraliaXuxue Feng NEGOTIATION
Nicolas W MorascaBrazilStephen Shaw PROPOSAL
Deepesh Y RutaJapanIvan Magalhaes NEW
Aruna O OstroskyJapanIoni Bowcher RENEWAL
James O StensethSpainXuxue Feng NEGOTIATION
Murillo R MaletItalyIvan Magalhaes QUALIFIED
Morrow T RutaJapanAsiya Javayant RENEWAL
Mujtaba B WieserIndiaIvan Magalhaes UNQUALIFIED
Alejandro V SaylorsArgentinaAsiya Javayant NEW
Johnson M MarrierIndiaOnyama Limba NEGOTIATION
Aditya Q MaletCanadaBernardo Dominic NEGOTIATION
Claire Q VocelkaItalyBernardo Dominic RENEWAL
Ashley T PaprockiIndiaOnyama Limba RENEWAL
Juan M RutaItalyIvan Magalhaes PROPOSAL
Aditya Q StockhamBrazilAnna Fali PROPOSAL
Johnson G FlosiUnited KingdomBernardo Dominic PROPOSAL
Maisha E DilliardJapanAnna Fali UNQUALIFIED
Julie O PerinUnited KingdomIoni Bowcher NEGOTIATION
Munro Q MacleadAustraliaAsiya Javayant NEGOTIATION
Maria O GauchoAustraliaIoni Bowcher PROPOSAL
Juan G SergiUnited KingdomIvan Magalhaes NEW
Leon B MaletUnited KingdomBernardo Dominic NEW
Jefferson D OldroydRussiaAsiya Javayant NEGOTIATION
Kadeem O FigeroaGermanyAmy Elsner RENEWAL
Leon E MaletRussiaAnna Fali RENEWAL
Sinclair Z CaudyAustraliaBernardo Dominic QUALIFIED
Claire K WhobreyAustraliaOnyama Limba UNQUALIFIED
Deepesh T StensethRussiaAsiya Javayant UNQUALIFIED
Antonio F SlusarskiIndiaIvan Magalhaes NEW
Jennifer M StockhamIndiaElwin Sharvill UNQUALIFIED
Leon S OldroydBrazilIvan Magalhaes RENEWAL
Aditya V BowleyGermanyOnyama Limba NEW
Kaitlin R RimRussiaIvan Magalhaes RENEWAL
Wickens J DoeSpainElwin Sharvill QUALIFIED
Frozen Columns
Name
Tony U Rim
Jefferson A Shinko
James D Glick
Isabel M Kolmetz
Antonio D Malet
Murillo T Doe
Misaki P Stockham
Tony O Whobrey
Izzy H Ruta
Jones M Stockham
Tony N Gaucho
Francesco F Caudy
Mujtaba V Maclead
Deepesh B Oldroyd
Juan Q Malet
Juan G Campain
Wickens T Whobrey
Chavez D Whobrey
Costa B Doe
Sinclair J Glick
Aika J Caudy
Emily S Shinko
Arvin J Ostrosky
Alejandro S Venere
Juan D Kolmetz
Sinclair A Stenseth
Ivar K Tollner
Clifford Z Nestle
Maisha S Tollner
Claire Y Gillian
Leja W Vocelka
Smith B Maclead
Adams D Poquette
Aditya V Caudy
Maisha Y Stenseth
Deepesh A Maclead
Wickens H Stockham
Isabel S Whobrey
Chavez F Amigon
Jones T Bolognia
James J Marrier
Maria F Schemmer
Izzy Z Briddick
Emily Z Albares
Faith L Sergi
Smith T Shinko
Jeanfrancois B Malet
Johnson F Albares
Rodrigues U Malet
Leja N Briddick
IdCountryDate
1000Brazil2024-03-30
1001Japan2024-04-12
1002Germany2024-04-06
1003Italy2024-04-06
1004Brazil2024-04-20
1005Spain2024-04-23
1006Russia2024-04-05
1007Brazil2024-04-23
1008France2024-04-24
1009Germany2024-04-09
1010Russia2024-04-18
1011Brazil2024-04-10
1012Argentina2024-04-06
1013United Kingdom2024-04-14
1014France2024-04-25
1015Italy2024-04-15
1016India2024-04-16
1017Italy2024-04-13
1018Canada2024-04-22
1019Brazil2024-04-13
1020Russia2024-04-13
1021Canada2024-04-04
1022India2024-04-06
1023Germany2024-04-17
1024France2024-04-16
1025United Kingdom2024-04-21
1026Germany2024-04-13
1027Brazil2024-04-21
1028Brazil2024-04-07
1029Brazil2024-04-09
1030France2024-04-26
1031Russia2024-04-02
1032United Kingdom2024-04-26
1033France2024-03-28
1034Russia2024-04-06
1035Italy2024-04-06
1036Russia2024-04-17
1037Argentina2024-03-29
1038Canada2024-04-03
1039France2024-03-29
1040United Kingdom2024-04-15
1041Canada2024-04-14
1042Spain2024-04-17
1043Italy2024-03-29
1044United Kingdom2024-04-19
1045Japan2024-03-29
1046Australia2024-04-02
1047India2024-04-23
1048Australia2024-04-16
1049Spain2024-04-23

On-Demand Data

NameIdCountryDate
Jeanfrancois T Shinko1000Germany2024-04-09
Faith C Tollner1001United Kingdom2024-04-04
Rodrigues Q Gaucho1002Russia2024-04-11
Arvin S Kusko1003India2024-04-13
Jones Y Dilliard1004United Kingdom2024-04-04
James G Ostrosky1005United Kingdom2024-04-14
Ashley N Gillian1006Canada2024-04-14
Sinclair H Ruta1007Spain2024-04-06
Costa B Bowley1008Argentina2024-04-08
Smith L Butt1009Argentina2024-04-08
Munro Z Gillian1010Russia2024-04-03
Clifford H Ferencz1011Brazil2024-04-15
Faith C Ruta1012Australia2024-04-05
Maria T Chui1013Argentina2024-04-14
Wickens L Glick1014Spain2024-04-11
Ivar O Vocelka1015Brazil2024-04-09
Darci R Rim1016Russia2024-04-13
Deepesh U Butt1017Spain2024-04-15
David W Nicka1018Germany2024-04-20
Maisha E Maclead1019Argentina2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kadeem U ButtGermanyStephen Shaw UNQUALIFIED
Maria U IturbideRussiaXuxue Feng NEW
Johnson V MarrierIndiaOnyama Limba NEGOTIATION
James P ShinkoItalyBernardo Dominic QUALIFIED
Darci E ChuiCanadaBernardo Dominic PROPOSAL
Misaki N GarufiItalyIvan Magalhaes UNQUALIFIED
Isabel J DoeItalyOnyama Limba NEGOTIATION
Kadeem G NickaUnited KingdomAmy Elsner QUALIFIED
Jennifer Z KuskoRussiaBernardo Dominic NEW
Clifford I KuskoSpainIoni Bowcher PROPOSAL
Jennifer A FlosiGermanyIoni Bowcher QUALIFIED
Ivar C InouyeIndiaAsiya Javayant NEGOTIATION
Salvatore W DoeIndiaAsiya Javayant QUALIFIED
Munro N RulapaughGermanyStephen Shaw NEW
Ashley D GillianCanadaElwin Sharvill RENEWAL
Ivar K SchemmerGermanyIoni Bowcher NEGOTIATION
Tony D BowleyCanadaAnna Fali UNQUALIFIED
Julie I MaletRussiaAmy Elsner NEGOTIATION
Izzy D MacleadRussiaIoni Bowcher NEW
Kadeem C RutaArgentinaAnna Fali UNQUALIFIED
Aditya C SaylorsJapanXuxue Feng RENEWAL
Greenwood V ChuiRussiaAnna Fali RENEWAL
Jeanfrancois B SchemmerIndiaAnna Fali NEGOTIATION
Antonio U VenereRussiaAnna Fali NEGOTIATION
Mayumi S KuskoIndiaAmy Elsner UNQUALIFIED
Aruna J FerenczGermanyElwin Sharvill QUALIFIED
Leon Z OstroskyUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy K SlusarskiRussiaAsiya Javayant NEGOTIATION
Kadeem W KuskoCanadaBernardo Dominic NEW
Jennifer Z RimGermanyAmy Elsner NEGOTIATION
Stacey L AlbaresFranceAmy Elsner RENEWAL
Misaki Y KolmetzGermanyIvan Magalhaes UNQUALIFIED
Jeanfrancois L SaylorsBrazilStephen Shaw QUALIFIED
Jennifer Y WhobreyCanadaStephen Shaw PROPOSAL
Greenwood K VocelkaArgentinaIvan Magalhaes NEW
Arvin Z KolmetzGermanyIoni Bowcher NEGOTIATION
Mayumi R NickaItalyAsiya Javayant NEW
Jones M GillianBrazilIvan Magalhaes PROPOSAL
Tony K KuskoCanadaAsiya Javayant NEGOTIATION
James B WaycottFranceIoni Bowcher 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>