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
Jones I RoysterGermanyAmy Elsner QUALIFIED
Murillo R KuskoCanadaOnyama Limba RENEWAL
Octavia J MarrierArgentinaIvan Magalhaes UNQUALIFIED
Greenwood I CaudyItalyElwin Sharvill UNQUALIFIED
Isabel I WhobreyCanadaElwin Sharvill RENEWAL
Johnson D ShinkoUnited KingdomIvan Magalhaes RENEWAL
Leja S FollerFranceElwin Sharvill NEW
Chavez F CaudySpainIvan Magalhaes RENEWAL
Jeanfrancois O OstroskySpainIvan Magalhaes NEW
Juan R AmigonBrazilAsiya Javayant PROPOSAL
Aditya F NestleCanadaXuxue Feng RENEWAL
Clifford Z TollnerJapanOnyama Limba RENEWAL
Octavia U PoquetteSpainIvan Magalhaes UNQUALIFIED
Munro N GauchoGermanyAnna Fali PROPOSAL
Mayumi M FlosiRussiaAsiya Javayant RENEWAL
Kadeem D MaletRussiaElwin Sharvill UNQUALIFIED
Murillo R ChuiCanadaAmy Elsner RENEWAL
Costa O VocelkaFranceBernardo Dominic UNQUALIFIED
Wickens P GauchoItalyAmy Elsner QUALIFIED
Maisha G SchemmerSpainBernardo Dominic QUALIFIED
Alejandro C BriddickAustraliaStephen Shaw PROPOSAL
Izzy Q OstroskyItalyElwin Sharvill NEGOTIATION
Smith V GlickUnited KingdomAmy Elsner UNQUALIFIED
Salvatore A OldroydIndiaIoni Bowcher RENEWAL
Johnson U MaletBrazilStephen Shaw QUALIFIED
Darci X DilliardBrazilStephen Shaw PROPOSAL
Alejandro W OstroskyItalyOnyama Limba NEGOTIATION
Kaitlin K PoquetteSpainXuxue Feng NEGOTIATION
Francesco Q BowleySpainBernardo Dominic NEW
Mayumi I MaletArgentinaBernardo Dominic UNQUALIFIED
David J IturbideItalyXuxue Feng RENEWAL
Nicolas T PerinRussiaElwin Sharvill UNQUALIFIED
Emily Y BriddickItalyAnna Fali PROPOSAL
Aruna I BriddickUnited KingdomStephen Shaw NEGOTIATION
Wickens R ChuiCanadaAmy Elsner QUALIFIED
Maisha P StensethJapanXuxue Feng UNQUALIFIED
Jones O ButtItalyElwin Sharvill QUALIFIED
Alejandro D FollerJapanAsiya Javayant RENEWAL
Izzy Z StockhamUnited KingdomAsiya Javayant RENEWAL
Maisha Q MacleadUnited KingdomXuxue Feng NEW
Juan I NickaAustraliaElwin Sharvill UNQUALIFIED
Octavia T FerenczRussiaElwin Sharvill QUALIFIED
Kaitlin K StensethJapanIoni Bowcher PROPOSAL
Jefferson H RoysterItalyBernardo Dominic PROPOSAL
Ricardo N NestleSpainOnyama Limba RENEWAL
Rodrigues Y KuskoJapanXuxue Feng UNQUALIFIED
Chavez L CaldareraFranceAmy Elsner PROPOSAL
Smith I TollnerUnited KingdomAnna Fali NEW
Leja L MorascaCanadaXuxue Feng PROPOSAL
Antonio O FlosiBrazilIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Kadeem S GauchoAustraliaElwin Sharvill UNQUALIFIED
Clifford A MaletRussiaOnyama Limba NEW
Isabel E DilliardCanadaAnna Fali PROPOSAL
Leon E CaudyJapanElwin Sharvill RENEWAL
Johnson A RutaRussiaAmy Elsner QUALIFIED
Kaitlin N BologniaFranceBernardo Dominic PROPOSAL
Francesco X DoeCanadaAsiya Javayant RENEWAL
Izzy U SaylorsJapanElwin Sharvill NEW
Salvatore Q IturbideUnited KingdomStephen Shaw UNQUALIFIED
Jennifer Y AlbaresCanadaAnna Fali NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh J TollnerRussia2024-04-26Truhlar And Truhlar Attys UNQUALIFIED21Elwin Sharvill
1001Ashley T MorascaBrazil2024-04-16Morlong Associates RENEWAL68Anna Fali
1002Jeanfrancois T PoquetteRussia2024-04-30Rangoni Of Florence PROPOSAL2Xuxue Feng
1003Rodrigues E GarufiSpain2024-04-19Buckley Miller Wright NEW54Ioni Bowcher
1004Johnson Y GillianJapan2024-04-10Rangoni Of Florence QUALIFIED81Onyama Limba
1005Aditya A StensethJapan2024-04-06Truhlar And Truhlar Attys QUALIFIED81Anna Fali
1006Leja C PaprockiGermany2024-04-20Chanay, Jeffrey A Esq NEGOTIATION16Asiya Javayant
1007Julie I VenereSpain2024-04-07Feltz Printing Service RENEWAL93Elwin Sharvill
1008Salvatore U MaletGermany2024-04-29Feltz Printing Service PROPOSAL41Xuxue Feng
1009Sinclair M PaprockiJapan2024-04-17Printing Dimensions UNQUALIFIED49Ioni Bowcher
1010Ashley A BowleyUnited Kingdom2024-04-15Feiner Bros NEGOTIATION10Onyama Limba
1011Silvio W MorascaCanada2024-04-15Feltz Printing Service UNQUALIFIED92Ivan Magalhaes
1012Isabel U GillianArgentina2024-04-17Commercial Press PROPOSAL36Ivan Magalhaes
1013Jefferson U CampainBrazil2024-04-18Printing Dimensions QUALIFIED4Amy Elsner
1014Antonio W DoeCanada2024-04-14Chapman, Ross E Esq NEW44Ivan Magalhaes
1015Claire E MorascaRussia2024-04-09Rangoni Of Florence UNQUALIFIED93Elwin Sharvill
1016Francesco Y OstroskyJapan2024-05-02Truhlar And Truhlar Attys NEGOTIATION32Bernardo Dominic
1017Ricardo C NickaRussia2024-04-17Feltz Printing Service PROPOSAL74Ivan Magalhaes
1018Stacey D BriddickIndia2024-04-29Rangoni Of Florence NEW1Amy Elsner
1019Deepesh F OldroydItaly2024-05-02Truhlar And Truhlar Attys PROPOSAL32Bernardo Dominic
1020Francesco X ButtFrance2024-04-07King, Christopher A Esq PROPOSAL52Ioni Bowcher
1021Jefferson G OldroydAustralia2024-04-06Rangoni Of Florence PROPOSAL88Onyama Limba
1022Sinclair G BowleyCanada2024-04-12Printing Dimensions NEW12Amy Elsner
1023Maisha G MarrierIndia2024-04-28Commercial Press UNQUALIFIED51Onyama Limba
1024Greenwood F GarufiAustralia2024-05-02Feltz Printing Service RENEWAL17Amy Elsner
1025Claire K VocelkaItaly2024-04-29Benton, John B Jr RENEWAL49Onyama Limba
1026Jones L TollnerCanada2024-04-20King, Christopher A Esq UNQUALIFIED14Anna Fali
1027Sinclair C RulapaughFrance2024-04-16Rangoni Of Florence PROPOSAL44Onyama Limba
1028Greenwood S MarrierFrance2024-04-23Chemel, James L Cpa RENEWAL5Amy Elsner
1029Murillo O VenereFrance2024-04-16Feltz Printing Service NEW64Xuxue Feng
1030Ashley O VocelkaAustralia2024-04-10Chanay, Jeffrey A Esq RENEWAL49Asiya Javayant
1031James G GarufiSpain2024-04-09Benton, John B Jr QUALIFIED30Ivan Magalhaes
1032Jefferson Y FollerGermany2024-04-12Feltz Printing Service PROPOSAL59Elwin Sharvill
1033Mujtaba C SlusarskiCanada2024-04-16Chemel, James L Cpa RENEWAL74Bernardo Dominic
1034Darci P BologniaAustralia2024-04-17Chanay, Jeffrey A Esq NEW55Anna Fali
1035Aruna Z StockhamRussia2024-04-21Rousseaux, Michael Esq NEGOTIATION19Asiya Javayant
1036Greenwood K StensethSpain2024-04-23Chanay, Jeffrey A Esq NEGOTIATION3Xuxue Feng
1037Leja Z OstroskyAustralia2024-04-12Feiner Bros UNQUALIFIED41Ioni Bowcher
1038Morrow S KolmetzArgentina2024-04-12Feltz Printing Service QUALIFIED93Ivan Magalhaes
1039David H RoysterRussia2024-04-19Rangoni Of Florence UNQUALIFIED71Elwin Sharvill
1040Ashley C RimJapan2024-04-07Benton, John B Jr PROPOSAL99Bernardo Dominic
1041Arvin Z ChuiRussia2024-04-28Chapman, Ross E Esq UNQUALIFIED42Bernardo Dominic
1042Jeanfrancois X RimJapan2024-04-05King, Christopher A Esq RENEWAL72Elwin Sharvill
1043Rodrigues F OstroskySpain2024-04-24Rousseaux, Michael Esq NEGOTIATION12Amy Elsner
1044Juan G CaudyItaly2024-04-30Chemel, James L Cpa PROPOSAL69Amy Elsner
1045Isabel D MaletAustralia2024-04-08Dorl, James J Esq RENEWAL90Asiya Javayant
1046Greenwood O PaprockiSpain2024-04-29Buckley Miller Wright NEW15Bernardo Dominic
1047Emily Y CaldareraIndia2024-04-27Rangoni Of Florence UNQUALIFIED42Xuxue Feng
1048Francesco X MacleadGermany2024-04-07Chapman, Ross E Esq QUALIFIED67Ioni Bowcher
1049Cody Q GauchoRussia2024-05-01Truhlar And Truhlar Attys NEW98Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Maria U PoquetteUnited KingdomElwin Sharvill NEGOTIATION
Octavia A ChuiUnited KingdomXuxue Feng NEGOTIATION
Munro W RoysterBrazilIoni Bowcher NEW
Maisha Z MaletJapanStephen Shaw NEGOTIATION
Silvio S AlbaresGermanyAsiya Javayant NEGOTIATION
Ricardo R SlusarskiGermanyXuxue Feng UNQUALIFIED
Leon C FerenczBrazilAsiya Javayant PROPOSAL
Silvio O KuskoJapanStephen Shaw QUALIFIED
Johnson J RoysterGermanyAmy Elsner NEGOTIATION
Jones T IturbideAustraliaAmy Elsner QUALIFIED
Alejandro U SergiRussiaOnyama Limba RENEWAL
Ivar G GauchoFranceAsiya Javayant RENEWAL
Tony B AmigonUnited KingdomIvan Magalhaes PROPOSAL
Morrow W FlosiIndiaAnna Fali NEGOTIATION
Julie H TollnerArgentinaAsiya Javayant RENEWAL
Nicolas E KolmetzUnited KingdomOnyama Limba RENEWAL
Arvin N MorascaJapanAmy Elsner NEW
Costa Y CaudyArgentinaBernardo Dominic NEGOTIATION
David X WhobreyRussiaElwin Sharvill NEW
Salvatore L FlosiGermanyStephen Shaw NEGOTIATION
Claire L TollnerGermanyAmy Elsner QUALIFIED
Smith R MorascaIndiaStephen Shaw NEW
Silvio E NickaRussiaXuxue Feng NEGOTIATION
Ivar J GlickArgentinaAmy Elsner QUALIFIED
James W FollerArgentinaIoni Bowcher PROPOSAL
David O ShinkoGermanyElwin Sharvill PROPOSAL
Kaitlin Z CampainUnited KingdomIoni Bowcher RENEWAL
Costa W GarufiSpainAsiya Javayant NEW
Claire M FlosiBrazilStephen Shaw QUALIFIED
Darci Q SergiRussiaAsiya Javayant PROPOSAL
Murillo W DilliardJapanAsiya Javayant RENEWAL
Smith B TollnerSpainOnyama Limba NEW
Cody L FollerItalyBernardo Dominic NEGOTIATION
Aditya O BowleyArgentinaIoni Bowcher NEGOTIATION
Silvio E CaudyUnited KingdomXuxue Feng UNQUALIFIED
Ashley I MaletFranceAnna Fali UNQUALIFIED
Juan K FollerItalyIvan Magalhaes NEGOTIATION
Ivar P DarakjyJapanXuxue Feng NEGOTIATION
Sinclair O KolmetzUnited KingdomBernardo Dominic NEGOTIATION
Cody F RimSpainIoni Bowcher NEW
Mayumi G CaldareraItalyBernardo Dominic QUALIFIED
Adams U MorascaAustraliaAsiya Javayant QUALIFIED
Francesco L WieserUnited KingdomAmy Elsner NEGOTIATION
Jones U BologniaAustraliaAsiya Javayant PROPOSAL
David W PoquetteJapanBernardo Dominic UNQUALIFIED
Izzy E TollnerGermanyIoni Bowcher UNQUALIFIED
Tony F WaycottBrazilElwin Sharvill NEGOTIATION
James V RutaRussiaAsiya Javayant QUALIFIED
Alejandro S SergiItalyXuxue Feng NEGOTIATION
Leon R StensethArgentinaElwin Sharvill NEGOTIATION
Frozen Columns
Name
Leon R Sergi
Misaki S Campain
Jennifer H Rim
Aruna D Ostrosky
Mujtaba H Briddick
Leja Q Paprocki
Arvin X Rim
Jones A Perin
Costa H Caldarera
Alejandro U Shinko
Francesco L Shinko
Johnson N Waycott
Claire J Nestle
Leon C Perin
Darci K Kusko
Stacey A Rulapaugh
Francesco O Doe
Antonio D Shinko
Juan K Tollner
Leon J Gillian
Aruna P Malet
Kadeem J Gillian
Kadeem H Malet
Jennifer Q Wieser
Silvio Y Vocelka
Jones W Paprocki
Nicolas F Perin
Greenwood M Kolmetz
Izzy J Briddick
Emily W Tollner
Kaitlin S Figeroa
Silvio I Flosi
Leon K Amigon
Misaki T Malet
Mayumi M Nicka
Sinclair B Stenseth
Arvin O Oldroyd
Murillo Y Inouye
Aruna Y Briddick
Munro R Doe
Costa E Shinko
Jones G Caudy
Munro L Ostrosky
Sinclair Y Royster
Ricardo U Nestle
David P Albares
James J Ostrosky
Mujtaba E Morasca
Izzy N Maclead
Kaitlin N Butt
IdCountryDate
1000Argentina2024-04-25
1001Argentina2024-04-20
1002Italy2024-04-11
1003Russia2024-04-22
1004United Kingdom2024-04-04
1005Russia2024-04-20
1006Brazil2024-04-19
1007United Kingdom2024-04-05
1008Germany2024-04-07
1009India2024-04-17
1010Argentina2024-04-29
1011Italy2024-04-23
1012Japan2024-04-10
1013Russia2024-04-29
1014Australia2024-04-19
1015Spain2024-04-09
1016France2024-04-03
1017Italy2024-04-06
1018Spain2024-04-17
1019Australia2024-04-06
1020France2024-04-13
1021India2024-04-22
1022France2024-04-29
1023Italy2024-04-29
1024Brazil2024-04-13
1025Italy2024-04-20
1026Italy2024-04-05
1027Spain2024-04-04
1028Canada2024-04-22
1029Brazil2024-04-03
1030Canada2024-04-04
1031India2024-04-17
1032India2024-04-08
1033Russia2024-04-05
1034Brazil2024-04-15
1035Canada2024-04-12
1036United Kingdom2024-04-10
1037Argentina2024-04-20
1038India2024-04-16
1039Germany2024-04-26
1040France2024-04-20
1041Brazil2024-04-13
1042Italy2024-04-11
1043Australia2024-04-06
1044Spain2024-04-05
1045Canada2024-04-26
1046Brazil2024-04-18
1047Italy2024-04-11
1048Italy2024-04-04
1049Canada2024-05-02

On-Demand Data

NameIdCountryDate
Nicolas N Flosi1000Japan2024-04-19
Tony Y Morasca1001Italy2024-04-20
Jones A Albares1002Spain2024-04-20
James Q Bowley1003Australia2024-04-22
Jeanfrancois U Butt1004Australia2024-04-08
Murillo H Briddick1005Canada2024-04-19
Antonio K Poquette1006Australia2024-04-19
Adams P Bolognia1007India2024-04-26
Chavez D Campain1008Argentina2024-04-10
Arvin M Tollner1009Argentina2024-04-26
Tony M Gillian1010Italy2024-04-10
Leja M Slusarski1011Germany2024-05-02
Aika V Kolmetz1012Russia2024-04-08
Chavez R Marrier1013Australia2024-04-06
Chavez Q Morasca1014Australia2024-04-22
Mujtaba Q Perin1015Italy2024-04-19
Clifford A Inouye1016Argentina2024-04-30
James W Foller1017Italy2024-04-09
Francesco Q Morasca1018Canada2024-04-29
Misaki D Caldarera1019India2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria I MaletIndiaAsiya Javayant NEGOTIATION
David X AlbaresFranceAmy Elsner QUALIFIED
Alejandro Y MarrierRussiaAnna Fali UNQUALIFIED
Ivar C FollerArgentinaIvan Magalhaes QUALIFIED
Ricardo B SergiSpainAsiya Javayant QUALIFIED
Jones V GlickFranceAmy Elsner NEW
Leja F TollnerJapanIvan Magalhaes NEGOTIATION
Arvin M MaletBrazilAnna Fali NEGOTIATION
Ashley S GarufiFranceElwin Sharvill QUALIFIED
Morrow V ShinkoItalyXuxue Feng NEGOTIATION
Aruna Q RimFranceStephen Shaw NEW
Smith E ShinkoJapanXuxue Feng UNQUALIFIED
Kaitlin P SlusarskiAustraliaBernardo Dominic QUALIFIED
Misaki G NickaArgentinaOnyama Limba UNQUALIFIED
Wickens Q MarrierSpainElwin Sharvill UNQUALIFIED
Deepesh B AlbaresFranceAnna Fali NEGOTIATION
Mujtaba P ChuiGermanyAsiya Javayant UNQUALIFIED
Adams R StensethBrazilXuxue Feng QUALIFIED
Silvio W SergiAustraliaIoni Bowcher UNQUALIFIED
Maria Y IturbideRussiaOnyama Limba QUALIFIED
Darci T VocelkaCanadaXuxue Feng UNQUALIFIED
Francesco V RoysterUnited KingdomStephen Shaw NEGOTIATION
Maria A MacleadRussiaIvan Magalhaes UNQUALIFIED
Francesco E GillianUnited KingdomStephen Shaw NEW
Izzy Q ShinkoGermanyAmy Elsner RENEWAL
Francesco B KuskoAustraliaIvan Magalhaes UNQUALIFIED
Adams X GlickUnited KingdomBernardo Dominic QUALIFIED
Chavez K SlusarskiJapanOnyama Limba NEGOTIATION
Nicolas U FlosiJapanAmy Elsner QUALIFIED
Mayumi N VocelkaSpainIoni Bowcher NEGOTIATION
Johnson B RoysterIndiaXuxue Feng UNQUALIFIED
Julie J AmigonSpainBernardo Dominic NEW
Wickens K RimBrazilBernardo Dominic QUALIFIED
Emily L OstroskyItalyStephen Shaw NEGOTIATION
Morrow J FollerJapanElwin Sharvill QUALIFIED
Darci T StockhamRussiaAsiya Javayant NEGOTIATION
Clifford I MacleadAustraliaIoni Bowcher UNQUALIFIED
Aruna Y WieserGermanyXuxue Feng QUALIFIED
Arvin G RutaBrazilBernardo Dominic NEGOTIATION
Nicolas F SlusarskiAustraliaAsiya Javayant RENEWAL

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