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
Deepesh E IturbideFranceAmy Elsner UNQUALIFIED
Murillo H PoquetteItalyIoni Bowcher NEGOTIATION
Aruna K CaudyGermanyXuxue Feng UNQUALIFIED
Maisha P ButtRussiaAmy Elsner NEW
Munro W IturbideBrazilAsiya Javayant PROPOSAL
Emily H RoysterSpainAsiya Javayant UNQUALIFIED
Jones K CaldareraSpainBernardo Dominic NEGOTIATION
Maria T RulapaughGermanyIvan Magalhaes NEGOTIATION
Jennifer R PerinItalyAnna Fali UNQUALIFIED
Julie L DilliardFranceBernardo Dominic UNQUALIFIED
Tony R DoeAustraliaIoni Bowcher UNQUALIFIED
Mayumi O WieserRussiaAmy Elsner UNQUALIFIED
Emily K PerinCanadaAsiya Javayant NEGOTIATION
Stacey G IturbideCanadaAmy Elsner UNQUALIFIED
Costa U KolmetzArgentinaBernardo Dominic QUALIFIED
Cody J VenereFranceBernardo Dominic NEGOTIATION
Clifford I OldroydUnited KingdomIvan Magalhaes RENEWAL
Kadeem N ShinkoFranceElwin Sharvill NEW
Stacey W RutaIndiaElwin Sharvill NEW
Aika V TollnerUnited KingdomAnna Fali UNQUALIFIED
Tony Z CaldareraFranceBernardo Dominic QUALIFIED
Maisha N ButtAustraliaAmy Elsner UNQUALIFIED
Johnson Q CaldareraGermanyAmy Elsner PROPOSAL
Francesco B MarrierIndiaOnyama Limba NEGOTIATION
Ivar S ShinkoFranceIoni Bowcher QUALIFIED
Munro H InouyeCanadaIoni Bowcher PROPOSAL
Isabel F GarufiSpainAsiya Javayant QUALIFIED
Costa H OstroskyGermanyXuxue Feng RENEWAL
Johnson W RoysterUnited KingdomAnna Fali NEW
Rodrigues W NickaCanadaXuxue Feng PROPOSAL
Deepesh H StockhamRussiaBernardo Dominic UNQUALIFIED
Jeanfrancois Q MacleadSpainBernardo Dominic PROPOSAL
Arvin I KuskoGermanyOnyama Limba RENEWAL
Jones G AmigonJapanAsiya Javayant NEGOTIATION
Darci O FlosiFranceElwin Sharvill NEW
Sinclair A DilliardRussiaIoni Bowcher NEW
Aditya E MarrierBrazilBernardo Dominic NEGOTIATION
Kadeem T TollnerCanadaAsiya Javayant QUALIFIED
Jones C MarrierIndiaAmy Elsner RENEWAL
Ivar L KolmetzJapanAsiya Javayant RENEWAL
Deepesh F SergiFranceStephen Shaw NEGOTIATION
Wickens D ShinkoArgentinaAnna Fali QUALIFIED
Alejandro R ButtBrazilXuxue Feng RENEWAL
Leja W MarrierSpainIvan Magalhaes RENEWAL
Stacey G VenereFranceOnyama Limba UNQUALIFIED
Nicolas G ChuiGermanyIvan Magalhaes QUALIFIED
Nicolas P SchemmerCanadaIoni Bowcher PROPOSAL
David G ShinkoJapanAsiya Javayant NEGOTIATION
Arvin B DarakjyGermanyElwin Sharvill NEGOTIATION
Maisha B ChuiJapanOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Jones V FerenczItalyElwin Sharvill QUALIFIED
Juan C MorascaJapanXuxue Feng RENEWAL
Nicolas P SergiIndiaAmy Elsner NEGOTIATION
Antonio H CaldareraSpainAmy Elsner PROPOSAL
Claire Z OstroskyRussiaAnna Fali NEGOTIATION
Alejandro Q ChuiFranceAmy Elsner UNQUALIFIED
Jeanfrancois P GarufiBrazilXuxue Feng UNQUALIFIED
Chavez S MaletIndiaElwin Sharvill NEW
Salvatore A OldroydIndiaAnna Fali NEGOTIATION
Aruna U PaprockiSpainAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia R PoquetteSpain2024-04-16Morlong Associates QUALIFIED54Amy Elsner
1001Deepesh P PerinJapan2024-04-26Morlong Associates NEW73Stephen Shaw
1002Kaitlin Y VenereFrance2024-04-10Commercial Press NEGOTIATION36Anna Fali
1003Jeanfrancois C GauchoFrance2024-04-30Rousseaux, Michael Esq NEW41Ioni Bowcher
1004Morrow X PerinIndia2024-04-11Chanay, Jeffrey A Esq RENEWAL43Stephen Shaw
1005Ashley T MorascaItaly2024-05-07Morlong Associates PROPOSAL78Asiya Javayant
1006Salvatore J BologniaUnited Kingdom2024-04-10Feltz Printing Service NEGOTIATION22Xuxue Feng
1007Morrow G OstroskyIndia2024-04-13Chemel, James L Cpa UNQUALIFIED47Onyama Limba
1008Adams B SergiCanada2024-04-09Truhlar And Truhlar Attys NEGOTIATION9Xuxue Feng
1009Greenwood V PerinFrance2024-04-14Rangoni Of Florence UNQUALIFIED16Elwin Sharvill
1010Francesco D AlbaresIndia2024-05-07Feiner Bros QUALIFIED74Ivan Magalhaes
1011Johnson S ButtSpain2024-05-01Chanay, Jeffrey A Esq QUALIFIED22Ioni Bowcher
1012Julie D CampainCanada2024-05-05Chanay, Jeffrey A Esq NEGOTIATION13Anna Fali
1013Smith D InouyeSpain2024-04-12Commercial Press UNQUALIFIED5Ioni Bowcher
1014Isabel J RoysterItaly2024-05-04Chanay, Jeffrey A Esq RENEWAL40Bernardo Dominic
1015Adams B ShinkoGermany2024-04-21Chanay, Jeffrey A Esq PROPOSAL56Stephen Shaw
1016Emily J TollnerRussia2024-04-30Morlong Associates PROPOSAL6Xuxue Feng
1017Smith A VenereJapan2024-04-29Rousseaux, Michael Esq NEW91Ioni Bowcher
1018Wickens B BologniaFrance2024-04-24Dorl, James J Esq PROPOSAL78Ivan Magalhaes
1019Jefferson H VocelkaSpain2024-04-08Truhlar And Truhlar Attys RENEWAL30Ivan Magalhaes
1020Nicolas W MorascaFrance2024-04-17Printing Dimensions QUALIFIED3Onyama Limba
1021James M FlosiGermany2024-04-24King, Christopher A Esq RENEWAL85Onyama Limba
1022Jefferson O SergiCanada2024-05-01Truhlar And Truhlar Attys UNQUALIFIED27Stephen Shaw
1023Aditya N PerinGermany2024-04-14Rangoni Of Florence NEGOTIATION91Bernardo Dominic
1024Murillo S CampainGermany2024-04-10Buckley Miller Wright RENEWAL75Onyama Limba
1025Isabel W TollnerJapan2024-04-23Commercial Press QUALIFIED15Onyama Limba
1026Tony A ChuiUnited Kingdom2024-04-12Chemel, James L Cpa NEW48Bernardo Dominic
1027Alejandro E InouyeUnited Kingdom2024-04-17Morlong Associates NEW66Elwin Sharvill
1028Misaki V PaprockiRussia2024-04-09Printing Dimensions PROPOSAL43Asiya Javayant
1029Stacey I MacleadArgentina2024-05-06Rousseaux, Michael Esq UNQUALIFIED99Elwin Sharvill
1030Antonio S RutaBrazil2024-04-09King, Christopher A Esq NEGOTIATION71Stephen Shaw
1031Jones M MarrierItaly2024-04-24Chemel, James L Cpa QUALIFIED78Elwin Sharvill
1032Maria J CaldareraArgentina2024-04-10Benton, John B Jr UNQUALIFIED92Stephen Shaw
1033Johnson Y KuskoRussia2024-04-22Dorl, James J Esq UNQUALIFIED76Ivan Magalhaes
1034Emily P InouyeAustralia2024-04-20Rangoni Of Florence QUALIFIED31Amy Elsner
1035James I RimGermany2024-04-11Printing Dimensions RENEWAL16Stephen Shaw
1036Darci E WhobreyFrance2024-04-27Rangoni Of Florence UNQUALIFIED72Bernardo Dominic
1037Stacey P RulapaughSpain2024-04-08Printing Dimensions NEGOTIATION33Xuxue Feng
1038Julie C AlbaresGermany2024-04-15Chapman, Ross E Esq NEGOTIATION40Stephen Shaw
1039Jefferson C RimBrazil2024-04-29Feltz Printing Service QUALIFIED39Amy Elsner
1040Leon W MarrierSpain2024-04-13Feiner Bros NEGOTIATION8Ivan Magalhaes
1041Emily Y AmigonIndia2024-04-17King, Christopher A Esq QUALIFIED23Stephen Shaw
1042Rodrigues H RutaCanada2024-04-09Rousseaux, Michael Esq QUALIFIED3Bernardo Dominic
1043Arvin G FollerBrazil2024-05-02Benton, John B Jr UNQUALIFIED8Ioni Bowcher
1044Costa J SergiAustralia2024-04-19Rangoni Of Florence UNQUALIFIED79Anna Fali
1045Jones D DoeUnited Kingdom2024-04-11Dorl, James J Esq QUALIFIED31Ivan Magalhaes
1046Ricardo V BowleyCanada2024-04-28Buckley Miller Wright NEW79Onyama Limba
1047Rodrigues B VenereRussia2024-04-20Buckley Miller Wright RENEWAL52Amy Elsner
1048Rodrigues A FollerGermany2024-04-28Printing Dimensions QUALIFIED69Onyama Limba
1049Misaki I BriddickAustralia2024-04-11King, Christopher A Esq NEW97Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aditya C FollerGermanyAmy Elsner UNQUALIFIED
Julie V WhobreyArgentinaStephen Shaw RENEWAL
Maria Y ChuiFranceAnna Fali UNQUALIFIED
Aruna R MorascaRussiaXuxue Feng QUALIFIED
Jones F GlickJapanAsiya Javayant PROPOSAL
Francesco M RulapaughJapanAsiya Javayant NEGOTIATION
Jeanfrancois N AmigonUnited KingdomAnna Fali PROPOSAL
David C PoquetteJapanIoni Bowcher PROPOSAL
Johnson Q CaldareraGermanyBernardo Dominic NEGOTIATION
Sinclair R NickaRussiaIoni Bowcher UNQUALIFIED
Ricardo L ChuiBrazilXuxue Feng NEGOTIATION
Arvin X SergiAustraliaStephen Shaw UNQUALIFIED
Jefferson Z OstroskyUnited KingdomAmy Elsner QUALIFIED
Jefferson Z CampainItalyStephen Shaw QUALIFIED
Munro F VocelkaJapanAnna Fali RENEWAL
Leja L WaycottSpainStephen Shaw NEGOTIATION
Stacey K StensethGermanyBernardo Dominic PROPOSAL
Murillo I CaudyRussiaXuxue Feng QUALIFIED
Jeanfrancois X MorascaGermanyAnna Fali PROPOSAL
Costa B StockhamItalyElwin Sharvill UNQUALIFIED
Munro J MarrierRussiaElwin Sharvill PROPOSAL
Kadeem G AlbaresAustraliaIoni Bowcher QUALIFIED
David I MaletItalyElwin Sharvill PROPOSAL
Adams A CaudyGermanyXuxue Feng QUALIFIED
Jones I StensethUnited KingdomAnna Fali NEGOTIATION
Greenwood A BologniaJapanIoni Bowcher NEW
Jeanfrancois S FlosiGermanyBernardo Dominic QUALIFIED
Murillo C CaldareraAustraliaAmy Elsner UNQUALIFIED
Octavia W PoquetteIndiaElwin Sharvill NEGOTIATION
Ivar W StockhamRussiaStephen Shaw UNQUALIFIED
Antonio Y RutaItalyAnna Fali NEGOTIATION
Sinclair S NickaFranceOnyama Limba RENEWAL
Alejandro Q SergiArgentinaXuxue Feng PROPOSAL
David P GarufiGermanyAsiya Javayant NEGOTIATION
Emily P MacleadUnited KingdomElwin Sharvill NEW
Murillo O FigeroaAustraliaIoni Bowcher PROPOSAL
Stacey X CaudySpainElwin Sharvill UNQUALIFIED
Ashley S SlusarskiGermanyAsiya Javayant NEGOTIATION
Maria S AlbaresJapanAnna Fali QUALIFIED
Izzy I GarufiBrazilIoni Bowcher NEGOTIATION
Ashley M InouyeBrazilXuxue Feng QUALIFIED
Smith J MorascaRussiaElwin Sharvill PROPOSAL
Smith E IturbideArgentinaXuxue Feng UNQUALIFIED
Jennifer K WaycottJapanOnyama Limba UNQUALIFIED
Ivar B NestleItalyIoni Bowcher PROPOSAL
Silvio K VenereFranceIoni Bowcher RENEWAL
Mayumi B BologniaIndiaAnna Fali RENEWAL
Mujtaba P MacleadSpainAmy Elsner RENEWAL
Chavez R AlbaresAustraliaAsiya Javayant NEW
Jeanfrancois Z MaletIndiaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Greenwood X Morasca
Rodrigues Q Ferencz
Emily N Albares
James A Sergi
Nicolas D Rulapaugh
Costa E Campain
Kaitlin U Marrier
Aditya U Marrier
Munro Z Foller
James U Gaucho
Stacey B Nicka
Morrow F Shinko
Octavia E Stenseth
Mayumi G Stockham
Johnson M Flosi
David Y Tollner
Chavez U Oldroyd
Aditya J Whobrey
Faith O Poquette
Costa W Nicka
Francesco F Maclead
Tony G Caldarera
Wickens C Rulapaugh
Leon Z Albares
Jefferson E Stenseth
Costa U Tollner
Morrow E Nicka
Aruna I Darakjy
Alejandro I Perin
Wickens S Stockham
Murillo Z Chui
Johnson G Dilliard
Wickens F Schemmer
Adams Y Rim
Smith U Ruta
Clifford U Poquette
Tony I Amigon
Clifford A Campain
Ricardo D Vocelka
Aruna A Rulapaugh
Clifford R Bolognia
Chavez D Slusarski
Ivar I Gillian
Jennifer D Maclead
Jennifer Q Malet
Misaki Y Malet
Morrow R Nicka
Silvio F Stockham
Darci N Dilliard
Misaki W Nicka
IdCountryDate
1000Australia2024-04-13
1001Italy2024-04-23
1002Italy2024-04-29
1003Italy2024-05-03
1004Japan2024-04-21
1005Australia2024-04-21
1006Australia2024-05-04
1007Russia2024-04-30
1008Australia2024-05-01
1009Australia2024-04-25
1010Argentina2024-04-11
1011Germany2024-04-22
1012Germany2024-05-01
1013Germany2024-05-03
1014Brazil2024-04-13
1015Japan2024-04-23
1016India2024-04-08
1017Japan2024-04-13
1018Spain2024-05-05
1019Italy2024-05-01
1020Spain2024-05-03
1021Japan2024-04-22
1022Australia2024-05-04
1023Spain2024-05-05
1024Brazil2024-05-02
1025Russia2024-04-21
1026Spain2024-05-06
1027India2024-05-05
1028India2024-04-19
1029Brazil2024-04-17
1030Germany2024-04-17
1031Italy2024-04-30
1032Russia2024-05-04
1033Russia2024-05-01
1034Argentina2024-04-27
1035Canada2024-04-12
1036France2024-04-09
1037France2024-04-22
1038United Kingdom2024-04-11
1039Brazil2024-04-25
1040India2024-04-28
1041France2024-04-11
1042India2024-05-03
1043France2024-04-25
1044Brazil2024-04-09
1045Germany2024-04-20
1046United Kingdom2024-04-21
1047Australia2024-04-20
1048Japan2024-04-26
1049Italy2024-04-24

On-Demand Data

NameIdCountryDate
Stacey C Foller1000France2024-05-07
Alejandro Z Ostrosky1001Canada2024-04-14
Smith F Ruta1002Japan2024-04-11
Salvatore R Butt1003Spain2024-04-23
Morrow S Butt1004India2024-04-25
Aditya A Ferencz1005Russia2024-04-16
Arvin S Gaucho1006Australia2024-04-25
Cody V Whobrey1007Germany2024-04-18
Aditya S Foller1008Russia2024-04-26
Nicolas C Butt1009Spain2024-04-29
Johnson T Caudy1010France2024-04-15
Octavia T Malet1011Russia2024-04-27
Greenwood R Stenseth1012France2024-05-07
Wickens K Briddick1013Italy2024-04-24
Misaki M Campain1014Argentina2024-04-08
Leon A Foller1015Australia2024-04-30
Morrow F Rulapaugh1016Canada2024-04-25
Clifford K Malet1017Russia2024-04-16
James A Rulapaugh1018Russia2024-04-11
Wickens G Briddick1019Argentina2024-04-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio O VocelkaRussiaElwin Sharvill NEGOTIATION
Leja P GlickArgentinaOnyama Limba PROPOSAL
Tony C GlickRussiaStephen Shaw QUALIFIED
Leja J SergiCanadaIoni Bowcher RENEWAL
Kadeem L MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Sinclair D GarufiFranceAnna Fali PROPOSAL
Clifford Q BowleyUnited KingdomAnna Fali UNQUALIFIED
Julie U WhobreyBrazilXuxue Feng QUALIFIED
Johnson O GlickSpainBernardo Dominic UNQUALIFIED
Munro Z VenereFranceAsiya Javayant NEGOTIATION
Wickens E OstroskyCanadaAmy Elsner UNQUALIFIED
Mujtaba N SaylorsItalyStephen Shaw QUALIFIED
Aika J DoeAustraliaStephen Shaw QUALIFIED
Cody Y GillianItalyElwin Sharvill NEW
Salvatore R RimSpainOnyama Limba NEGOTIATION
Munro S GillianSpainElwin Sharvill QUALIFIED
Misaki Z KolmetzJapanAsiya Javayant RENEWAL
Antonio P ChuiArgentinaBernardo Dominic PROPOSAL
Morrow E VocelkaItalyElwin Sharvill QUALIFIED
Claire E VocelkaSpainIvan Magalhaes PROPOSAL
Clifford O VenereRussiaBernardo Dominic QUALIFIED
Chavez R InouyeSpainIvan Magalhaes PROPOSAL
Deepesh A GauchoArgentinaElwin Sharvill RENEWAL
Octavia F TollnerCanadaIvan Magalhaes NEGOTIATION
Jeanfrancois T ShinkoCanadaXuxue Feng NEGOTIATION
Jeanfrancois E BologniaUnited KingdomIoni Bowcher RENEWAL
Morrow Z DarakjyUnited KingdomOnyama Limba QUALIFIED
Aika F RulapaughBrazilStephen Shaw PROPOSAL
Leon A SlusarskiArgentinaBernardo Dominic QUALIFIED
Jeanfrancois Z FigeroaJapanXuxue Feng PROPOSAL
Mujtaba J AmigonItalyIoni Bowcher QUALIFIED
Cody F ChuiCanadaStephen Shaw NEGOTIATION
Maria G OldroydBrazilXuxue Feng NEW
Darci R MarrierBrazilAsiya Javayant UNQUALIFIED
Ricardo E DarakjyIndiaAmy Elsner RENEWAL
Jones L GauchoIndiaXuxue Feng PROPOSAL
Aruna T StensethJapanAmy Elsner RENEWAL
Francesco L NickaRussiaIoni Bowcher QUALIFIED
Darci Q NestleItalyXuxue Feng NEGOTIATION
Johnson K VenereJapanStephen Shaw 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>