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
Morrow V CaudyGermanyXuxue Feng NEW
Aditya X GlickUnited KingdomAsiya Javayant NEW
Johnson V PerinArgentinaOnyama Limba NEW
Salvatore H CaudyRussiaOnyama Limba PROPOSAL
Jefferson H WaycottRussiaAsiya Javayant QUALIFIED
Jennifer M BriddickGermanyAsiya Javayant QUALIFIED
Antonio R ShinkoArgentinaAnna Fali NEW
Wickens B MaletIndiaBernardo Dominic QUALIFIED
Ashley Z DarakjyItalyElwin Sharvill QUALIFIED
Mayumi J GarufiAustraliaBernardo Dominic UNQUALIFIED
Misaki N DarakjyBrazilStephen Shaw RENEWAL
Faith R GlickUnited KingdomBernardo Dominic RENEWAL
Murillo U InouyeJapanOnyama Limba NEW
Clifford Z SchemmerUnited KingdomIvan Magalhaes PROPOSAL
Mujtaba F ButtBrazilXuxue Feng NEW
Mujtaba E ButtIndiaAmy Elsner PROPOSAL
Izzy T GauchoAustraliaElwin Sharvill UNQUALIFIED
Kadeem U CaudyRussiaIoni Bowcher PROPOSAL
Francesco B PoquetteIndiaIoni Bowcher PROPOSAL
Cody E StensethAustraliaElwin Sharvill NEW
Emily O SlusarskiCanadaAmy Elsner UNQUALIFIED
Nicolas W FlosiUnited KingdomOnyama Limba NEGOTIATION
Misaki B CaldareraJapanOnyama Limba UNQUALIFIED
Deepesh O CaldareraCanadaAsiya Javayant NEGOTIATION
Octavia C PoquetteBrazilAmy Elsner PROPOSAL
Maisha K PaprockiAustraliaOnyama Limba RENEWAL
Aditya A FollerArgentinaAnna Fali QUALIFIED
Octavia D SchemmerCanadaStephen Shaw PROPOSAL
Costa P FerenczUnited KingdomAsiya Javayant NEGOTIATION
Jeanfrancois N FlosiJapanIvan Magalhaes RENEWAL
Izzy Y BowleyArgentinaAmy Elsner UNQUALIFIED
Cody B NestleIndiaIvan Magalhaes NEGOTIATION
Deepesh J AmigonRussiaIvan Magalhaes NEGOTIATION
Johnson B AlbaresGermanyIoni Bowcher NEGOTIATION
Deepesh X MarrierGermanyElwin Sharvill QUALIFIED
Jones H CaldareraIndiaBernardo Dominic RENEWAL
Kadeem F PerinRussiaStephen Shaw QUALIFIED
Adams Z OstroskyBrazilStephen Shaw NEW
Clifford J PaprockiRussiaStephen Shaw NEW
David N RulapaughItalyStephen Shaw QUALIFIED
Jennifer I WaycottSpainAsiya Javayant RENEWAL
Maria E TollnerAustraliaAnna Fali QUALIFIED
Ricardo V AlbaresIndiaAmy Elsner NEW
Maisha I BriddickUnited KingdomIoni Bowcher PROPOSAL
Ivar Z InouyeFranceElwin Sharvill NEGOTIATION
Deepesh W TollnerSpainXuxue Feng PROPOSAL
Mayumi H FlosiSpainBernardo Dominic NEGOTIATION
Faith L MacleadJapanXuxue Feng NEGOTIATION
Morrow I BowleyArgentinaIoni Bowcher PROPOSAL
Rodrigues J InouyeItalyIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Deepesh Z MaletIndiaBernardo Dominic RENEWAL
Jones W RutaRussiaElwin Sharvill PROPOSAL
Leja M KuskoUnited KingdomAmy Elsner UNQUALIFIED
Johnson J DoeBrazilAsiya Javayant RENEWAL
Juan X RutaCanadaAsiya Javayant PROPOSAL
Kaitlin L BowleyUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois O GarufiJapanAsiya Javayant RENEWAL
David N WieserRussiaAmy Elsner RENEWAL
Izzy F GlickItalyAmy Elsner NEGOTIATION
Silvio J KolmetzAustraliaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar E MarrierFrance2024-04-12Chanay, Jeffrey A Esq UNQUALIFIED10Onyama Limba
1001Tony Z GauchoGermany2024-04-08Feiner Bros NEW0Stephen Shaw
1002Kaitlin S ChuiRussia2024-04-11Chanay, Jeffrey A Esq NEGOTIATION57Amy Elsner
1003Sinclair R ShinkoSpain2024-04-02Morlong Associates NEGOTIATION65Stephen Shaw
1004Jefferson G SchemmerFrance2024-04-16Commercial Press NEGOTIATION72Amy Elsner
1005Kadeem T GillianItaly2024-04-08Rangoni Of Florence PROPOSAL33Onyama Limba
1006Chavez D NickaFrance2024-04-27Chapman, Ross E Esq UNQUALIFIED1Asiya Javayant
1007Kadeem D VocelkaIndia2024-04-07Rangoni Of Florence RENEWAL34Ioni Bowcher
1008Salvatore G ButtItaly2024-04-17Chemel, James L Cpa RENEWAL68Elwin Sharvill
1009Francesco O SlusarskiJapan2024-04-09Dorl, James J Esq PROPOSAL83Anna Fali
1010Maisha B KuskoJapan2024-04-10Chemel, James L Cpa PROPOSAL7Xuxue Feng
1011Jones O StensethRussia2024-04-02Commercial Press PROPOSAL77Bernardo Dominic
1012Chavez Y FerenczArgentina2024-04-19Dorl, James J Esq QUALIFIED30Asiya Javayant
1013Murillo C TollnerBrazil2024-04-11Rousseaux, Michael Esq UNQUALIFIED43Ivan Magalhaes
1014Mujtaba A TollnerRussia2024-04-13Truhlar And Truhlar Attys RENEWAL43Elwin Sharvill
1015Munro E VenereCanada2024-04-09Printing Dimensions QUALIFIED80Stephen Shaw
1016Ricardo C NickaCanada2024-04-25Feiner Bros NEGOTIATION96Onyama Limba
1017Aditya E CaudyUnited Kingdom2024-04-13Rangoni Of Florence QUALIFIED3Ioni Bowcher
1018Rodrigues H GillianIndia2024-04-02Feltz Printing Service UNQUALIFIED44Amy Elsner
1019Mayumi F FerenczSpain2024-04-01Rangoni Of Florence QUALIFIED25Elwin Sharvill
1020Clifford M SergiCanada2024-04-17Feltz Printing Service UNQUALIFIED1Xuxue Feng
1021Johnson L StockhamCanada2024-04-13Truhlar And Truhlar Attys RENEWAL53Ioni Bowcher
1022Antonio R SaylorsRussia2024-04-11Chemel, James L Cpa PROPOSAL77Elwin Sharvill
1023Silvio Q RutaUnited Kingdom2024-04-24Chanay, Jeffrey A Esq QUALIFIED38Ivan Magalhaes
1024Chavez V BologniaSpain2024-04-15Buckley Miller Wright QUALIFIED71Onyama Limba
1025Jennifer W TollnerItaly2024-04-07Feltz Printing Service UNQUALIFIED54Ivan Magalhaes
1026Juan P SlusarskiRussia2024-04-26King, Christopher A Esq QUALIFIED3Xuxue Feng
1027Costa Q ShinkoFrance2024-03-30Morlong Associates RENEWAL1Amy Elsner
1028Ashley S FlosiBrazil2024-04-18Dorl, James J Esq RENEWAL95Anna Fali
1029Mujtaba S IturbideSpain2024-03-31Benton, John B Jr NEW11Amy Elsner
1030Julie X WaycottAustralia2024-03-31Printing Dimensions UNQUALIFIED97Stephen Shaw
1031Chavez H MarrierAustralia2024-04-03Benton, John B Jr NEGOTIATION89Bernardo Dominic
1032Cody O IturbideCanada2024-04-09Dorl, James J Esq RENEWAL73Ioni Bowcher
1033Nicolas B SergiFrance2024-04-28King, Christopher A Esq QUALIFIED82Stephen Shaw
1034Tony U GlickArgentina2024-04-26Chapman, Ross E Esq UNQUALIFIED25Elwin Sharvill
1035Ashley W ChuiBrazil2024-04-23Dorl, James J Esq NEGOTIATION39Elwin Sharvill
1036Emily B MaletIndia2024-04-06Feltz Printing Service PROPOSAL78Bernardo Dominic
1037Clifford V AmigonRussia2024-04-04Benton, John B Jr PROPOSAL24Anna Fali
1038Clifford Z RoysterSpain2024-04-20Feltz Printing Service NEGOTIATION56Ivan Magalhaes
1039Kaitlin M MacleadAustralia2024-04-07Dorl, James J Esq NEGOTIATION6Anna Fali
1040Smith J CampainItaly2024-04-09Buckley Miller Wright UNQUALIFIED69Onyama Limba
1041Smith R AlbaresRussia2024-04-08Printing Dimensions QUALIFIED73Ivan Magalhaes
1042Claire X BowleyBrazil2024-04-27Benton, John B Jr PROPOSAL32Bernardo Dominic
1043Alejandro V CaudyUnited Kingdom2024-04-20Chemel, James L Cpa NEW7Bernardo Dominic
1044Adams H ChuiItaly2024-04-07Dorl, James J Esq RENEWAL17Onyama Limba
1045Leja S MarrierCanada2024-04-13Rangoni Of Florence UNQUALIFIED31Ivan Magalhaes
1046Adams N WieserAustralia2024-03-30Morlong Associates PROPOSAL23Ivan Magalhaes
1047Faith K DoeItaly2024-04-19Commercial Press PROPOSAL69Bernardo Dominic
1048Greenwood O ChuiGermany2024-04-06Feltz Printing Service RENEWAL93Elwin Sharvill
1049Maisha Q OldroydIndia2024-04-23Chapman, Ross E Esq NEW46Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Clifford U FerenczAustraliaElwin Sharvill NEW
Greenwood N FigeroaRussiaIvan Magalhaes NEGOTIATION
Kaitlin Y FerenczRussiaAnna Fali NEGOTIATION
Smith E FigeroaCanadaElwin Sharvill UNQUALIFIED
Chavez X CaldareraItalyElwin Sharvill NEW
Cody C RoysterIndiaStephen Shaw PROPOSAL
Izzy S FerenczGermanyBernardo Dominic UNQUALIFIED
Murillo U InouyeRussiaOnyama Limba RENEWAL
Salvatore Q KuskoSpainAmy Elsner NEW
Morrow O RoysterRussiaIvan Magalhaes NEW
Tony A GillianBrazilXuxue Feng RENEWAL
Costa L AlbaresArgentinaAsiya Javayant NEGOTIATION
Faith M CaldareraUnited KingdomOnyama Limba QUALIFIED
Costa C FerenczBrazilElwin Sharvill NEW
Munro X RutaCanadaIoni Bowcher PROPOSAL
Ivar D GlickAustraliaXuxue Feng UNQUALIFIED
Cody Q CaudyArgentinaAsiya Javayant NEW
Tony K VenereRussiaAnna Fali UNQUALIFIED
Jeanfrancois D VocelkaGermanyOnyama Limba UNQUALIFIED
Chavez Y BologniaCanadaXuxue Feng RENEWAL
Nicolas B MorascaBrazilBernardo Dominic RENEWAL
Maisha Y DarakjyFranceAmy Elsner PROPOSAL
Sinclair H WaycottAustraliaIoni Bowcher NEGOTIATION
Smith X ShinkoFranceStephen Shaw PROPOSAL
Jones J PaprockiGermanyXuxue Feng UNQUALIFIED
Jennifer U GlickGermanyElwin Sharvill UNQUALIFIED
Claire W IturbideIndiaElwin Sharvill QUALIFIED
Salvatore L PaprockiSpainAsiya Javayant QUALIFIED
Johnson L NickaUnited KingdomAnna Fali UNQUALIFIED
Rodrigues E WaycottRussiaElwin Sharvill NEW
Ivar S GlickGermanyBernardo Dominic QUALIFIED
Smith E WieserSpainStephen Shaw PROPOSAL
Leja Q FigeroaRussiaAsiya Javayant NEW
Ashley W AmigonUnited KingdomElwin Sharvill NEW
Ashley Z DilliardAustraliaElwin Sharvill QUALIFIED
David O FlosiFranceOnyama Limba UNQUALIFIED
Faith H FollerJapanAnna Fali QUALIFIED
Arvin O GarufiGermanyElwin Sharvill NEW
Adams L CaudyBrazilAnna Fali PROPOSAL
Silvio L FlosiGermanyIoni Bowcher QUALIFIED
Costa R PaprockiFranceElwin Sharvill NEW
Claire J PaprockiSpainStephen Shaw PROPOSAL
Arvin M CampainSpainAmy Elsner NEW
Salvatore I KolmetzCanadaAnna Fali NEGOTIATION
Murillo W SergiIndiaIoni Bowcher UNQUALIFIED
Ivar C ChuiSpainIvan Magalhaes RENEWAL
Kadeem H ChuiUnited KingdomXuxue Feng NEW
Johnson W WhobreyFranceOnyama Limba NEW
Salvatore Z ButtGermanyIoni Bowcher NEW
Ivar F DarakjyFranceIoni Bowcher RENEWAL
Frozen Columns
Name
Murillo L Maclead
Octavia Q Paprocki
Wickens L Paprocki
Chavez Z Poquette
Cody V Sergi
Murillo D Gaucho
Antonio Q Inouye
Leon L Maclead
Smith G Marrier
Deepesh H Flosi
Faith O Venere
Salvatore T Caldarera
Kaitlin D Caudy
Nicolas B Foller
Nicolas I Saylors
Isabel M Glick
Aditya H Albares
Leja K Vocelka
Aika N Waycott
Alejandro S Garufi
Claire O Foller
Izzy R Butt
Izzy Y Garufi
Leja W Oldroyd
Ivar I Gaucho
Juan C Sergi
Deepesh P Butt
Faith K Paprocki
Jeanfrancois F Wieser
Arvin D Schemmer
Octavia B Rulapaugh
Wickens D Stenseth
Sinclair G Oldroyd
Deepesh K Glick
Sinclair D Campain
Ashley G Whobrey
Emily I Foller
Rodrigues G Briddick
Maria N Ruta
Jefferson A Royster
Nicolas U Ruta
Munro U Nestle
Julie O Glick
Tony A Albares
Ashley Q Ruta
Antonio Y Iturbide
Munro L Dilliard
Stacey L Gaucho
Kadeem B Darakjy
Costa Y Nestle
IdCountryDate
1000Italy2024-04-12
1001India2024-04-19
1002India2024-04-11
1003Australia2024-04-19
1004Germany2024-04-20
1005United Kingdom2024-04-14
1006Australia2024-04-09
1007Argentina2024-04-15
1008Japan2024-04-22
1009Argentina2024-04-07
1010Italy2024-04-02
1011Japan2024-04-13
1012India2024-04-09
1013Germany2024-04-04
1014Italy2024-04-24
1015Germany2024-04-11
1016Russia2024-04-27
1017Brazil2024-04-12
1018Germany2024-04-08
1019Japan2024-04-14
1020Australia2024-04-28
1021Canada2024-04-14
1022United Kingdom2024-04-02
1023Brazil2024-04-23
1024Argentina2024-04-07
1025Russia2024-04-27
1026Japan2024-04-02
1027United Kingdom2024-04-26
1028Canada2024-04-03
1029United Kingdom2024-04-21
1030Japan2024-04-10
1031Canada2024-04-09
1032Germany2024-04-02
1033Italy2024-04-26
1034Russia2024-04-18
1035Italy2024-04-24
1036United Kingdom2024-04-12
1037Argentina2024-04-24
1038United Kingdom2024-04-06
1039United Kingdom2024-04-09
1040Australia2024-04-03
1041United Kingdom2024-04-12
1042Germany2024-04-09
1043India2024-04-24
1044Australia2024-04-10
1045India2024-04-05
1046Spain2024-04-07
1047France2024-04-16
1048Germany2024-04-14
1049India2024-04-26

On-Demand Data

NameIdCountryDate
Antonio X Iturbide1000Japan2024-04-20
Kadeem O Gaucho1001Japan2024-04-22
Aruna H Dilliard1002United Kingdom2024-04-13
Misaki V Paprocki1003Italy2024-04-01
Misaki J Iturbide1004United Kingdom2024-04-24
Silvio F Iturbide1005Italy2024-04-23
Aditya D Waycott1006Australia2024-04-17
Kadeem N Sergi1007Brazil2024-04-12
Sinclair M Butt1008France2024-04-10
Maria U Butt1009Argentina2024-04-23
Ashley I Kolmetz1010Italy2024-04-25
Kaitlin P Nicka1011Argentina2024-04-20
Jeanfrancois W Ostrosky1012United Kingdom2024-03-31
Jones C Rulapaugh1013Spain2024-04-01
Jennifer J Oldroyd1014Germany2024-04-20
Claire D Nicka1015Brazil2024-04-03
Jefferson T Poquette1016Germany2024-04-09
Emily H Saylors1017France2024-04-18
Darci N Garufi1018United Kingdom2024-04-07
Aruna I Ferencz1019Argentina2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja D FigeroaAustraliaXuxue Feng NEGOTIATION
Arvin F ChuiRussiaStephen Shaw QUALIFIED
Faith M MacleadArgentinaAnna Fali UNQUALIFIED
Smith J ChuiFranceIvan Magalhaes NEGOTIATION
Aika K GarufiArgentinaIvan Magalhaes NEGOTIATION
Misaki I MarrierJapanOnyama Limba PROPOSAL
Nicolas E GarufiItalyAsiya Javayant QUALIFIED
Tony A FigeroaJapanIoni Bowcher NEW
Morrow Q KuskoGermanyStephen Shaw NEW
Claire N StockhamBrazilStephen Shaw QUALIFIED
Jones F WieserIndiaAmy Elsner NEGOTIATION
Stacey M DarakjySpainAnna Fali NEGOTIATION
Silvio C SaylorsFranceAsiya Javayant NEW
Claire G SchemmerItalyAmy Elsner UNQUALIFIED
Arvin E FlosiJapanIoni Bowcher RENEWAL
Leja K FollerSpainAmy Elsner UNQUALIFIED
Kadeem U GlickRussiaAnna Fali RENEWAL
Emily E OstroskySpainAnna Fali PROPOSAL
Aditya D VocelkaAustraliaOnyama Limba UNQUALIFIED
Antonio X TollnerIndiaOnyama Limba NEGOTIATION
Jeanfrancois U GarufiArgentinaBernardo Dominic RENEWAL
Ricardo X FlosiGermanyElwin Sharvill NEGOTIATION
Mayumi M GlickItalyBernardo Dominic UNQUALIFIED
Izzy Q FollerItalyAmy Elsner QUALIFIED
Stacey B BowleyFranceIvan Magalhaes RENEWAL
Greenwood I InouyeGermanyStephen Shaw QUALIFIED
Stacey W RulapaughAustraliaAsiya Javayant QUALIFIED
Leja Z MarrierBrazilAsiya Javayant UNQUALIFIED
Kaitlin O IturbideItalyIoni Bowcher RENEWAL
Murillo E RoysterUnited KingdomOnyama Limba NEGOTIATION
Maria Q CampainFranceAmy Elsner PROPOSAL
Maria E BowleyJapanAsiya Javayant NEW
Jeanfrancois U NickaFranceBernardo Dominic NEGOTIATION
Salvatore G BriddickGermanyAnna Fali PROPOSAL
Johnson M PaprockiGermanyIoni Bowcher RENEWAL
Costa N WieserAustraliaOnyama Limba RENEWAL
Ricardo Y KolmetzRussiaElwin Sharvill NEGOTIATION
Chavez T BowleyAustraliaElwin Sharvill UNQUALIFIED
Jones O RulapaughArgentinaIoni Bowcher NEW
Maria C OldroydFranceBernardo Dominic NEGOTIATION

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