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
Costa V TollnerBrazilBernardo Dominic QUALIFIED
Antonio R GauchoGermanyXuxue Feng NEGOTIATION
Maria K GillianArgentinaAnna Fali UNQUALIFIED
Murillo B GauchoFranceAmy Elsner NEGOTIATION
Jennifer F MaletRussiaElwin Sharvill NEGOTIATION
Mayumi T GarufiArgentinaOnyama Limba PROPOSAL
Leja A StockhamJapanXuxue Feng RENEWAL
Alejandro I VenereCanadaBernardo Dominic RENEWAL
Kadeem G GarufiGermanyAsiya Javayant RENEWAL
Antonio T OstroskyUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues F ButtItalyXuxue Feng NEGOTIATION
Maria O KolmetzBrazilIvan Magalhaes QUALIFIED
Darci U SergiRussiaOnyama Limba PROPOSAL
Jeanfrancois U FerenczJapanIoni Bowcher NEGOTIATION
Alejandro M CaldareraRussiaXuxue Feng PROPOSAL
Kaitlin A NickaJapanAnna Fali NEW
Smith K OstroskyFranceElwin Sharvill UNQUALIFIED
James T KuskoIndiaAsiya Javayant NEGOTIATION
Kaitlin B InouyeArgentinaOnyama Limba QUALIFIED
Chavez S SergiIndiaAmy Elsner NEW
Jefferson O WieserItalyAmy Elsner QUALIFIED
James P WhobreyFranceAsiya Javayant UNQUALIFIED
David T GillianIndiaStephen Shaw QUALIFIED
Murillo R FigeroaBrazilAsiya Javayant QUALIFIED
Kaitlin H OldroydArgentinaAsiya Javayant PROPOSAL
Jefferson V OldroydAustraliaOnyama Limba NEW
Costa E ButtIndiaIoni Bowcher PROPOSAL
Kaitlin X TollnerBrazilStephen Shaw NEW
Ashley Z PaprockiItalyStephen Shaw PROPOSAL
Misaki E RimIndiaIoni Bowcher RENEWAL
Johnson D VenereArgentinaStephen Shaw QUALIFIED
Octavia V FigeroaJapanAmy Elsner PROPOSAL
Nicolas J CaldareraRussiaIoni Bowcher PROPOSAL
Sinclair G RulapaughGermanyXuxue Feng RENEWAL
Leja G MarrierArgentinaOnyama Limba PROPOSAL
Jeanfrancois C RulapaughUnited KingdomOnyama Limba UNQUALIFIED
Nicolas J MarrierCanadaOnyama Limba NEW
Maisha J MarrierArgentinaStephen Shaw UNQUALIFIED
Rodrigues G ChuiAustraliaAsiya Javayant PROPOSAL
Kadeem X GarufiBrazilAsiya Javayant RENEWAL
Antonio D MaletFranceXuxue Feng PROPOSAL
Mayumi U BowleyRussiaIoni Bowcher NEGOTIATION
Wickens B DilliardJapanElwin Sharvill NEW
Salvatore F RulapaughJapanAsiya Javayant RENEWAL
Smith V CaudyArgentinaStephen Shaw RENEWAL
Emily H PoquetteFranceBernardo Dominic NEGOTIATION
Munro U ShinkoRussiaElwin Sharvill NEGOTIATION
Ricardo X CaudyUnited KingdomElwin Sharvill NEGOTIATION
Munro K SchemmerUnited KingdomBernardo Dominic QUALIFIED
Misaki W VenereBrazilStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio N ShinkoIndiaAnna Fali UNQUALIFIED
Kadeem Y PerinItalyOnyama Limba RENEWAL
Ricardo A InouyeArgentinaIoni Bowcher RENEWAL
Alejandro C DilliardArgentinaAsiya Javayant NEGOTIATION
Octavia O FigeroaItalyXuxue Feng RENEWAL
Isabel T OstroskyGermanyAsiya Javayant NEW
Maisha B SlusarskiUnited KingdomBernardo Dominic PROPOSAL
Alejandro W GillianArgentinaAsiya Javayant PROPOSAL
Jeanfrancois H RulapaughSpainXuxue Feng RENEWAL
Alejandro T CampainSpainElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan N SlusarskiCanada2024-03-30Rousseaux, Michael Esq UNQUALIFIED75Ioni Bowcher
1001Izzy J TollnerSpain2024-03-23Benton, John B Jr QUALIFIED69Amy Elsner
1002Ashley K InouyeArgentina2024-03-26Dorl, James J Esq UNQUALIFIED14Asiya Javayant
1003Ivar K OstroskyFrance2024-04-19Buckley Miller Wright NEW10Amy Elsner
1004Maisha C SaylorsJapan2024-03-28Feltz Printing Service RENEWAL34Stephen Shaw
1005Francesco S GlickUnited Kingdom2024-03-27Benton, John B Jr PROPOSAL9Elwin Sharvill
1006Mayumi W MacleadBrazil2024-04-19Feiner Bros NEW26Amy Elsner
1007Greenwood J PoquetteFrance2024-04-03Rangoni Of Florence UNQUALIFIED66Asiya Javayant
1008Jefferson F NestleRussia2024-04-19Chemel, James L Cpa NEW97Elwin Sharvill
1009Greenwood F SergiArgentina2024-03-27Benton, John B Jr NEW81Ioni Bowcher
1010Aditya L NickaBrazil2024-04-17King, Christopher A Esq NEGOTIATION90Bernardo Dominic
1011Wickens A VocelkaGermany2024-03-28Benton, John B Jr QUALIFIED11Bernardo Dominic
1012Clifford I DoeCanada2024-04-17Buckley Miller Wright UNQUALIFIED13Asiya Javayant
1013Isabel H RoysterIndia2024-04-16Rousseaux, Michael Esq NEW50Anna Fali
1014Ricardo W MarrierIndia2024-04-09Rangoni Of Florence NEW75Anna Fali
1015Ivar Z VenereCanada2024-04-13Chemel, James L Cpa NEGOTIATION34Asiya Javayant
1016Rodrigues A VocelkaCanada2024-03-31Dorl, James J Esq RENEWAL14Amy Elsner
1017Deepesh J GarufiCanada2024-04-11Chapman, Ross E Esq UNQUALIFIED30Bernardo Dominic
1018Darci P DarakjyGermany2024-03-22Rangoni Of Florence PROPOSAL97Asiya Javayant
1019Maisha A InouyeIndia2024-04-11Chanay, Jeffrey A Esq NEW12Amy Elsner
1020Tony C FerenczSpain2024-04-09Feiner Bros NEGOTIATION68Asiya Javayant
1021Nicolas X RimCanada2024-04-04Commercial Press PROPOSAL8Asiya Javayant
1022Maisha V VenereArgentina2024-04-08Chanay, Jeffrey A Esq QUALIFIED63Onyama Limba
1023Leja I NestleCanada2024-04-03Chemel, James L Cpa RENEWAL75Amy Elsner
1024Kaitlin L PerinAustralia2024-04-07Dorl, James J Esq NEW99Asiya Javayant
1025Mayumi Y WhobreyItaly2024-03-29Chemel, James L Cpa UNQUALIFIED88Ivan Magalhaes
1026Jones A WhobreyFrance2024-04-05Chanay, Jeffrey A Esq RENEWAL54Onyama Limba
1027Ashley F FollerIndia2024-03-29Morlong Associates UNQUALIFIED26Asiya Javayant
1028Izzy C OstroskyFrance2024-04-09Chemel, James L Cpa QUALIFIED68Bernardo Dominic
1029Munro P PoquetteCanada2024-04-15Rousseaux, Michael Esq UNQUALIFIED24Anna Fali
1030Tony B SaylorsIndia2024-04-16Buckley Miller Wright PROPOSAL1Onyama Limba
1031Ricardo B KuskoFrance2024-03-28Morlong Associates NEGOTIATION55Bernardo Dominic
1032Jennifer U CaudyBrazil2024-04-13Feltz Printing Service RENEWAL12Asiya Javayant
1033James Q ButtCanada2024-04-09King, Christopher A Esq NEGOTIATION96Amy Elsner
1034David J SergiFrance2024-03-22Benton, John B Jr QUALIFIED65Onyama Limba
1035Antonio K CaldareraGermany2024-03-27Benton, John B Jr NEW17Ivan Magalhaes
1036Stacey K PerinGermany2024-04-05Chemel, James L Cpa RENEWAL72Xuxue Feng
1037Kadeem O StensethSpain2024-04-05Feltz Printing Service NEGOTIATION13Bernardo Dominic
1038Sinclair U PaprockiFrance2024-04-14Morlong Associates RENEWAL4Bernardo Dominic
1039Aditya P FigeroaIndia2024-04-11Rousseaux, Michael Esq NEGOTIATION87Ioni Bowcher
1040Johnson X ChuiSpain2024-03-31Truhlar And Truhlar Attys QUALIFIED34Onyama Limba
1041Leon E GillianSpain2024-03-28Printing Dimensions RENEWAL8Bernardo Dominic
1042Johnson L GillianItaly2024-04-04Chanay, Jeffrey A Esq NEGOTIATION21Bernardo Dominic
1043Leja C KolmetzAustralia2024-03-21Chanay, Jeffrey A Esq UNQUALIFIED67Ioni Bowcher
1044Izzy W BowleyBrazil2024-03-28Chemel, James L Cpa PROPOSAL18Bernardo Dominic
1045Arvin A FerenczUnited Kingdom2024-04-08Commercial Press NEGOTIATION10Ioni Bowcher
1046Aruna B DoeArgentina2024-03-29Feiner Bros RENEWAL66Stephen Shaw
1047Costa J GillianBrazil2024-03-28Benton, John B Jr UNQUALIFIED70Asiya Javayant
1048Chavez T PoquetteJapan2024-03-23King, Christopher A Esq NEGOTIATION73Anna Fali
1049Claire G OstroskyAustralia2024-04-11Printing Dimensions NEW52Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Mayumi Z ChuiJapanIvan Magalhaes RENEWAL
Julie C PerinItalyBernardo Dominic UNQUALIFIED
Izzy M SchemmerBrazilIvan Magalhaes PROPOSAL
Tony N GauchoGermanyBernardo Dominic RENEWAL
Silvio Y GlickArgentinaOnyama Limba NEW
Leon Z TollnerBrazilElwin Sharvill PROPOSAL
Cody J BriddickBrazilAmy Elsner QUALIFIED
Nicolas H StockhamUnited KingdomXuxue Feng NEGOTIATION
Jones J MaletAustraliaAnna Fali QUALIFIED
David M VocelkaItalyXuxue Feng RENEWAL
Smith F SlusarskiFranceBernardo Dominic NEW
Isabel F TollnerIndiaBernardo Dominic QUALIFIED
Munro Y MorascaJapanOnyama Limba NEGOTIATION
Kaitlin R BriddickBrazilIvan Magalhaes NEW
Ivar N FlosiItalyIvan Magalhaes NEW
Kaitlin Q RutaJapanBernardo Dominic NEGOTIATION
Darci A VenereItalyAsiya Javayant RENEWAL
Mayumi X GauchoGermanyIoni Bowcher NEGOTIATION
Ivar Y CaudySpainOnyama Limba QUALIFIED
Isabel S SlusarskiAustraliaAnna Fali QUALIFIED
Alejandro H KuskoItalyXuxue Feng NEGOTIATION
Aruna D MarrierSpainAmy Elsner NEGOTIATION
Emily O SergiItalyXuxue Feng RENEWAL
Izzy H StensethArgentinaOnyama Limba PROPOSAL
David C InouyeArgentinaXuxue Feng RENEWAL
Ivar A OstroskyRussiaBernardo Dominic NEW
Chavez S DoeAustraliaAnna Fali RENEWAL
Nicolas O AlbaresJapanXuxue Feng PROPOSAL
Arvin N IturbideItalyAmy Elsner UNQUALIFIED
Ashley U TollnerBrazilAnna Fali UNQUALIFIED
Smith A WaycottBrazilStephen Shaw RENEWAL
Rodrigues U DoeBrazilElwin Sharvill NEW
Jefferson F FigeroaCanadaElwin Sharvill RENEWAL
Emily Y BriddickBrazilXuxue Feng RENEWAL
Faith D GlickAustraliaIvan Magalhaes QUALIFIED
Leon A RulapaughIndiaOnyama Limba NEGOTIATION
Izzy X AlbaresAustraliaAnna Fali RENEWAL
Cody I DilliardUnited KingdomIoni Bowcher UNQUALIFIED
Misaki S KuskoFranceAsiya Javayant QUALIFIED
Julie T WaycottGermanyXuxue Feng NEGOTIATION
Munro V NickaIndiaIoni Bowcher QUALIFIED
Clifford S VocelkaBrazilIvan Magalhaes RENEWAL
Misaki R AlbaresFranceXuxue Feng UNQUALIFIED
Kaitlin Z GarufiBrazilStephen Shaw UNQUALIFIED
Stacey B MaletSpainAmy Elsner RENEWAL
Antonio C MorascaBrazilAsiya Javayant RENEWAL
Costa S OldroydRussiaElwin Sharvill QUALIFIED
Chavez V StockhamArgentinaOnyama Limba PROPOSAL
Mayumi N KolmetzAustraliaBernardo Dominic NEGOTIATION
Stacey R KolmetzFranceAnna Fali QUALIFIED
Frozen Columns
Name
Maria U Saylors
Julie Y Kusko
Johnson K Poquette
Mujtaba B Campain
James A Oldroyd
Leja A Kolmetz
Antonio W Briddick
Stacey S Nestle
Claire M Tollner
Jeanfrancois I Whobrey
Tony Q Bolognia
Rodrigues P Slusarski
Sinclair X Darakjy
Jefferson I Dilliard
Isabel N Malet
Aika C Gillian
Isabel X Paprocki
Octavia N Kusko
Rodrigues Q Bolognia
Leon W Paprocki
Kaitlin I Tollner
Chavez L Chui
Darci S Wieser
Leon C Dilliard
Cody A Vocelka
Francesco K Bolognia
Francesco T Malet
Nicolas A Maclead
Juan N Wieser
Maisha K Rulapaugh
Juan P Nicka
Jones G Bolognia
Aika Y Figeroa
Mujtaba N Albares
Claire M Marrier
Deepesh P Gaucho
Misaki E Ostrosky
Stacey M Gaucho
Faith J Butt
Izzy T Whobrey
Alejandro Q Bowley
Nicolas M Bolognia
Leon Q Sergi
Isabel T Stenseth
Costa N Oldroyd
Sinclair L Kolmetz
Smith Y Saylors
Munro O Stockham
Octavia P Kolmetz
Juan E Caudy
IdCountryDate
1000United Kingdom2024-03-29
1001India2024-04-19
1002India2024-03-29
1003Australia2024-03-27
1004Italy2024-04-18
1005Brazil2024-04-11
1006United Kingdom2024-03-23
1007India2024-03-22
1008Spain2024-03-28
1009Australia2024-03-24
1010Italy2024-03-23
1011Australia2024-03-23
1012Argentina2024-04-02
1013India2024-04-14
1014France2024-04-14
1015Canada2024-03-26
1016Brazil2024-03-26
1017United Kingdom2024-04-11
1018Australia2024-04-18
1019Russia2024-04-13
1020France2024-04-11
1021Australia2024-04-18
1022Russia2024-04-08
1023Argentina2024-03-24
1024Japan2024-03-25
1025Russia2024-04-18
1026France2024-04-15
1027Japan2024-04-06
1028Australia2024-04-19
1029India2024-04-15
1030India2024-04-01
1031Argentina2024-04-15
1032Brazil2024-04-12
1033Canada2024-04-08
1034India2024-04-16
1035Japan2024-03-24
1036Russia2024-04-06
1037France2024-04-16
1038United Kingdom2024-04-14
1039Italy2024-04-13
1040Canada2024-04-08
1041Brazil2024-03-26
1042United Kingdom2024-04-05
1043Japan2024-04-08
1044Russia2024-03-22
1045India2024-04-01
1046Russia2024-04-01
1047India2024-04-02
1048Italy2024-04-04
1049Canada2024-04-09

On-Demand Data

NameIdCountryDate
Aika R Saylors1000Australia2024-03-28
Mayumi U Foller1001Canada2024-03-29
Deepesh G Rim1002Australia2024-04-13
Jones U Caldarera1003Italy2024-04-02
Francesco E Bolognia1004Germany2024-04-09
Ricardo E Malet1005India2024-03-30
Darci F Morasca1006France2024-04-04
Stacey G Doe1007Russia2024-03-21
Morrow Z Nestle1008Russia2024-04-03
David G Venere1009India2024-04-03
David Z Rim1010Russia2024-03-29
Aditya P Perin1011United Kingdom2024-04-11
Jones L Nestle1012Italy2024-04-06
Deepesh J Nicka1013Australia2024-03-29
Izzy K Gaucho1014Canada2024-04-05
Maria R Iturbide1015Italy2024-04-08
Misaki T Stockham1016India2024-03-21
Faith D Saylors1017Argentina2024-04-09
Greenwood Y Caldarera1018Argentina2024-04-14
Silvio O Flosi1019Japan2024-03-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan E MarrierRussiaXuxue Feng UNQUALIFIED
Jennifer N MaletBrazilAmy Elsner PROPOSAL
Antonio C PoquetteGermanyXuxue Feng NEW
Aruna J FerenczRussiaIoni Bowcher NEGOTIATION
Greenwood B MorascaIndiaIoni Bowcher RENEWAL
Isabel D DilliardSpainAmy Elsner QUALIFIED
Faith P RoysterAustraliaXuxue Feng NEGOTIATION
Antonio U MarrierRussiaElwin Sharvill QUALIFIED
Julie C BriddickBrazilAmy Elsner PROPOSAL
Mayumi T BowleyFranceAsiya Javayant UNQUALIFIED
Ricardo G RulapaughGermanyIvan Magalhaes NEW
Nicolas N VocelkaIndiaIoni Bowcher NEW
Jeanfrancois L IturbideUnited KingdomAmy Elsner UNQUALIFIED
Kaitlin L TollnerArgentinaOnyama Limba NEGOTIATION
Greenwood R RoysterFranceIvan Magalhaes UNQUALIFIED
Jones R CaudyJapanIvan Magalhaes PROPOSAL
Wickens S CaudyIndiaAsiya Javayant PROPOSAL
Costa H NickaItalyIoni Bowcher NEGOTIATION
Jennifer Y SergiSpainXuxue Feng UNQUALIFIED
Jones C GillianGermanyElwin Sharvill UNQUALIFIED
Sinclair W OstroskyGermanyOnyama Limba PROPOSAL
Adams S ButtUnited KingdomIoni Bowcher QUALIFIED
Cody T DilliardJapanAmy Elsner PROPOSAL
Smith L MorascaAustraliaOnyama Limba QUALIFIED
Jones E ButtBrazilIvan Magalhaes QUALIFIED
Clifford B DoeGermanyStephen Shaw PROPOSAL
Clifford K ShinkoCanadaAnna Fali NEW
Smith B MacleadGermanyAmy Elsner NEGOTIATION
Murillo Y AlbaresSpainIvan Magalhaes NEW
Rodrigues U GarufiUnited KingdomAnna Fali NEW
Salvatore C SlusarskiArgentinaAnna Fali UNQUALIFIED
Claire K BriddickSpainAsiya Javayant NEW
James Z FerenczArgentinaOnyama Limba NEGOTIATION
Ivar H AlbaresBrazilAsiya Javayant UNQUALIFIED
Ivar M FerenczFranceElwin Sharvill RENEWAL
Silvio Y DarakjyBrazilAnna Fali UNQUALIFIED
Jeanfrancois R SergiArgentinaOnyama Limba NEW
Nicolas N BologniaAustraliaAsiya Javayant RENEWAL
Julie W RoysterFranceOnyama Limba NEW
Leja H DoeUnited KingdomIvan Magalhaes QUALIFIED

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