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
Aditya I GarufiJapanIoni Bowcher RENEWAL
Wickens A WieserFranceElwin Sharvill NEGOTIATION
Silvio O AlbaresAustraliaStephen Shaw QUALIFIED
Silvio Y StockhamArgentinaIvan Magalhaes NEW
Munro E WieserIndiaIvan Magalhaes NEW
Juan N FigeroaAustraliaElwin Sharvill NEW
Salvatore Y FigeroaFranceAmy Elsner QUALIFIED
David T PaprockiBrazilXuxue Feng UNQUALIFIED
Julie E FerenczAustraliaIvan Magalhaes PROPOSAL
Arvin K MaletUnited KingdomOnyama Limba QUALIFIED
Jones S RulapaughFranceIoni Bowcher QUALIFIED
Juan A SchemmerCanadaIvan Magalhaes RENEWAL
Costa H MacleadCanadaAmy Elsner PROPOSAL
Aika S DilliardBrazilElwin Sharvill UNQUALIFIED
Maria I InouyeGermanyAsiya Javayant PROPOSAL
Aruna Z PerinCanadaStephen Shaw NEGOTIATION
Faith V WhobreyUnited KingdomAnna Fali QUALIFIED
Silvio E GarufiIndiaElwin Sharvill UNQUALIFIED
Mayumi L GauchoSpainAmy Elsner QUALIFIED
Sinclair R OstroskyAustraliaIvan Magalhaes QUALIFIED
Munro R GarufiSpainIvan Magalhaes RENEWAL
Octavia G ShinkoArgentinaIvan Magalhaes PROPOSAL
Greenwood O BowleyItalyOnyama Limba PROPOSAL
Alejandro Q FigeroaArgentinaBernardo Dominic NEW
Nicolas A MorascaBrazilStephen Shaw NEGOTIATION
Mujtaba X WhobreyJapanOnyama Limba RENEWAL
Munro S InouyeBrazilStephen Shaw NEGOTIATION
Wickens E CampainBrazilIvan Magalhaes UNQUALIFIED
Arvin R TollnerItalyIvan Magalhaes QUALIFIED
Deepesh C OldroydFranceStephen Shaw NEGOTIATION
Jeanfrancois H PaprockiFranceStephen Shaw RENEWAL
Chavez B IturbideItalyOnyama Limba NEW
Silvio X GauchoCanadaAmy Elsner NEW
Jennifer G TollnerGermanyBernardo Dominic QUALIFIED
Aika H FerenczBrazilIoni Bowcher QUALIFIED
Octavia J CaldareraUnited KingdomIvan Magalhaes NEGOTIATION
Leon A ButtFranceAsiya Javayant PROPOSAL
Jeanfrancois I SlusarskiFranceXuxue Feng QUALIFIED
Munro C MorascaFranceAsiya Javayant NEGOTIATION
Salvatore W CaldareraRussiaElwin Sharvill PROPOSAL
Chavez I GauchoGermanyIvan Magalhaes PROPOSAL
Julie X GlickAustraliaIvan Magalhaes PROPOSAL
Kaitlin H MarrierItalyOnyama Limba RENEWAL
Leja N StensethCanadaIoni Bowcher NEGOTIATION
Aika V FerenczRussiaIoni Bowcher NEW
Morrow T FollerFranceBernardo Dominic PROPOSAL
Isabel Z OldroydBrazilAsiya Javayant PROPOSAL
Deepesh T DilliardGermanyAmy Elsner QUALIFIED
Antonio U SaylorsUnited KingdomIvan Magalhaes NEW
Clifford O NestleJapanXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore Z BowleyIndiaAsiya Javayant PROPOSAL
Morrow H StensethBrazilAnna Fali NEGOTIATION
Jennifer Z NestleBrazilAnna Fali RENEWAL
Jones R FollerFranceStephen Shaw RENEWAL
Emily L TollnerCanadaStephen Shaw PROPOSAL
Jones U VenereRussiaBernardo Dominic PROPOSAL
Arvin F AlbaresItalyAnna Fali RENEWAL
Octavia W MorascaAustraliaElwin Sharvill NEW
Mujtaba L WieserArgentinaAmy Elsner UNQUALIFIED
Kaitlin Z SlusarskiIndiaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood M MarrierGermany2024-04-19Morlong Associates NEGOTIATION86Ioni Bowcher
1001Aruna W GlickBrazil2024-04-10Buckley Miller Wright NEW64Anna Fali
1002Octavia Z StensethAustralia2024-04-02Truhlar And Truhlar Attys PROPOSAL30Onyama Limba
1003Darci D FerenczArgentina2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED66Xuxue Feng
1004Nicolas V TollnerSpain2024-03-30Commercial Press PROPOSAL17Onyama Limba
1005Clifford Q IturbideSpain2024-04-11Feiner Bros NEW41Asiya Javayant
1006Darci M RutaSpain2024-03-30King, Christopher A Esq QUALIFIED27Ivan Magalhaes
1007Maisha P BriddickCanada2024-04-05Chanay, Jeffrey A Esq QUALIFIED73Onyama Limba
1008Morrow H MorascaUnited Kingdom2024-03-31Dorl, James J Esq NEW75Stephen Shaw
1009Emily E PaprockiRussia2024-04-02Printing Dimensions NEGOTIATION5Onyama Limba
1010Greenwood K AmigonJapan2024-04-21Truhlar And Truhlar Attys PROPOSAL67Bernardo Dominic
1011Ashley G BologniaAustralia2024-04-10Truhlar And Truhlar Attys QUALIFIED5Ivan Magalhaes
1012Wickens T OldroydAustralia2024-03-31Rousseaux, Michael Esq RENEWAL18Bernardo Dominic
1013Wickens O BologniaArgentina2024-04-07Feiner Bros NEGOTIATION88Amy Elsner
1014Mayumi A WaycottGermany2024-04-21Rousseaux, Michael Esq UNQUALIFIED79Anna Fali
1015Adams M IturbideItaly2024-04-10Truhlar And Truhlar Attys RENEWAL10Anna Fali
1016Adams O MacleadAustralia2024-04-12Chapman, Ross E Esq NEGOTIATION60Asiya Javayant
1017Juan A VocelkaAustralia2024-03-29Chapman, Ross E Esq UNQUALIFIED42Ioni Bowcher
1018Chavez G GlickAustralia2024-04-06Truhlar And Truhlar Attys NEW97Amy Elsner
1019Aditya W DoeUnited Kingdom2024-03-27Feiner Bros NEW32Anna Fali
1020Mayumi G GillianFrance2024-04-02Chapman, Ross E Esq NEGOTIATION63Amy Elsner
1021Cody N NickaJapan2024-04-15Rangoni Of Florence NEW58Elwin Sharvill
1022Leon C InouyeArgentina2024-04-16Chanay, Jeffrey A Esq NEGOTIATION20Stephen Shaw
1023Jeanfrancois D ShinkoAustralia2024-04-17Rangoni Of Florence RENEWAL34Asiya Javayant
1024Salvatore C CaldareraBrazil2024-04-24Benton, John B Jr RENEWAL25Bernardo Dominic
1025James A VocelkaRussia2024-03-30Buckley Miller Wright RENEWAL6Bernardo Dominic
1026Sinclair Z RulapaughJapan2024-04-14Chapman, Ross E Esq NEGOTIATION84Onyama Limba
1027Johnson A OstroskyAustralia2024-03-26Buckley Miller Wright QUALIFIED6Amy Elsner
1028Smith Z RutaUnited Kingdom2024-04-04Chanay, Jeffrey A Esq NEW12Xuxue Feng
1029Claire R RoysterFrance2024-04-24Chanay, Jeffrey A Esq NEW7Asiya Javayant
1030James L SaylorsJapan2024-04-10Chanay, Jeffrey A Esq NEGOTIATION88Amy Elsner
1031Stacey O GillianUnited Kingdom2024-04-07Rangoni Of Florence RENEWAL27Ioni Bowcher
1032James Y AlbaresRussia2024-04-09Chapman, Ross E Esq UNQUALIFIED53Elwin Sharvill
1033Maria X RutaArgentina2024-04-04Rangoni Of Florence QUALIFIED81Ioni Bowcher
1034Deepesh Z KuskoJapan2024-04-23Chanay, Jeffrey A Esq RENEWAL92Asiya Javayant
1035Aditya K SaylorsBrazil2024-04-04Chanay, Jeffrey A Esq RENEWAL68Stephen Shaw
1036Ivar Q RulapaughCanada2024-03-31Benton, John B Jr NEGOTIATION40Elwin Sharvill
1037Munro F FollerIndia2024-03-27Benton, John B Jr NEGOTIATION56Ivan Magalhaes
1038Arvin H AmigonIndia2024-03-29Rangoni Of Florence PROPOSAL60Bernardo Dominic
1039Rodrigues B MorascaFrance2024-03-30Feltz Printing Service NEGOTIATION28Ioni Bowcher
1040Sinclair W PaprockiCanada2024-04-13Chanay, Jeffrey A Esq NEW73Ivan Magalhaes
1041Clifford Y ShinkoCanada2024-04-13King, Christopher A Esq UNQUALIFIED20Ivan Magalhaes
1042Wickens H SlusarskiSpain2024-03-30Benton, John B Jr RENEWAL94Amy Elsner
1043Maisha S GarufiCanada2024-04-12Morlong Associates NEW26Anna Fali
1044Darci I CampainRussia2024-03-29Truhlar And Truhlar Attys UNQUALIFIED93Asiya Javayant
1045Misaki Y RutaItaly2024-04-06Feiner Bros PROPOSAL79Xuxue Feng
1046Octavia I BriddickCanada2024-04-19Morlong Associates NEGOTIATION69Xuxue Feng
1047Deepesh V BowleyJapan2024-04-22Truhlar And Truhlar Attys PROPOSAL66Ivan Magalhaes
1048Octavia O RulapaughUnited Kingdom2024-04-04Chanay, Jeffrey A Esq NEW55Elwin Sharvill
1049Maisha M RulapaughCanada2024-03-27Chanay, Jeffrey A Esq PROPOSAL14Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Munro Z ShinkoUnited KingdomBernardo Dominic UNQUALIFIED
Wickens G FollerGermanyElwin Sharvill QUALIFIED
Maria C BologniaCanadaAnna Fali UNQUALIFIED
Faith R MorascaGermanyStephen Shaw QUALIFIED
Clifford F FlosiRussiaBernardo Dominic NEGOTIATION
Izzy K PerinAustraliaIoni Bowcher NEGOTIATION
Wickens H CaldareraCanadaXuxue Feng RENEWAL
Nicolas W DarakjyRussiaXuxue Feng RENEWAL
Faith I CampainAustraliaIoni Bowcher PROPOSAL
Johnson G OldroydBrazilIoni Bowcher UNQUALIFIED
Jennifer H DarakjyArgentinaStephen Shaw QUALIFIED
James E IturbideUnited KingdomAsiya Javayant UNQUALIFIED
Octavia W InouyeAustraliaBernardo Dominic UNQUALIFIED
Mayumi K MorascaCanadaAnna Fali UNQUALIFIED
Alejandro Z AmigonRussiaAmy Elsner QUALIFIED
Julie R WaycottSpainOnyama Limba RENEWAL
David F ShinkoAustraliaAnna Fali NEW
Munro Z CampainRussiaIvan Magalhaes PROPOSAL
Rodrigues O FerenczGermanyStephen Shaw NEGOTIATION
Sinclair K FerenczJapanAnna Fali QUALIFIED
Julie I RulapaughBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois X PoquetteCanadaIvan Magalhaes PROPOSAL
Mujtaba X BowleyBrazilXuxue Feng PROPOSAL
Kadeem I IturbideItalyXuxue Feng QUALIFIED
Leja U FollerGermanyAmy Elsner NEW
Mayumi L MarrierIndiaAmy Elsner PROPOSAL
David L WaycottSpainAnna Fali NEW
Smith L WaycottIndiaAnna Fali NEGOTIATION
Tony H SlusarskiUnited KingdomElwin Sharvill PROPOSAL
Francesco P PerinJapanOnyama Limba UNQUALIFIED
Jennifer F AmigonJapanAmy Elsner NEW
Maisha Z SergiJapanAsiya Javayant PROPOSAL
Julie D AmigonCanadaStephen Shaw QUALIFIED
Greenwood E StensethIndiaBernardo Dominic UNQUALIFIED
David W VenereAustraliaElwin Sharvill UNQUALIFIED
Tony T StensethFranceAnna Fali RENEWAL
Maria M GauchoArgentinaXuxue Feng NEGOTIATION
Aditya O PerinRussiaAmy Elsner QUALIFIED
Leon R PoquetteSpainStephen Shaw NEW
Isabel E DarakjyFranceIoni Bowcher QUALIFIED
Julie H RimCanadaBernardo Dominic RENEWAL
Wickens M MarrierArgentinaAmy Elsner PROPOSAL
Aika D PerinCanadaIvan Magalhaes QUALIFIED
Mayumi O VocelkaSpainBernardo Dominic QUALIFIED
Jefferson Z ChuiJapanAsiya Javayant NEW
Rodrigues L MarrierRussiaAnna Fali NEGOTIATION
Smith Z FerenczBrazilAmy Elsner RENEWAL
Ivar Q VenereUnited KingdomAsiya Javayant NEGOTIATION
Mayumi M TollnerRussiaStephen Shaw UNQUALIFIED
Kadeem E KolmetzIndiaOnyama Limba NEW
Frozen Columns
Name
Mayumi K Bowley
Stacey E Flosi
Jeanfrancois P Stockham
Johnson F Malet
Morrow C Shinko
Morrow Q Albares
Maisha W Maclead
Sinclair A Ferencz
Nicolas O Gaucho
Munro O Campain
Jones K Amigon
Mujtaba H Sergi
Leja F Nestle
Leja X Venere
Julie D Shinko
Sinclair Q Whobrey
Leja T Foller
Chavez J Caudy
Rodrigues R Perin
Smith T Kusko
Greenwood X Caudy
Mujtaba X Albares
Salvatore M Campain
Ashley O Kusko
Rodrigues Z Ostrosky
Mujtaba X Sergi
Salvatore D Morasca
Morrow H Shinko
David X Vocelka
Leon F Stenseth
Murillo V Waycott
Leon G Nestle
Ashley Y Venere
Deepesh W Stenseth
Misaki I Foller
Adams U Darakjy
Munro G Waycott
Jennifer H Venere
Kaitlin O Bolognia
Jeanfrancois R Caudy
Darci Z Campain
Deepesh X Nicka
Francesco L Marrier
Clifford X Sergi
Kadeem W Darakjy
Ricardo N Morasca
Stacey U Morasca
Isabel V Caudy
Jennifer Z Poquette
Salvatore M Albares
IdCountryDate
1000Australia2024-04-11
1001Germany2024-04-17
1002Italy2024-03-31
1003Italy2024-04-16
1004Australia2024-03-26
1005Russia2024-04-22
1006Japan2024-04-18
1007Italy2024-03-29
1008Australia2024-03-30
1009Japan2024-04-01
1010Japan2024-04-02
1011Russia2024-04-10
1012Spain2024-03-29
1013United Kingdom2024-03-26
1014Australia2024-04-23
1015Spain2024-03-27
1016United Kingdom2024-04-10
1017Italy2024-04-10
1018Germany2024-04-24
1019Canada2024-04-05
1020Brazil2024-04-22
1021Spain2024-03-30
1022Japan2024-03-29
1023Argentina2024-03-26
1024Spain2024-04-05
1025Italy2024-04-13
1026Canada2024-04-02
1027Canada2024-04-14
1028India2024-04-04
1029Spain2024-04-10
1030Canada2024-04-15
1031Brazil2024-04-17
1032Italy2024-04-21
1033Spain2024-04-12
1034Canada2024-03-29
1035Japan2024-04-10
1036Argentina2024-04-13
1037Argentina2024-04-06
1038Germany2024-04-15
1039Italy2024-04-14
1040Germany2024-04-15
1041Spain2024-04-14
1042Japan2024-04-16
1043Russia2024-04-23
1044Australia2024-03-29
1045Canada2024-04-05
1046Italy2024-04-05
1047France2024-04-20
1048Italy2024-04-22
1049Australia2024-04-10

On-Demand Data

NameIdCountryDate
Aika F Nicka1000Australia2024-04-08
James W Stenseth1001United Kingdom2024-04-07
Maria E Ruta1002France2024-04-05
Ivar H Caudy1003Australia2024-04-06
Leja N Foller1004Argentina2024-04-19
Ashley A Marrier1005Germany2024-04-09
Silvio N Maclead1006Argentina2024-04-24
Antonio S Perin1007Russia2024-03-30
James G Stockham1008United Kingdom2024-04-14
Kaitlin B Shinko1009Australia2024-03-27
Deepesh S Campain1010India2024-04-08
Jeanfrancois C Malet1011Spain2024-04-11
Ricardo J Amigon1012Australia2024-04-24
Cody G Ostrosky1013Spain2024-04-20
Leon Q Shinko1014Australia2024-04-20
Morrow L Gillian1015Spain2024-04-13
Juan X Dilliard1016United Kingdom2024-04-05
Julie B Saylors1017Japan2024-04-24
Kadeem K Perin1018France2024-04-05
Wickens N Shinko1019United Kingdom2024-04-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin Q PoquetteIndiaIvan Magalhaes UNQUALIFIED
Ivar J GillianBrazilXuxue Feng NEGOTIATION
Mujtaba C BriddickGermanyOnyama Limba QUALIFIED
Mayumi K BologniaArgentinaAsiya Javayant UNQUALIFIED
Smith C OstroskyCanadaAmy Elsner PROPOSAL
Ricardo V GlickArgentinaIvan Magalhaes NEGOTIATION
Francesco L FerenczUnited KingdomIvan Magalhaes PROPOSAL
Isabel R OldroydFranceBernardo Dominic QUALIFIED
Costa H OstroskyAustraliaOnyama Limba PROPOSAL
Misaki A FollerSpainStephen Shaw PROPOSAL
Stacey A SaylorsAustraliaStephen Shaw PROPOSAL
Johnson A BowleyAustraliaElwin Sharvill QUALIFIED
Julie R RimAustraliaBernardo Dominic RENEWAL
Cody L ShinkoBrazilStephen Shaw NEGOTIATION
Darci V SchemmerAustraliaBernardo Dominic QUALIFIED
Leja J AmigonArgentinaAnna Fali QUALIFIED
Leon J DarakjySpainAsiya Javayant UNQUALIFIED
Kaitlin Q DoeRussiaAnna Fali NEW
Claire N OstroskyAustraliaOnyama Limba UNQUALIFIED
Ricardo L GillianArgentinaXuxue Feng NEW
Smith R GarufiIndiaIvan Magalhaes NEW
Nicolas P IturbideJapanIoni Bowcher NEGOTIATION
Ashley F DarakjyArgentinaIvan Magalhaes RENEWAL
David P InouyeJapanBernardo Dominic NEGOTIATION
Jennifer K AmigonRussiaXuxue Feng PROPOSAL
Ricardo V FlosiCanadaStephen Shaw PROPOSAL
Jones M PerinAustraliaXuxue Feng QUALIFIED
Leon Y ButtRussiaXuxue Feng QUALIFIED
Juan C GillianRussiaXuxue Feng RENEWAL
David K GlickRussiaIoni Bowcher QUALIFIED
Jefferson C GlickUnited KingdomStephen Shaw NEGOTIATION
James W WaycottBrazilElwin Sharvill PROPOSAL
Octavia G ShinkoItalyOnyama Limba NEW
Greenwood M FlosiFranceAsiya Javayant QUALIFIED
Smith U ShinkoJapanAsiya Javayant QUALIFIED
Kadeem P WhobreySpainIvan Magalhaes UNQUALIFIED
Ivar Q TollnerArgentinaAnna Fali RENEWAL
Jennifer Z KolmetzIndiaAnna Fali UNQUALIFIED
Stacey C InouyeFranceBernardo Dominic PROPOSAL
Izzy A RimUnited KingdomBernardo Dominic 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>