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
Jeanfrancois F CaudyArgentinaIoni Bowcher PROPOSAL
Mujtaba X GlickCanadaIvan Magalhaes QUALIFIED
Adams J PaprockiCanadaElwin Sharvill QUALIFIED
Leon R FollerUnited KingdomXuxue Feng NEW
Misaki G FerenczItalyIoni Bowcher PROPOSAL
Mujtaba N GauchoIndiaOnyama Limba PROPOSAL
Kadeem U SlusarskiRussiaAnna Fali UNQUALIFIED
Emily L NestleRussiaOnyama Limba QUALIFIED
Murillo M GauchoJapanAnna Fali QUALIFIED
Aruna S MarrierArgentinaAnna Fali NEGOTIATION
Nicolas I PerinFranceAnna Fali RENEWAL
Wickens U AmigonFranceOnyama Limba NEW
James H GillianAustraliaXuxue Feng NEGOTIATION
Arvin Y PerinSpainElwin Sharvill NEGOTIATION
Maria P WieserRussiaAmy Elsner QUALIFIED
Johnson G MacleadArgentinaIoni Bowcher UNQUALIFIED
Leon K KolmetzUnited KingdomAnna Fali QUALIFIED
Salvatore P KolmetzArgentinaAnna Fali NEGOTIATION
Aruna Z FigeroaItalyOnyama Limba NEW
Salvatore P StensethCanadaXuxue Feng PROPOSAL
Johnson N SchemmerGermanyAnna Fali QUALIFIED
Morrow A CampainIndiaAsiya Javayant UNQUALIFIED
Cody G ChuiJapanAsiya Javayant PROPOSAL
Maisha T MarrierBrazilStephen Shaw QUALIFIED
Aika I BologniaBrazilBernardo Dominic UNQUALIFIED
Jeanfrancois U PoquetteAustraliaAsiya Javayant NEW
Tony V BologniaRussiaAmy Elsner NEGOTIATION
Cody A RulapaughBrazilOnyama Limba QUALIFIED
Costa X IturbideBrazilOnyama Limba NEGOTIATION
Aruna R SchemmerJapanElwin Sharvill QUALIFIED
Isabel N MaletJapanAmy Elsner UNQUALIFIED
Juan S MarrierArgentinaAmy Elsner UNQUALIFIED
Alejandro M MarrierUnited KingdomStephen Shaw NEW
Chavez F RutaIndiaBernardo Dominic NEW
Ashley U StensethFranceBernardo Dominic NEW
Greenwood P PaprockiJapanElwin Sharvill NEW
Darci K SaylorsAustraliaStephen Shaw NEGOTIATION
Aditya V DoeRussiaIoni Bowcher NEGOTIATION
Aditya G RimArgentinaElwin Sharvill NEGOTIATION
Murillo I DilliardItalyAnna Fali NEGOTIATION
Ricardo L SaylorsRussiaIvan Magalhaes UNQUALIFIED
Costa D SaylorsIndiaAmy Elsner UNQUALIFIED
Costa R NickaUnited KingdomOnyama Limba NEW
Adams C NickaUnited KingdomAnna Fali QUALIFIED
Adams O NestleUnited KingdomElwin Sharvill RENEWAL
David F MaletRussiaStephen Shaw RENEWAL
Wickens M MorascaArgentinaAnna Fali NEGOTIATION
Deepesh C KolmetzCanadaStephen Shaw RENEWAL
Wickens I DilliardBrazilElwin Sharvill NEW
Kadeem W DoeFranceIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio S SlusarskiCanadaBernardo Dominic UNQUALIFIED
David I RutaItalyAmy Elsner RENEWAL
Arvin Q GauchoBrazilAnna Fali NEW
Maria U WieserCanadaAmy Elsner RENEWAL
Francesco E BriddickRussiaBernardo Dominic QUALIFIED
Costa A SlusarskiFranceOnyama Limba QUALIFIED
Ashley D OstroskyBrazilAnna Fali PROPOSAL
Salvatore Z WhobreyArgentinaIvan Magalhaes UNQUALIFIED
Francesco T GlickCanadaElwin Sharvill RENEWAL
Tony E MaletUnited KingdomXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo W SaylorsAustralia2024-04-01Feltz Printing Service PROPOSAL50Asiya Javayant
1001Mayumi Y IturbideItaly2024-04-10Dorl, James J Esq NEGOTIATION81Onyama Limba
1002David N GillianJapan2024-04-01Commercial Press NEGOTIATION69Asiya Javayant
1003Francesco H OldroydSpain2024-04-12Feltz Printing Service NEW5Onyama Limba
1004Rodrigues K RimArgentina2024-03-24Chanay, Jeffrey A Esq UNQUALIFIED86Ioni Bowcher
1005Mujtaba C MarrierIndia2024-04-04King, Christopher A Esq UNQUALIFIED63Onyama Limba
1006Stacey Z SaylorsBrazil2024-03-23Commercial Press NEW94Xuxue Feng
1007Kadeem H ButtItaly2024-04-07Chapman, Ross E Esq NEGOTIATION80Ioni Bowcher
1008Murillo T CampainAustralia2024-04-01Printing Dimensions QUALIFIED91Ioni Bowcher
1009Jones S MaletGermany2024-03-21Feiner Bros PROPOSAL47Elwin Sharvill
1010Darci N NestleIndia2024-04-02Rousseaux, Michael Esq NEGOTIATION78Ivan Magalhaes
1011Murillo E FlosiItaly2024-03-27Buckley Miller Wright NEGOTIATION16Ioni Bowcher
1012Isabel U RimRussia2024-03-24Rousseaux, Michael Esq NEW46Stephen Shaw
1013Arvin K GlickCanada2024-04-04Dorl, James J Esq PROPOSAL95Onyama Limba
1014Morrow F KolmetzJapan2024-03-27Buckley Miller Wright RENEWAL65Ioni Bowcher
1015Maisha I WaycottItaly2024-03-31King, Christopher A Esq RENEWAL22Elwin Sharvill
1016Aruna B SaylorsUnited Kingdom2024-04-11Benton, John B Jr PROPOSAL20Asiya Javayant
1017Emily F MarrierRussia2024-03-22Chapman, Ross E Esq NEGOTIATION78Anna Fali
1018Aika A AmigonIndia2024-03-25Commercial Press UNQUALIFIED17Stephen Shaw
1019Stacey X InouyeJapan2024-04-08Printing Dimensions RENEWAL69Amy Elsner
1020Ashley I DarakjySpain2024-04-17Feiner Bros NEGOTIATION9Xuxue Feng
1021Munro G BologniaItaly2024-03-29Dorl, James J Esq NEW10Bernardo Dominic
1022Greenwood V PaprockiIndia2024-03-27Truhlar And Truhlar Attys NEGOTIATION91Xuxue Feng
1023Salvatore Y WaycottRussia2024-03-21Benton, John B Jr PROPOSAL19Stephen Shaw
1024Kaitlin A InouyeAustralia2024-04-02Buckley Miller Wright NEGOTIATION4Stephen Shaw
1025Julie W WieserCanada2024-03-29Feltz Printing Service NEGOTIATION52Bernardo Dominic
1026Octavia U FerenczUnited Kingdom2024-04-13Benton, John B Jr UNQUALIFIED51Asiya Javayant
1027Ashley E NickaArgentina2024-03-31Rousseaux, Michael Esq PROPOSAL26Stephen Shaw
1028Morrow V RoysterItaly2024-04-16Truhlar And Truhlar Attys NEW62Ioni Bowcher
1029Jennifer B GillianAustralia2024-03-27Buckley Miller Wright PROPOSAL28Ioni Bowcher
1030Mujtaba Y StockhamBrazil2024-03-20Morlong Associates QUALIFIED26Bernardo Dominic
1031Ricardo G ChuiAustralia2024-04-17Feiner Bros UNQUALIFIED1Ioni Bowcher
1032Faith X MacleadCanada2024-03-29Rangoni Of Florence RENEWAL18Elwin Sharvill
1033Ashley H RulapaughJapan2024-03-26Buckley Miller Wright NEW89Ioni Bowcher
1034Aika A FerenczRussia2024-03-26Chemel, James L Cpa UNQUALIFIED18Anna Fali
1035Stacey Q FigeroaFrance2024-03-22Truhlar And Truhlar Attys NEGOTIATION68Ivan Magalhaes
1036Costa F FigeroaIndia2024-03-25Chemel, James L Cpa RENEWAL14Amy Elsner
1037Misaki L FlosiSpain2024-03-30King, Christopher A Esq NEGOTIATION32Bernardo Dominic
1038David A KolmetzFrance2024-04-17Chemel, James L Cpa UNQUALIFIED25Ivan Magalhaes
1039Aruna X CaldareraItaly2024-03-20Rangoni Of Florence UNQUALIFIED52Xuxue Feng
1040Octavia H RoysterJapan2024-04-16King, Christopher A Esq PROPOSAL38Amy Elsner
1041Adams R BologniaIndia2024-04-01Commercial Press UNQUALIFIED91Elwin Sharvill
1042Leon L BriddickJapan2024-04-07Chemel, James L Cpa QUALIFIED77Asiya Javayant
1043Alejandro G SaylorsUnited Kingdom2024-03-22Feiner Bros RENEWAL21Bernardo Dominic
1044Leja B InouyeRussia2024-04-10Chapman, Ross E Esq RENEWAL91Anna Fali
1045Salvatore W KuskoAustralia2024-04-06Feiner Bros PROPOSAL92Amy Elsner
1046Sinclair X BowleyBrazil2024-04-06Printing Dimensions UNQUALIFIED43Stephen Shaw
1047Alejandro A KuskoCanada2024-04-04Feiner Bros PROPOSAL27Stephen Shaw
1048Sinclair V MaletSpain2024-04-14Chapman, Ross E Esq NEGOTIATION68Stephen Shaw
1049Arvin R BriddickRussia2024-04-07Benton, John B Jr UNQUALIFIED67Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ricardo W RimGermanyAnna Fali NEGOTIATION
Deepesh N PaprockiRussiaOnyama Limba PROPOSAL
Ricardo P AmigonGermanyAsiya Javayant NEW
Izzy F PerinJapanIvan Magalhaes QUALIFIED
Cody P InouyeItalyXuxue Feng RENEWAL
Cody X NestleItalyIvan Magalhaes NEGOTIATION
Darci E SlusarskiBrazilIvan Magalhaes PROPOSAL
Izzy S VocelkaRussiaStephen Shaw NEGOTIATION
Arvin O StensethRussiaElwin Sharvill PROPOSAL
Johnson X DilliardItalyOnyama Limba NEW
Juan D GarufiUnited KingdomAsiya Javayant NEGOTIATION
Silvio Q KolmetzBrazilStephen Shaw PROPOSAL
David C KuskoBrazilIoni Bowcher PROPOSAL
Arvin N BriddickIndiaStephen Shaw RENEWAL
Smith F FigeroaItalyIvan Magalhaes PROPOSAL
Greenwood P CaldareraCanadaAnna Fali NEGOTIATION
Johnson Y BologniaSpainXuxue Feng PROPOSAL
Johnson S GauchoGermanyAnna Fali UNQUALIFIED
Kaitlin T GarufiCanadaStephen Shaw RENEWAL
Ashley K CaldareraItalyIoni Bowcher NEW
James V MorascaGermanyAnna Fali QUALIFIED
Salvatore O WhobreyCanadaAnna Fali NEW
Aruna M DoeUnited KingdomAsiya Javayant NEW
Aika H SlusarskiRussiaIvan Magalhaes RENEWAL
Morrow Y MarrierGermanyElwin Sharvill NEW
Tony U GillianSpainAnna Fali RENEWAL
James R OldroydAustraliaOnyama Limba NEGOTIATION
David L PaprockiArgentinaXuxue Feng RENEWAL
Clifford U NickaAustraliaIvan Magalhaes RENEWAL
Adams B IturbideFranceXuxue Feng QUALIFIED
Wickens B ShinkoArgentinaOnyama Limba UNQUALIFIED
Arvin G BowleyJapanElwin Sharvill QUALIFIED
Johnson W GillianUnited KingdomXuxue Feng PROPOSAL
Wickens R AlbaresUnited KingdomIoni Bowcher NEGOTIATION
Julie Y FlosiAustraliaAmy Elsner QUALIFIED
Morrow S VocelkaJapanAmy Elsner UNQUALIFIED
Julie T GarufiAustraliaIoni Bowcher UNQUALIFIED
Ashley J GlickBrazilOnyama Limba NEW
Francesco E KolmetzAustraliaStephen Shaw UNQUALIFIED
Antonio N RutaBrazilAmy Elsner QUALIFIED
Darci W DoeFranceOnyama Limba NEW
Julie R CampainCanadaStephen Shaw RENEWAL
Faith X ButtJapanAnna Fali UNQUALIFIED
Jennifer S CaudyIndiaAmy Elsner RENEWAL
Greenwood P PoquetteAustraliaAmy Elsner NEGOTIATION
Leja D MaletSpainAnna Fali NEGOTIATION
Mayumi W WhobreyArgentinaElwin Sharvill UNQUALIFIED
Misaki E RutaGermanyOnyama Limba NEW
Claire I DarakjyBrazilStephen Shaw RENEWAL
Nicolas D BowleyIndiaBernardo Dominic PROPOSAL
Frozen Columns
Name
Smith T Maclead
Ivar L Whobrey
Mayumi O Kusko
Kaitlin R Wieser
Deepesh V Saylors
Jeanfrancois H Venere
Adams G Flosi
Kadeem C Maclead
Nicolas C Inouye
Adams Z Iturbide
James T Darakjy
Ivar X Rim
Morrow M Morasca
Chavez R Ruta
Murillo R Figeroa
Cody P Flosi
Jennifer W Iturbide
Leon A Slusarski
Julie K Garufi
Wickens X Kusko
Emily H Gillian
Clifford E Whobrey
Clifford V Schemmer
Jones J Caldarera
Nicolas I Chui
Alejandro T Malet
Stacey Q Tollner
Johnson E Venere
Aruna S Rulapaugh
Jeanfrancois E Caldarera
Aruna O Ostrosky
Salvatore M Saylors
Emily W Stenseth
Smith R Marrier
Ivar D Glick
Francesco S Malet
Misaki Q Garufi
Antonio I Iturbide
Jones B Malet
Munro Z Foller
Antonio X Briddick
Munro Z Vocelka
Ivar H Briddick
Chavez Z Vocelka
Mayumi O Nicka
Ivar B Stockham
Arvin X Caudy
Misaki X Rulapaugh
Kaitlin T Sergi
Morrow R Morasca
IdCountryDate
1000Brazil2024-03-25
1001Australia2024-04-03
1002United Kingdom2024-04-17
1003Canada2024-03-28
1004Australia2024-04-15
1005United Kingdom2024-03-31
1006United Kingdom2024-04-18
1007Germany2024-04-04
1008Germany2024-04-14
1009France2024-03-25
1010Argentina2024-04-16
1011Italy2024-03-26
1012India2024-03-22
1013Germany2024-04-14
1014Spain2024-03-28
1015Spain2024-04-08
1016Canada2024-03-24
1017Italy2024-04-13
1018India2024-03-27
1019Canada2024-04-11
1020United Kingdom2024-03-23
1021India2024-04-01
1022Argentina2024-04-01
1023United Kingdom2024-04-06
1024India2024-04-08
1025Canada2024-03-25
1026Spain2024-03-31
1027India2024-03-21
1028Germany2024-04-07
1029Russia2024-03-25
1030Argentina2024-04-10
1031France2024-04-11
1032Russia2024-03-29
1033Japan2024-03-31
1034Spain2024-04-05
1035Germany2024-03-31
1036Brazil2024-04-09
1037Argentina2024-03-24
1038Japan2024-04-01
1039United Kingdom2024-03-31
1040Germany2024-03-25
1041Brazil2024-04-15
1042Germany2024-03-24
1043France2024-04-13
1044Germany2024-04-13
1045Australia2024-03-28
1046Australia2024-03-31
1047Canada2024-03-21
1048Russia2024-04-13
1049Canada2024-03-21

On-Demand Data

NameIdCountryDate
Izzy L Saylors1000United Kingdom2024-03-31
Munro R Whobrey1001Argentina2024-03-26
Alejandro U Sergi1002Italy2024-03-20
Faith C Whobrey1003Japan2024-04-07
Kadeem L Dilliard1004United Kingdom2024-04-01
Emily D Briddick1005Germany2024-04-03
Murillo N Butt1006Russia2024-04-15
Murillo X Wieser1007Australia2024-04-16
Julie S Figeroa1008France2024-04-15
Ashley I Bowley1009Brazil2024-04-12
Darci N Royster1010France2024-04-04
Faith D Tollner1011Germany2024-04-09
Jeanfrancois A Kolmetz1012Argentina2024-03-26
Wickens S Wieser1013Canada2024-04-17
Greenwood D Perin1014Argentina2024-03-31
Maria B Kusko1015France2024-04-15
Munro H Albares1016United Kingdom2024-04-04
Izzy N Oldroyd1017Spain2024-04-06
Darci B Figeroa1018Spain2024-04-06
David K Morasca1019Italy2024-03-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki E TollnerGermanyAmy Elsner QUALIFIED
Kaitlin J CampainGermanyAsiya Javayant NEGOTIATION
Kadeem E NestleRussiaBernardo Dominic NEW
Murillo N FollerFranceAnna Fali NEW
Deepesh J OstroskyItalyElwin Sharvill NEW
Johnson D RulapaughArgentinaAnna Fali QUALIFIED
Rodrigues X NestleAustraliaStephen Shaw QUALIFIED
Nicolas O FigeroaBrazilAmy Elsner NEGOTIATION
Ashley M TollnerArgentinaIvan Magalhaes RENEWAL
Emily Z NestleAustraliaAsiya Javayant PROPOSAL
Juan F GarufiJapanAnna Fali QUALIFIED
Ashley R PerinUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro P WieserIndiaIoni Bowcher QUALIFIED
Leja M PerinAustraliaAsiya Javayant UNQUALIFIED
Francesco E RulapaughItalyOnyama Limba PROPOSAL
Maria T TollnerGermanyStephen Shaw QUALIFIED
Arvin R WhobreyGermanyAmy Elsner RENEWAL
Juan Q InouyeJapanXuxue Feng UNQUALIFIED
Darci P NestleRussiaIvan Magalhaes NEGOTIATION
Octavia R WhobreyRussiaAsiya Javayant NEW
Jefferson P KolmetzArgentinaStephen Shaw UNQUALIFIED
Darci D KuskoRussiaAnna Fali NEGOTIATION
Jeanfrancois U RutaIndiaAmy Elsner NEGOTIATION
Mujtaba J WaycottCanadaElwin Sharvill NEGOTIATION
Aika U DilliardCanadaBernardo Dominic NEGOTIATION
Deepesh J StockhamJapanAsiya Javayant RENEWAL
Jones N PaprockiAustraliaAsiya Javayant NEW
Octavia K FerenczItalyAmy Elsner NEGOTIATION
Jefferson T SergiUnited KingdomXuxue Feng NEW
Clifford F CaldareraItalyElwin Sharvill UNQUALIFIED
Claire I ButtSpainIvan Magalhaes NEGOTIATION
Ashley K MaletBrazilBernardo Dominic UNQUALIFIED
Sinclair H TollnerGermanyBernardo Dominic QUALIFIED
Mujtaba M AmigonCanadaAsiya Javayant PROPOSAL
Octavia Y WieserRussiaOnyama Limba PROPOSAL
Maria S MaletArgentinaIvan Magalhaes NEW
Jennifer U RutaBrazilIvan Magalhaes NEGOTIATION
Kaitlin I AlbaresCanadaXuxue Feng NEW
Jennifer Y SchemmerGermanyStephen Shaw QUALIFIED
Faith E OldroydSpainElwin Sharvill 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>