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
Faith F RimBrazilOnyama Limba PROPOSAL
Costa Z BriddickSpainElwin Sharvill PROPOSAL
Greenwood Z GarufiIndiaXuxue Feng NEW
Faith X PoquetteGermanyXuxue Feng RENEWAL
Tony M RoysterUnited KingdomElwin Sharvill UNQUALIFIED
Greenwood O VenereAustraliaXuxue Feng QUALIFIED
Cody S SchemmerSpainBernardo Dominic PROPOSAL
Octavia M OstroskyBrazilXuxue Feng NEGOTIATION
Silvio M FerenczFranceIvan Magalhaes RENEWAL
Antonio C ChuiSpainElwin Sharvill RENEWAL
Izzy A NickaIndiaAmy Elsner UNQUALIFIED
Emily X MacleadUnited KingdomXuxue Feng UNQUALIFIED
Jeanfrancois N SaylorsAustraliaXuxue Feng QUALIFIED
Jeanfrancois M StockhamArgentinaIoni Bowcher PROPOSAL
Adams W WieserCanadaIoni Bowcher QUALIFIED
Adams K MarrierIndiaBernardo Dominic NEGOTIATION
Jefferson H KolmetzUnited KingdomAsiya Javayant RENEWAL
Darci R ButtGermanyIvan Magalhaes QUALIFIED
Greenwood R InouyeUnited KingdomBernardo Dominic NEW
Sinclair G MacleadBrazilBernardo Dominic NEW
Leja N FerenczSpainIvan Magalhaes NEGOTIATION
David K SchemmerCanadaElwin Sharvill RENEWAL
Emily C NestleRussiaAmy Elsner QUALIFIED
Johnson H FlosiCanadaXuxue Feng UNQUALIFIED
Octavia M MaletRussiaXuxue Feng UNQUALIFIED
Jefferson B DarakjyRussiaXuxue Feng RENEWAL
Greenwood P StensethItalyOnyama Limba UNQUALIFIED
Adams Q StensethAustraliaAnna Fali UNQUALIFIED
Greenwood S CampainJapanIvan Magalhaes NEGOTIATION
Jefferson X SlusarskiSpainAsiya Javayant NEGOTIATION
Murillo U OldroydJapanIoni Bowcher RENEWAL
James I VocelkaRussiaOnyama Limba NEGOTIATION
Jennifer H SergiUnited KingdomIoni Bowcher QUALIFIED
Mayumi U SlusarskiArgentinaIvan Magalhaes UNQUALIFIED
Juan W VocelkaJapanOnyama Limba RENEWAL
Francesco W CaldareraCanadaXuxue Feng QUALIFIED
Mayumi R DoeFranceAmy Elsner QUALIFIED
Faith J MaletCanadaXuxue Feng RENEWAL
Aruna N VocelkaUnited KingdomAnna Fali NEGOTIATION
Tony M FlosiArgentinaIvan Magalhaes UNQUALIFIED
Jones Z RulapaughItalyIoni Bowcher QUALIFIED
Rodrigues I StensethRussiaIvan Magalhaes NEGOTIATION
Kaitlin R StensethFranceElwin Sharvill RENEWAL
Salvatore H GillianAustraliaIvan Magalhaes QUALIFIED
James H SergiJapanBernardo Dominic NEW
Juan Y IturbideBrazilAmy Elsner NEGOTIATION
Salvatore B SergiIndiaBernardo Dominic NEW
Emily H OstroskyGermanyOnyama Limba UNQUALIFIED
Tony W FlosiJapanBernardo Dominic NEGOTIATION
Juan P InouyeGermanyBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jones Q SchemmerRussiaOnyama Limba NEGOTIATION
James E ButtJapanOnyama Limba NEW
Wickens U OldroydUnited KingdomXuxue Feng NEW
Mujtaba V TollnerJapanAnna Fali QUALIFIED
Munro X PerinBrazilAsiya Javayant NEGOTIATION
Ricardo O RoysterAustraliaAnna Fali PROPOSAL
Darci M StensethFranceOnyama Limba NEW
Wickens N RulapaughItalyAnna Fali RENEWAL
Francesco F OldroydGermanyElwin Sharvill QUALIFIED
Ashley C WhobreySpainElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco F GarufiGermany2024-04-15Morlong Associates PROPOSAL13Ioni Bowcher
1001Murillo A SergiSpain2024-04-07Chemel, James L Cpa PROPOSAL80Xuxue Feng
1002Ashley X ButtIndia2024-05-02King, Christopher A Esq QUALIFIED25Amy Elsner
1003Ashley O VenereItaly2024-04-27Truhlar And Truhlar Attys NEW23Asiya Javayant
1004Darci W RimSpain2024-04-27Truhlar And Truhlar Attys NEGOTIATION77Anna Fali
1005Murillo S ButtItaly2024-04-14Chapman, Ross E Esq PROPOSAL95Elwin Sharvill
1006Darci M KolmetzIndia2024-04-18Buckley Miller Wright NEGOTIATION11Bernardo Dominic
1007Kadeem Y FigeroaAustralia2024-04-08King, Christopher A Esq QUALIFIED27Stephen Shaw
1008Arvin G BriddickRussia2024-05-05Truhlar And Truhlar Attys PROPOSAL67Elwin Sharvill
1009Ricardo L FerenczGermany2024-04-18Rangoni Of Florence NEW59Ioni Bowcher
1010Morrow Z SaylorsRussia2024-04-29Chapman, Ross E Esq QUALIFIED32Onyama Limba
1011Murillo Y OstroskyUnited Kingdom2024-04-23Rousseaux, Michael Esq QUALIFIED7Asiya Javayant
1012Johnson D WieserBrazil2024-04-17Rangoni Of Florence PROPOSAL25Elwin Sharvill
1013Kaitlin I PaprockiItaly2024-04-22Rousseaux, Michael Esq NEW69Anna Fali
1014Maisha J WieserArgentina2024-04-13Rousseaux, Michael Esq NEW48Onyama Limba
1015Salvatore Y BowleyAustralia2024-05-01Chanay, Jeffrey A Esq NEGOTIATION49Bernardo Dominic
1016Smith X GillianRussia2024-04-20Chemel, James L Cpa PROPOSAL82Anna Fali
1017Adams M FollerRussia2024-05-03Buckley Miller Wright QUALIFIED25Ioni Bowcher
1018Ashley W AlbaresGermany2024-04-28Commercial Press UNQUALIFIED25Elwin Sharvill
1019Silvio C CampainUnited Kingdom2024-04-07Dorl, James J Esq NEGOTIATION38Amy Elsner
1020Julie Z WaycottArgentina2024-04-29Morlong Associates RENEWAL10Xuxue Feng
1021Murillo O DoeBrazil2024-04-12Rousseaux, Michael Esq RENEWAL13Stephen Shaw
1022Maria O CaldareraItaly2024-04-28King, Christopher A Esq PROPOSAL32Ioni Bowcher
1023Aditya T MorascaIndia2024-04-11King, Christopher A Esq RENEWAL69Amy Elsner
1024Jones J RutaUnited Kingdom2024-05-04King, Christopher A Esq NEGOTIATION41Anna Fali
1025Julie R IturbideArgentina2024-04-25Printing Dimensions NEW80Onyama Limba
1026Ricardo L InouyeIndia2024-04-08Feltz Printing Service UNQUALIFIED42Asiya Javayant
1027Kadeem B NickaIndia2024-04-25Chemel, James L Cpa NEW50Ivan Magalhaes
1028Costa B MorascaBrazil2024-04-10Morlong Associates PROPOSAL4Asiya Javayant
1029Antonio M GauchoArgentina2024-04-29Dorl, James J Esq NEGOTIATION43Amy Elsner
1030Stacey J AmigonSpain2024-05-05Feltz Printing Service NEGOTIATION19Ioni Bowcher
1031Adams R TollnerSpain2024-04-26Dorl, James J Esq PROPOSAL19Ioni Bowcher
1032Claire F FigeroaSpain2024-04-09Chemel, James L Cpa RENEWAL63Anna Fali
1033Adams H OldroydUnited Kingdom2024-04-25Truhlar And Truhlar Attys NEW15Amy Elsner
1034Costa Y RutaRussia2024-04-28Buckley Miller Wright QUALIFIED25Anna Fali
1035Kadeem S FollerRussia2024-04-10Rousseaux, Michael Esq UNQUALIFIED9Amy Elsner
1036Smith Y AmigonCanada2024-04-10Feltz Printing Service PROPOSAL27Onyama Limba
1037Kaitlin H AlbaresCanada2024-04-20Feiner Bros UNQUALIFIED94Xuxue Feng
1038Silvio W SergiCanada2024-04-27Chapman, Ross E Esq PROPOSAL30Ioni Bowcher
1039Jeanfrancois D WhobreyIndia2024-04-08Feltz Printing Service PROPOSAL25Xuxue Feng
1040Aditya V SaylorsAustralia2024-05-06Rangoni Of Florence RENEWAL75Onyama Limba
1041Mayumi J RutaIndia2024-05-01Dorl, James J Esq NEW0Asiya Javayant
1042Ivar X FollerIndia2024-04-24Feltz Printing Service UNQUALIFIED59Ioni Bowcher
1043Juan V OstroskyIndia2024-05-06Dorl, James J Esq NEW83Ivan Magalhaes
1044Munro E PaprockiArgentina2024-04-10Dorl, James J Esq PROPOSAL51Onyama Limba
1045Aika H TollnerUnited Kingdom2024-05-04Rangoni Of Florence QUALIFIED19Anna Fali
1046Faith A ShinkoUnited Kingdom2024-05-05Feiner Bros NEGOTIATION77Xuxue Feng
1047Maria W OldroydIndia2024-04-25Rousseaux, Michael Esq PROPOSAL24Elwin Sharvill
1048Kaitlin W DarakjyRussia2024-04-11Feltz Printing Service NEGOTIATION43Elwin Sharvill
1049Tony T StockhamIndia2024-05-05Chapman, Ross E Esq UNQUALIFIED13Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Kadeem Y MarrierArgentinaAmy Elsner NEW
Arvin K SlusarskiIndiaStephen Shaw NEGOTIATION
Rodrigues V WieserFranceAmy Elsner NEW
Cody G VenereBrazilAmy Elsner RENEWAL
Arvin W WieserCanadaBernardo Dominic RENEWAL
Maisha P OstroskyJapanIoni Bowcher RENEWAL
Emily Y IturbideCanadaAnna Fali QUALIFIED
Misaki Y BowleyUnited KingdomOnyama Limba PROPOSAL
Ricardo O TollnerAustraliaIoni Bowcher UNQUALIFIED
Aika X RulapaughIndiaXuxue Feng PROPOSAL
Leja J RutaJapanXuxue Feng NEGOTIATION
Mujtaba W CaudyArgentinaAsiya Javayant NEW
Octavia D DarakjyJapanOnyama Limba QUALIFIED
Octavia M BriddickIndiaAsiya Javayant QUALIFIED
Leon D RimArgentinaAnna Fali RENEWAL
Salvatore G StockhamItalyElwin Sharvill NEGOTIATION
Darci F GillianCanadaAmy Elsner PROPOSAL
Munro F GauchoArgentinaBernardo Dominic NEGOTIATION
Kadeem X SlusarskiAustraliaOnyama Limba RENEWAL
Leja M RoysterJapanIvan Magalhaes NEGOTIATION
Ricardo K TollnerFranceAnna Fali QUALIFIED
Jefferson W BowleyIndiaOnyama Limba QUALIFIED
Kaitlin S SaylorsSpainElwin Sharvill UNQUALIFIED
Ivar D GlickFranceIoni Bowcher QUALIFIED
Misaki Y ShinkoItalyAnna Fali PROPOSAL
Jeanfrancois U KuskoCanadaIvan Magalhaes PROPOSAL
Aika O OldroydUnited KingdomIvan Magalhaes RENEWAL
Izzy X SergiAustraliaAmy Elsner NEGOTIATION
Sinclair X KolmetzCanadaXuxue Feng NEW
Alejandro Q ButtBrazilBernardo Dominic UNQUALIFIED
Izzy V ShinkoBrazilIvan Magalhaes UNQUALIFIED
Cody R VenereBrazilXuxue Feng RENEWAL
Arvin O VocelkaBrazilAnna Fali UNQUALIFIED
Antonio H SaylorsBrazilXuxue Feng NEW
Mayumi B PaprockiBrazilOnyama Limba UNQUALIFIED
Ashley V FerenczCanadaXuxue Feng NEGOTIATION
Jones T BowleyIndiaOnyama Limba NEW
Jennifer U AmigonFranceElwin Sharvill QUALIFIED
Jefferson O CaldareraAustraliaAnna Fali RENEWAL
Francesco G WieserUnited KingdomAmy Elsner NEW
Francesco L BologniaGermanyIvan Magalhaes NEGOTIATION
Aruna J MarrierUnited KingdomAsiya Javayant NEW
Claire Y BologniaBrazilStephen Shaw QUALIFIED
Johnson X CaldareraItalyXuxue Feng PROPOSAL
Morrow H SlusarskiBrazilElwin Sharvill PROPOSAL
Claire T FigeroaIndiaElwin Sharvill NEW
Clifford A GlickFranceIoni Bowcher PROPOSAL
Isabel J CampainRussiaOnyama Limba PROPOSAL
Smith P ButtSpainXuxue Feng RENEWAL
Salvatore Z IturbideRussiaStephen Shaw QUALIFIED
Frozen Columns
Name
Mayumi G Wieser
David L Whobrey
Salvatore R Stenseth
Jeanfrancois F Chui
Ashley O Iturbide
Maria F Flosi
Salvatore X Oldroyd
Darci Y Rulapaugh
Juan T Garufi
Jones J Butt
Smith O Rulapaugh
Johnson D Flosi
Aditya L Dilliard
Rodrigues O Kusko
Deepesh C Stenseth
Cody C Waycott
Octavia L Bowley
Ivar Q Bolognia
Ashley S Nicka
Jones Y Gillian
Ashley F Saylors
Alejandro L Caldarera
Nicolas Q Foller
Clifford Y Campain
Ivar V Shinko
Alejandro H Marrier
Munro X Schemmer
Antonio M Figeroa
Alejandro R Darakjy
Jones K Oldroyd
Chavez D Bolognia
Leja P Rim
Aruna W Paprocki
Greenwood T Nicka
Ashley A Rulapaugh
Aditya E Morasca
Sinclair W Royster
Costa N Paprocki
Tony P Rim
Morrow P Oldroyd
Jennifer V Kolmetz
Aditya C Glick
Francesco Y Amigon
Faith J Iturbide
Munro Z Morasca
Aditya Y Slusarski
Izzy K Perin
Mujtaba V Amigon
Ricardo H Darakjy
Claire L Foller
IdCountryDate
1000Japan2024-04-23
1001Germany2024-04-11
1002Canada2024-04-27
1003India2024-04-13
1004France2024-04-21
1005Brazil2024-04-09
1006Australia2024-04-19
1007Brazil2024-04-25
1008Spain2024-04-16
1009India2024-04-09
1010Australia2024-05-06
1011Argentina2024-04-07
1012Argentina2024-04-14
1013Germany2024-04-26
1014Australia2024-04-16
1015Spain2024-04-25
1016Argentina2024-04-24
1017Germany2024-05-04
1018Japan2024-05-06
1019Canada2024-04-13
1020Spain2024-04-12
1021Russia2024-04-23
1022France2024-04-24
1023Canada2024-04-24
1024Canada2024-04-23
1025Argentina2024-04-30
1026Australia2024-04-07
1027Australia2024-04-28
1028Argentina2024-04-08
1029Brazil2024-04-20
1030United Kingdom2024-04-15
1031Germany2024-04-18
1032India2024-04-23
1033Russia2024-04-25
1034Japan2024-04-16
1035France2024-04-29
1036Italy2024-04-12
1037Brazil2024-04-30
1038Brazil2024-05-03
1039Germany2024-04-16
1040Australia2024-04-16
1041Germany2024-04-30
1042Spain2024-04-20
1043Brazil2024-04-24
1044Germany2024-04-28
1045India2024-04-07
1046Germany2024-04-27
1047India2024-05-04
1048Canada2024-04-21
1049Italy2024-04-30

On-Demand Data

NameIdCountryDate
Murillo M Venere1000Canada2024-05-05
Ivar K Kolmetz1001Russia2024-04-30
Morrow Q Ferencz1002Argentina2024-04-13
Aditya D Venere1003Australia2024-04-21
Ricardo R Oldroyd1004Brazil2024-04-23
Greenwood Q Albares1005Brazil2024-04-28
Aditya R Whobrey1006Brazil2024-04-07
Mayumi G Schemmer1007Australia2024-04-17
Salvatore G Stockham1008Italy2024-05-04
Alejandro C Royster1009Australia2024-05-06
Nicolas I Whobrey1010Germany2024-05-03
David H Venere1011India2024-05-03
Ricardo Y Caldarera1012France2024-04-10
Silvio M Tollner1013Canada2024-04-14
Julie C Nestle1014Argentina2024-04-08
Emily E Glick1015Russia2024-04-11
Julie I Foller1016Argentina2024-04-10
Claire S Maclead1017Italy2024-04-19
Francesco L Doe1018Argentina2024-04-17
Kadeem K Malet1019Germany2024-05-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco R ChuiFranceBernardo Dominic NEGOTIATION
Wickens C WieserUnited KingdomIoni Bowcher NEW
Ashley A NestleRussiaXuxue Feng NEGOTIATION
Maria P MacleadCanadaXuxue Feng RENEWAL
Chavez G MarrierBrazilStephen Shaw PROPOSAL
Alejandro M OldroydAustraliaElwin Sharvill UNQUALIFIED
Izzy D PaprockiBrazilStephen Shaw QUALIFIED
Wickens O InouyeSpainElwin Sharvill RENEWAL
Aditya A StockhamUnited KingdomAmy Elsner NEGOTIATION
Julie Z AlbaresJapanIvan Magalhaes NEW
Leja M IturbideSpainXuxue Feng PROPOSAL
Johnson H VenereIndiaAsiya Javayant RENEWAL
Maria O OldroydGermanyIvan Magalhaes UNQUALIFIED
Murillo W ShinkoAustraliaElwin Sharvill NEW
Jones H BowleyCanadaBernardo Dominic PROPOSAL
Costa G SchemmerSpainXuxue Feng QUALIFIED
Stacey V WieserArgentinaAnna Fali QUALIFIED
Deepesh I KuskoArgentinaStephen Shaw QUALIFIED
Kaitlin H BriddickJapanXuxue Feng PROPOSAL
David S RoysterUnited KingdomAmy Elsner RENEWAL
Misaki K KuskoUnited KingdomAmy Elsner PROPOSAL
Jones J FlosiRussiaXuxue Feng UNQUALIFIED
Kadeem R ButtItalyAnna Fali QUALIFIED
Murillo L FerenczItalyAnna Fali UNQUALIFIED
Darci Z NestleUnited KingdomAmy Elsner NEW
Alejandro C MacleadAustraliaAmy Elsner PROPOSAL
Antonio R RutaItalyAsiya Javayant UNQUALIFIED
Wickens H StockhamItalyIvan Magalhaes NEW
Kadeem U MaletSpainIoni Bowcher RENEWAL
Aruna Y DarakjyAustraliaElwin Sharvill UNQUALIFIED
Isabel J AmigonIndiaIvan Magalhaes QUALIFIED
Deepesh Q FlosiFranceAsiya Javayant RENEWAL
Maisha O PaprockiUnited KingdomIvan Magalhaes RENEWAL
Stacey T SergiGermanyXuxue Feng UNQUALIFIED
Nicolas V NestleUnited KingdomStephen Shaw PROPOSAL
Morrow J GillianIndiaAsiya Javayant QUALIFIED
Salvatore O FlosiGermanyIoni Bowcher NEW
Kadeem N WieserJapanOnyama Limba UNQUALIFIED
Ivar K VocelkaArgentinaOnyama Limba PROPOSAL
Kaitlin M FollerUnited KingdomOnyama Limba 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>