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
Clifford W NickaCanadaAsiya Javayant NEGOTIATION
Sinclair X OldroydFranceBernardo Dominic NEGOTIATION
Mayumi D BowleyUnited KingdomAmy Elsner NEW
Mujtaba G AmigonAustraliaOnyama Limba UNQUALIFIED
Aruna J KolmetzBrazilOnyama Limba PROPOSAL
Greenwood F CaldareraJapanAnna Fali UNQUALIFIED
Faith K OstroskyArgentinaOnyama Limba RENEWAL
Rodrigues O FollerBrazilOnyama Limba QUALIFIED
Faith A BowleyArgentinaXuxue Feng NEW
Mayumi C RimJapanIvan Magalhaes UNQUALIFIED
Darci U PoquetteSpainAmy Elsner NEGOTIATION
Misaki I WaycottJapanXuxue Feng NEW
Costa R VenereGermanyXuxue Feng PROPOSAL
Munro A MarrierJapanElwin Sharvill PROPOSAL
Mujtaba O GarufiIndiaAnna Fali NEGOTIATION
Chavez V FigeroaJapanAmy Elsner PROPOSAL
Emily G WieserGermanyXuxue Feng QUALIFIED
Ashley J FollerSpainXuxue Feng PROPOSAL
Murillo P GlickIndiaAsiya Javayant UNQUALIFIED
Aditya S MacleadCanadaElwin Sharvill PROPOSAL
Smith A DoeIndiaOnyama Limba RENEWAL
Aika X TollnerAustraliaAmy Elsner NEW
Greenwood V BowleyRussiaStephen Shaw RENEWAL
Julie M DoeSpainBernardo Dominic RENEWAL
Munro E MarrierFranceAmy Elsner RENEWAL
Stacey Z StensethGermanyBernardo Dominic NEGOTIATION
Kaitlin P AlbaresRussiaBernardo Dominic UNQUALIFIED
Costa E MarrierRussiaIoni Bowcher PROPOSAL
Antonio B InouyeIndiaStephen Shaw UNQUALIFIED
Jones A MacleadItalyBernardo Dominic NEGOTIATION
Clifford P MacleadRussiaAsiya Javayant NEGOTIATION
Alejandro W GarufiFranceAmy Elsner UNQUALIFIED
Silvio S MaletSpainAnna Fali NEGOTIATION
Francesco S DarakjyGermanyIoni Bowcher PROPOSAL
Munro R InouyeAustraliaXuxue Feng QUALIFIED
Aika R KuskoBrazilElwin Sharvill QUALIFIED
Costa S FlosiBrazilOnyama Limba RENEWAL
Alejandro S StockhamJapanElwin Sharvill QUALIFIED
Mujtaba Q CampainBrazilAsiya Javayant QUALIFIED
Rodrigues G CaldareraCanadaXuxue Feng QUALIFIED
Cody T GillianSpainIvan Magalhaes UNQUALIFIED
Aika O MarrierCanadaAnna Fali NEGOTIATION
Munro N FlosiArgentinaAsiya Javayant NEGOTIATION
Misaki O MarrierRussiaAnna Fali PROPOSAL
Ashley Z CampainCanadaIoni Bowcher NEW
Leon L FerenczFranceXuxue Feng QUALIFIED
Aruna R GillianIndiaIvan Magalhaes QUALIFIED
Chavez L KuskoGermanyAsiya Javayant NEW
Alejandro J RimRussiaAsiya Javayant RENEWAL
Chavez T KolmetzCanadaStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ashley F DilliardAustraliaElwin Sharvill PROPOSAL
Claire C VenereGermanyElwin Sharvill NEGOTIATION
Aditya V DilliardUnited KingdomXuxue Feng UNQUALIFIED
Cody V SlusarskiArgentinaXuxue Feng UNQUALIFIED
Munro K VocelkaCanadaOnyama Limba QUALIFIED
Faith U MacleadIndiaElwin Sharvill RENEWAL
Mayumi Y WieserFranceAsiya Javayant UNQUALIFIED
Cody Q TollnerBrazilIoni Bowcher NEGOTIATION
Morrow O ShinkoFranceBernardo Dominic PROPOSAL
Kadeem G RulapaughCanadaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh G CaldareraGermany2024-04-25Feltz Printing Service NEGOTIATION42Elwin Sharvill
1001Kaitlin S WhobreyUnited Kingdom2024-05-01Dorl, James J Esq PROPOSAL84Ioni Bowcher
1002Octavia G GarufiUnited Kingdom2024-04-06King, Christopher A Esq RENEWAL87Elwin Sharvill
1003Octavia Y PoquetteSpain2024-05-01Morlong Associates NEW20Xuxue Feng
1004Francesco L GlickCanada2024-05-02Chanay, Jeffrey A Esq QUALIFIED64Asiya Javayant
1005Juan Z KuskoJapan2024-04-29Rangoni Of Florence RENEWAL71Stephen Shaw
1006Rodrigues E BologniaAustralia2024-04-04Morlong Associates UNQUALIFIED61Xuxue Feng
1007Adams E BowleyCanada2024-04-22Commercial Press QUALIFIED28Xuxue Feng
1008Aditya G MaletArgentina2024-04-12Dorl, James J Esq PROPOSAL42Elwin Sharvill
1009Julie F DoeSpain2024-04-16Chapman, Ross E Esq RENEWAL93Ioni Bowcher
1010Chavez J FollerFrance2024-04-13Rousseaux, Michael Esq NEGOTIATION72Stephen Shaw
1011Clifford Q RutaItaly2024-04-15Chanay, Jeffrey A Esq PROPOSAL9Ioni Bowcher
1012Claire D ChuiCanada2024-04-05Chanay, Jeffrey A Esq QUALIFIED42Xuxue Feng
1013Aditya Z AlbaresJapan2024-04-14Rousseaux, Michael Esq RENEWAL77Bernardo Dominic
1014Mujtaba P SlusarskiBrazil2024-04-07Dorl, James J Esq QUALIFIED91Stephen Shaw
1015Aika N FollerRussia2024-04-15Truhlar And Truhlar Attys RENEWAL66Elwin Sharvill
1016Izzy E ShinkoAustralia2024-04-03Commercial Press NEGOTIATION25Stephen Shaw
1017Julie B NestleSpain2024-04-08Feiner Bros PROPOSAL31Amy Elsner
1018Leon I ShinkoFrance2024-04-14Chanay, Jeffrey A Esq QUALIFIED7Anna Fali
1019Octavia V BologniaGermany2024-04-23Printing Dimensions RENEWAL56Elwin Sharvill
1020Jones E PaprockiFrance2024-04-06Printing Dimensions QUALIFIED42Amy Elsner
1021Leon U NestleUnited Kingdom2024-04-04Morlong Associates NEW69Ioni Bowcher
1022Ivar G WieserJapan2024-04-27Commercial Press NEGOTIATION81Ivan Magalhaes
1023James S DilliardJapan2024-05-01Chapman, Ross E Esq UNQUALIFIED94Bernardo Dominic
1024Nicolas V PoquetteArgentina2024-05-02Printing Dimensions UNQUALIFIED14Amy Elsner
1025Wickens I FlosiArgentina2024-04-09Morlong Associates PROPOSAL83Bernardo Dominic
1026Aditya E StensethSpain2024-04-22Truhlar And Truhlar Attys NEGOTIATION44Onyama Limba
1027Jeanfrancois J RutaAustralia2024-04-22Feltz Printing Service NEGOTIATION74Ivan Magalhaes
1028Octavia Z MarrierUnited Kingdom2024-04-14Feiner Bros QUALIFIED12Anna Fali
1029Darci A SchemmerUnited Kingdom2024-05-02Chemel, James L Cpa NEGOTIATION59Stephen Shaw
1030Emily T BriddickJapan2024-04-10Morlong Associates PROPOSAL54Xuxue Feng
1031Morrow R ChuiUnited Kingdom2024-04-22Commercial Press NEGOTIATION66Stephen Shaw
1032Mayumi N OldroydJapan2024-04-05Feltz Printing Service PROPOSAL94Ivan Magalhaes
1033Aruna E DoeJapan2024-04-25Rousseaux, Michael Esq NEGOTIATION95Anna Fali
1034David V OstroskySpain2024-05-02Feltz Printing Service NEGOTIATION94Xuxue Feng
1035Isabel N KuskoUnited Kingdom2024-04-22Rangoni Of Florence NEW15Ivan Magalhaes
1036Maisha X FollerJapan2024-04-18Benton, John B Jr QUALIFIED16Stephen Shaw
1037Francesco C WhobreySpain2024-04-08Feltz Printing Service NEW54Amy Elsner
1038Isabel R DarakjyRussia2024-04-12Chemel, James L Cpa NEW32Stephen Shaw
1039Mujtaba V ShinkoFrance2024-04-19Feltz Printing Service NEW81Anna Fali
1040Jeanfrancois R VocelkaCanada2024-04-10Commercial Press QUALIFIED18Ioni Bowcher
1041Aika M ShinkoBrazil2024-04-29Morlong Associates RENEWAL65Amy Elsner
1042Isabel X SaylorsUnited Kingdom2024-04-29Morlong Associates PROPOSAL78Onyama Limba
1043Jennifer E RoysterIndia2024-04-20Truhlar And Truhlar Attys NEGOTIATION13Elwin Sharvill
1044Ricardo Q ButtBrazil2024-04-12Benton, John B Jr UNQUALIFIED46Xuxue Feng
1045Izzy G RutaSpain2024-04-16Chapman, Ross E Esq UNQUALIFIED85Asiya Javayant
1046Jennifer U FerenczRussia2024-04-09Printing Dimensions PROPOSAL89Bernardo Dominic
1047Francesco Q CaldareraIndia2024-04-26Rangoni Of Florence PROPOSAL72Ivan Magalhaes
1048Darci R KuskoGermany2024-04-27Chemel, James L Cpa PROPOSAL5Onyama Limba
1049Adams V FerenczAustralia2024-04-19Rangoni Of Florence RENEWAL11Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Darci M ShinkoGermanyAmy Elsner PROPOSAL
Arvin V BologniaUnited KingdomAnna Fali PROPOSAL
Murillo C GarufiIndiaOnyama Limba NEGOTIATION
Alejandro H BriddickSpainBernardo Dominic PROPOSAL
Morrow Q MaletCanadaOnyama Limba RENEWAL
Cody T InouyeRussiaIoni Bowcher RENEWAL
Jefferson T MaletItalyStephen Shaw NEGOTIATION
Adams S ChuiBrazilXuxue Feng NEGOTIATION
Wickens A KolmetzItalyOnyama Limba UNQUALIFIED
Johnson D AmigonRussiaXuxue Feng PROPOSAL
Juan I DoeUnited KingdomXuxue Feng PROPOSAL
Darci F PerinUnited KingdomStephen Shaw QUALIFIED
Jefferson L NickaGermanyAsiya Javayant NEGOTIATION
Maisha S ShinkoGermanyBernardo Dominic PROPOSAL
Salvatore P PaprockiRussiaBernardo Dominic RENEWAL
Maria K MaletFranceAnna Fali UNQUALIFIED
Arvin G CampainBrazilElwin Sharvill UNQUALIFIED
David W RoysterItalyOnyama Limba NEGOTIATION
Misaki Y DilliardFranceAmy Elsner RENEWAL
Wickens J PoquetteGermanyAnna Fali NEW
Arvin M RoysterSpainXuxue Feng PROPOSAL
James Y FigeroaCanadaAnna Fali RENEWAL
Maria X SaylorsArgentinaOnyama Limba NEW
Maria W NickaItalyIoni Bowcher NEGOTIATION
Faith M CaldareraFranceIvan Magalhaes RENEWAL
Salvatore E SchemmerIndiaAmy Elsner UNQUALIFIED
Octavia I PerinRussiaXuxue Feng NEGOTIATION
Maria T MaletSpainAmy Elsner NEW
Adams F MorascaGermanyStephen Shaw PROPOSAL
Mayumi B KuskoItalyAsiya Javayant QUALIFIED
Mayumi B DoeJapanStephen Shaw UNQUALIFIED
Mayumi X InouyeRussiaAmy Elsner RENEWAL
Arvin U FlosiRussiaIoni Bowcher UNQUALIFIED
Darci K SaylorsArgentinaIoni Bowcher RENEWAL
Izzy J SergiGermanyAsiya Javayant NEW
Sinclair A DarakjyIndiaAsiya Javayant UNQUALIFIED
Morrow X PaprockiArgentinaAmy Elsner NEGOTIATION
Maria A CaudyRussiaIoni Bowcher RENEWAL
Jones J StensethGermanyAmy Elsner NEGOTIATION
Wickens B ButtAustraliaIvan Magalhaes RENEWAL
Octavia K OstroskyAustraliaAmy Elsner RENEWAL
Arvin B RoysterGermanyElwin Sharvill QUALIFIED
Ricardo F NickaRussiaIvan Magalhaes PROPOSAL
Faith L FerenczGermanyOnyama Limba NEGOTIATION
Ivar L GarufiItalyStephen Shaw PROPOSAL
Leon T CampainArgentinaBernardo Dominic NEW
Mayumi X FlosiIndiaStephen Shaw NEW
Juan Z SlusarskiGermanyXuxue Feng QUALIFIED
Rodrigues O NickaJapanAsiya Javayant NEGOTIATION
Claire A MaletItalyAsiya Javayant NEGOTIATION
Frozen Columns
Name
Jones E Maclead
Tony J Oldroyd
Octavia Y Inouye
Kaitlin T Nestle
Costa P Kusko
Leja P Flosi
Darci C Waycott
Jones G Caldarera
Ashley I Paprocki
Alejandro F Perin
Leja F Garufi
Alejandro A Maclead
Alejandro U Shinko
Stacey D Chui
Maria B Schemmer
Maisha X Paprocki
David K Stenseth
Arvin F Poquette
Salvatore D Marrier
Mujtaba T Caudy
Silvio G Oldroyd
Faith Q Inouye
Ricardo G Stenseth
Mujtaba N Malet
Jones L Malet
David U Kusko
Isabel B Bowley
Julie X Gaucho
Maisha H Malet
Jeanfrancois L Iturbide
Chavez T Briddick
Aditya Z Waycott
Greenwood S Stockham
Faith R Iturbide
Deepesh R Rim
Mujtaba K Glick
Chavez K Morasca
Darci W Foller
Darci X Maclead
Antonio N Bolognia
Ashley J Whobrey
Chavez S Albares
Stacey Q Flosi
Costa H Maclead
Julie W Paprocki
Tony J Glick
Tony I Nestle
Cody N Dilliard
Mayumi X Stenseth
Kaitlin A Amigon
IdCountryDate
1000Japan2024-04-21
1001Australia2024-04-16
1002India2024-04-08
1003India2024-04-25
1004Argentina2024-04-12
1005United Kingdom2024-04-22
1006United Kingdom2024-04-16
1007France2024-04-13
1008France2024-04-05
1009Spain2024-04-12
1010Japan2024-04-10
1011Spain2024-04-22
1012Australia2024-04-13
1013Australia2024-04-26
1014Germany2024-04-23
1015Canada2024-05-01
1016Australia2024-04-03
1017Germany2024-04-05
1018Italy2024-04-21
1019France2024-04-27
1020Canada2024-05-02
1021Brazil2024-04-17
1022Brazil2024-04-27
1023France2024-04-26
1024Japan2024-04-08
1025Germany2024-04-14
1026United Kingdom2024-04-21
1027Russia2024-04-07
1028United Kingdom2024-04-05
1029Japan2024-04-26
1030Italy2024-04-29
1031France2024-04-10
1032Germany2024-04-27
1033Argentina2024-04-14
1034Spain2024-04-03
1035Canada2024-04-03
1036Germany2024-04-17
1037Brazil2024-04-25
1038Argentina2024-04-23
1039United Kingdom2024-04-04
1040Japan2024-04-26
1041Spain2024-04-16
1042Canada2024-04-13
1043United Kingdom2024-05-01
1044Japan2024-04-28
1045Argentina2024-04-13
1046France2024-04-24
1047United Kingdom2024-04-30
1048India2024-04-08
1049Argentina2024-04-13

On-Demand Data

NameIdCountryDate
Jones Q Doe1000Australia2024-04-28
Claire M Briddick1001Germany2024-05-02
Julie Y Ostrosky1002Russia2024-04-23
Johnson I Doe1003France2024-04-29
James O Campain1004Germany2024-04-08
Nicolas M Flosi1005Italy2024-04-17
Julie E Wieser1006India2024-04-16
Arvin F Kolmetz1007France2024-04-10
Izzy J Iturbide1008India2024-04-06
Kadeem F Inouye1009Russia2024-04-04
Leja C Foller1010Argentina2024-04-05
Clifford Z Kolmetz1011Brazil2024-04-17
Greenwood T Maclead1012France2024-04-03
Chavez H Caldarera1013United Kingdom2024-04-19
Deepesh L Kolmetz1014Argentina2024-05-02
Aditya O Bolognia1015Argentina2024-04-30
Francesco J Figeroa1016Argentina2024-04-24
Cody D Waycott1017Spain2024-04-15
Darci Q Maclead1018United Kingdom2024-04-22
Nicolas V Rim1019United Kingdom2024-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio S DarakjyCanadaElwin Sharvill QUALIFIED
Maisha Q VenereUnited KingdomBernardo Dominic PROPOSAL
Octavia Y ButtArgentinaIoni Bowcher QUALIFIED
Chavez E GauchoUnited KingdomBernardo Dominic RENEWAL
Chavez M ChuiAustraliaElwin Sharvill PROPOSAL
Leon G MarrierJapanBernardo Dominic NEGOTIATION
Ivar Y GarufiAustraliaElwin Sharvill NEW
Aditya U TollnerIndiaStephen Shaw NEGOTIATION
Kaitlin I MacleadFranceXuxue Feng UNQUALIFIED
Juan G OstroskyFranceXuxue Feng RENEWAL
Arvin B SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Kadeem S NestleSpainElwin Sharvill NEW
Maria U GauchoSpainAsiya Javayant PROPOSAL
Greenwood R CaldareraCanadaElwin Sharvill NEGOTIATION
Jones U KolmetzItalyAnna Fali PROPOSAL
Wickens E SaylorsItalyStephen Shaw NEW
Stacey J GauchoUnited KingdomAnna Fali NEW
Munro Z SlusarskiSpainAnna Fali NEGOTIATION
Claire L GarufiSpainOnyama Limba UNQUALIFIED
Greenwood T AmigonIndiaXuxue Feng QUALIFIED
Francesco D TollnerGermanyXuxue Feng RENEWAL
Wickens X BriddickCanadaOnyama Limba QUALIFIED
Ivar S WaycottRussiaStephen Shaw PROPOSAL
Kaitlin V TollnerArgentinaOnyama Limba NEGOTIATION
Emily L PaprockiAustraliaBernardo Dominic RENEWAL
Francesco D PaprockiRussiaIoni Bowcher NEGOTIATION
Costa F SaylorsBrazilAmy Elsner UNQUALIFIED
Smith L SlusarskiRussiaIoni Bowcher RENEWAL
Leja A WieserIndiaIvan Magalhaes RENEWAL
Juan V ChuiUnited KingdomAmy Elsner RENEWAL
Wickens L IturbideJapanIoni Bowcher RENEWAL
Kadeem L GillianItalyAsiya Javayant RENEWAL
Munro S BriddickArgentinaXuxue Feng UNQUALIFIED
Deepesh F BriddickAustraliaOnyama Limba QUALIFIED
Faith K WieserUnited KingdomIvan Magalhaes PROPOSAL
Silvio S BowleyGermanyAmy Elsner UNQUALIFIED
Johnson M IturbideRussiaIvan Magalhaes UNQUALIFIED
Maisha X OstroskyItalyAsiya Javayant UNQUALIFIED
Deepesh U KuskoCanadaXuxue Feng NEW
Kadeem B SergiItalyBernardo Dominic UNQUALIFIED

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