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
Greenwood D PoquetteFranceAsiya Javayant NEW
Jones L OstroskySpainElwin Sharvill QUALIFIED
Jefferson F FlosiArgentinaBernardo Dominic NEGOTIATION
Izzy W ChuiArgentinaIvan Magalhaes NEW
Darci M ShinkoSpainAnna Fali NEW
Morrow Q FigeroaUnited KingdomElwin Sharvill RENEWAL
Faith T RoysterItalyStephen Shaw NEGOTIATION
Octavia L AlbaresUnited KingdomBernardo Dominic QUALIFIED
Jennifer X DilliardIndiaElwin Sharvill PROPOSAL
Leja L FollerAustraliaAsiya Javayant UNQUALIFIED
Stacey N VenereUnited KingdomIvan Magalhaes PROPOSAL
Aika D SchemmerIndiaXuxue Feng NEGOTIATION
Ashley F DarakjyUnited KingdomBernardo Dominic RENEWAL
Misaki G MaletSpainXuxue Feng NEW
Emily J KolmetzItalyAmy Elsner QUALIFIED
Octavia J PerinJapanIoni Bowcher PROPOSAL
Nicolas D DarakjyItalyAnna Fali QUALIFIED
Jeanfrancois Y KuskoGermanyIvan Magalhaes RENEWAL
Mayumi G RoysterUnited KingdomElwin Sharvill NEGOTIATION
Octavia A RutaUnited KingdomIoni Bowcher QUALIFIED
Leon T FlosiIndiaIvan Magalhaes NEW
Juan Z BologniaAustraliaAsiya Javayant NEGOTIATION
Smith W OstroskyRussiaOnyama Limba PROPOSAL
Johnson X FlosiArgentinaIvan Magalhaes QUALIFIED
Chavez C RimRussiaAnna Fali NEGOTIATION
Juan M GarufiJapanAnna Fali PROPOSAL
Morrow R MarrierGermanyAnna Fali QUALIFIED
Rodrigues V RimCanadaIoni Bowcher NEW
Faith L BriddickUnited KingdomStephen Shaw NEW
Deepesh Y OstroskyJapanIvan Magalhaes UNQUALIFIED
Jeanfrancois G DoeUnited KingdomAmy Elsner RENEWAL
Claire I AlbaresJapanBernardo Dominic UNQUALIFIED
James I MarrierItalyBernardo Dominic PROPOSAL
Octavia N NickaUnited KingdomAnna Fali NEGOTIATION
Stacey C OldroydFranceAsiya Javayant QUALIFIED
Maria P KuskoBrazilStephen Shaw NEGOTIATION
Maisha L RutaBrazilBernardo Dominic RENEWAL
Isabel D WhobreyBrazilXuxue Feng PROPOSAL
Arvin Y RimItalyIoni Bowcher NEGOTIATION
Adams T RulapaughAustraliaAsiya Javayant NEW
Costa R RimArgentinaElwin Sharvill UNQUALIFIED
Adams M ButtIndiaElwin Sharvill PROPOSAL
Morrow R RulapaughSpainXuxue Feng RENEWAL
Aditya O AmigonSpainElwin Sharvill PROPOSAL
Greenwood B WaycottSpainXuxue Feng PROPOSAL
Ricardo Q GillianFranceBernardo Dominic NEW
Johnson U DoeIndiaAmy Elsner QUALIFIED
Octavia M StensethFranceElwin Sharvill QUALIFIED
Salvatore R WhobreyAustraliaBernardo Dominic RENEWAL
Nicolas V OstroskyIndiaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci U WieserCanadaElwin Sharvill QUALIFIED
Costa B BriddickCanadaElwin Sharvill RENEWAL
Ashley E BriddickIndiaElwin Sharvill NEW
Aditya O CaldareraSpainAnna Fali NEGOTIATION
Ricardo T RimGermanyIoni Bowcher NEW
Arvin A MaletFranceAmy Elsner NEGOTIATION
Munro T IturbideAustraliaAsiya Javayant QUALIFIED
Faith W SaylorsJapanStephen Shaw NEGOTIATION
Mayumi A KolmetzRussiaAmy Elsner PROPOSAL
Jefferson A CampainGermanyOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood K KuskoItaly2024-04-16Chanay, Jeffrey A Esq QUALIFIED38Ioni Bowcher
1001Faith J NestleArgentina2024-03-31Morlong Associates NEGOTIATION7Ivan Magalhaes
1002Jennifer U WaycottJapan2024-04-06Chemel, James L Cpa NEW88Xuxue Feng
1003Johnson N RimUnited Kingdom2024-04-04Dorl, James J Esq RENEWAL7Stephen Shaw
1004Costa Y TollnerJapan2024-04-12Chapman, Ross E Esq NEW11Onyama Limba
1005Salvatore T MaletUnited Kingdom2024-04-08Feltz Printing Service NEGOTIATION11Onyama Limba
1006Arvin F InouyeSpain2024-04-14Rangoni Of Florence RENEWAL9Ivan Magalhaes
1007Deepesh H RimItaly2024-04-16Rangoni Of Florence NEW61Amy Elsner
1008Isabel L GillianRussia2024-04-16Morlong Associates PROPOSAL29Amy Elsner
1009James C WieserIndia2024-04-08Buckley Miller Wright NEW85Ioni Bowcher
1010Cody F CampainRussia2024-04-06Morlong Associates NEGOTIATION35Amy Elsner
1011Adams G RulapaughIndia2024-04-05Chapman, Ross E Esq NEGOTIATION10Ioni Bowcher
1012Jefferson O WhobreyUnited Kingdom2024-04-07Chapman, Ross E Esq PROPOSAL41Elwin Sharvill
1013Deepesh B GarufiRussia2024-04-22Rousseaux, Michael Esq NEGOTIATION91Asiya Javayant
1014Cody A RoysterFrance2024-04-01Commercial Press NEW57Ioni Bowcher
1015Aditya D VenereSpain2024-04-17Benton, John B Jr NEW78Ioni Bowcher
1016Salvatore U NickaSpain2024-03-30Chanay, Jeffrey A Esq QUALIFIED85Ioni Bowcher
1017Kadeem K VenereArgentina2024-04-10Benton, John B Jr RENEWAL99Anna Fali
1018Aditya Y CaudyGermany2024-04-24Chapman, Ross E Esq UNQUALIFIED86Elwin Sharvill
1019Mujtaba W VenereItaly2024-04-15Chemel, James L Cpa NEW23Anna Fali
1020Costa F GauchoCanada2024-04-18Feiner Bros RENEWAL78Asiya Javayant
1021Aditya G DarakjyRussia2024-03-31King, Christopher A Esq RENEWAL60Anna Fali
1022Munro H WhobreyAustralia2024-04-11Commercial Press RENEWAL1Amy Elsner
1023Nicolas C StockhamGermany2024-04-11King, Christopher A Esq PROPOSAL21Ioni Bowcher
1024Octavia V WhobreyAustralia2024-04-18Dorl, James J Esq UNQUALIFIED91Elwin Sharvill
1025James C OstroskyIndia2024-03-28Morlong Associates RENEWAL75Amy Elsner
1026Leon B WaycottSpain2024-04-05Rousseaux, Michael Esq NEGOTIATION2Ioni Bowcher
1027David V GlickGermany2024-04-17Printing Dimensions NEW55Ivan Magalhaes
1028Izzy Q OstroskyBrazil2024-04-05Truhlar And Truhlar Attys NEGOTIATION31Bernardo Dominic
1029Antonio W CaudyCanada2024-04-19Dorl, James J Esq QUALIFIED44Onyama Limba
1030Deepesh S SchemmerRussia2024-04-22Buckley Miller Wright QUALIFIED82Ivan Magalhaes
1031Adams P ButtSpain2024-04-05Commercial Press NEW20Onyama Limba
1032Kaitlin N MacleadBrazil2024-03-28Chemel, James L Cpa NEW62Elwin Sharvill
1033Morrow C FlosiSpain2024-04-18Benton, John B Jr RENEWAL84Bernardo Dominic
1034Ivar P GarufiSpain2024-04-20Buckley Miller Wright PROPOSAL36Bernardo Dominic
1035Salvatore H CaudyBrazil2024-04-26Rangoni Of Florence UNQUALIFIED49Stephen Shaw
1036Morrow D TollnerBrazil2024-04-25Printing Dimensions PROPOSAL71Ivan Magalhaes
1037Juan F DilliardJapan2024-04-01King, Christopher A Esq NEGOTIATION76Onyama Limba
1038Clifford A WaycottRussia2024-04-18Truhlar And Truhlar Attys RENEWAL3Anna Fali
1039Salvatore U BowleySpain2024-04-19Chemel, James L Cpa QUALIFIED93Stephen Shaw
1040Salvatore Y ChuiArgentina2024-03-31Dorl, James J Esq NEW70Elwin Sharvill
1041Greenwood L MacleadCanada2024-04-15Feltz Printing Service QUALIFIED34Elwin Sharvill
1042Leja R RoysterGermany2024-04-24Benton, John B Jr NEGOTIATION85Xuxue Feng
1043Emily W SaylorsSpain2024-04-06Feiner Bros NEGOTIATION38Elwin Sharvill
1044Stacey W RutaGermany2024-03-30Morlong Associates RENEWAL48Anna Fali
1045Francesco T MarrierJapan2024-04-05King, Christopher A Esq QUALIFIED73Elwin Sharvill
1046Morrow X FlosiBrazil2024-03-29Rangoni Of Florence UNQUALIFIED66Anna Fali
1047Izzy G WieserRussia2024-04-21Feiner Bros NEW35Amy Elsner
1048Julie C CampainSpain2024-04-09Chapman, Ross E Esq NEW88Onyama Limba
1049Antonio B FigeroaSpain2024-04-13Morlong Associates UNQUALIFIED34Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Maisha X CaudyBrazilAnna Fali NEW
Ricardo T StockhamAustraliaIvan Magalhaes PROPOSAL
Munro F BriddickAustraliaXuxue Feng UNQUALIFIED
Jones L MaletJapanAnna Fali QUALIFIED
Julie U SlusarskiAustraliaBernardo Dominic NEW
Morrow H AmigonRussiaXuxue Feng NEW
Costa G AlbaresAustraliaAmy Elsner NEW
Costa S GillianSpainIvan Magalhaes NEGOTIATION
Leja F AmigonGermanyIvan Magalhaes RENEWAL
Isabel L ChuiAustraliaAmy Elsner QUALIFIED
Jeanfrancois M ShinkoItalyAsiya Javayant PROPOSAL
Jefferson E DoeAustraliaStephen Shaw QUALIFIED
Kaitlin R FlosiJapanXuxue Feng NEGOTIATION
Ivar F FlosiCanadaXuxue Feng NEGOTIATION
Mujtaba W WieserUnited KingdomIvan Magalhaes NEGOTIATION
Izzy W PerinCanadaStephen Shaw NEW
Munro A AlbaresAustraliaIoni Bowcher UNQUALIFIED
Smith B PaprockiItalyIvan Magalhaes UNQUALIFIED
Murillo L WaycottArgentinaAnna Fali NEW
Johnson T SaylorsBrazilElwin Sharvill QUALIFIED
Leon Q GlickArgentinaElwin Sharvill NEW
Salvatore M ChuiBrazilIoni Bowcher PROPOSAL
Leja X NestleGermanyBernardo Dominic NEW
Aika A BriddickUnited KingdomAsiya Javayant NEW
David F GarufiArgentinaIoni Bowcher PROPOSAL
Claire D SaylorsFranceIoni Bowcher UNQUALIFIED
Maria U FigeroaIndiaOnyama Limba PROPOSAL
Jeanfrancois Q InouyeRussiaAmy Elsner QUALIFIED
Francesco K PerinArgentinaIoni Bowcher NEW
Darci N MorascaGermanyStephen Shaw NEW
Tony O WaycottCanadaBernardo Dominic UNQUALIFIED
Jefferson A CaudyCanadaXuxue Feng PROPOSAL
Silvio X OstroskyGermanyIoni Bowcher NEW
Nicolas T DarakjyItalyAsiya Javayant UNQUALIFIED
Aika H CampainAustraliaXuxue Feng PROPOSAL
Jennifer V FigeroaArgentinaIvan Magalhaes UNQUALIFIED
Francesco I OldroydRussiaOnyama Limba NEW
Deepesh J WhobreyUnited KingdomOnyama Limba NEGOTIATION
Smith B SchemmerArgentinaIoni Bowcher QUALIFIED
Kaitlin Y GlickCanadaAnna Fali RENEWAL
Juan Q NestleAustraliaXuxue Feng UNQUALIFIED
Jeanfrancois O CaudyGermanyAnna Fali QUALIFIED
James Q AlbaresBrazilBernardo Dominic PROPOSAL
Aditya U AmigonJapanAsiya Javayant QUALIFIED
Stacey W GarufiCanadaElwin Sharvill UNQUALIFIED
Ricardo M MacleadUnited KingdomAnna Fali QUALIFIED
Maria B CaldareraJapanIoni Bowcher QUALIFIED
Aika D BowleyIndiaBernardo Dominic PROPOSAL
Antonio X StensethSpainBernardo Dominic RENEWAL
Mujtaba V WieserRussiaOnyama Limba PROPOSAL
Frozen Columns
Name
Smith B Maclead
Arvin A Chui
Darci Y Waycott
Costa Q Perin
Maisha L Nicka
Jeanfrancois S Perin
Morrow Z Waycott
Clifford N Campain
Claire Y Foller
Adams X Butt
James L Whobrey
Cody I Bowley
Jennifer X Morasca
Alejandro Y Stenseth
Mayumi U Dilliard
Izzy C Rim
Stacey G Paprocki
Claire B Darakjy
Kaitlin D Caldarera
Emily D Oldroyd
Rodrigues O Ruta
Kaitlin R Dilliard
Darci G Morasca
Jeanfrancois X Whobrey
Aika N Perin
Jeanfrancois C Paprocki
Leja T Ferencz
Julie E Stenseth
Nicolas H Wieser
Ivar I Butt
Deepesh U Saylors
Deepesh S Perin
Emily S Glick
Arvin A Butt
Isabel X Gaucho
Julie C Whobrey
Claire K Nestle
Ashley C Kolmetz
Kadeem W Kusko
Octavia G Ostrosky
Stacey R Venere
Sinclair T Inouye
Kadeem G Marrier
Clifford L Dilliard
Ricardo I Bowley
Alejandro Q Bolognia
Octavia E Whobrey
Aika S Doe
Arvin U Poquette
Antonio E Waycott
IdCountryDate
1000Canada2024-04-08
1001India2024-04-25
1002Brazil2024-04-09
1003Brazil2024-04-08
1004Brazil2024-04-21
1005Canada2024-04-03
1006Canada2024-03-30
1007Japan2024-04-26
1008Australia2024-04-16
1009Spain2024-04-11
1010Japan2024-04-17
1011Argentina2024-04-23
1012India2024-03-31
1013India2024-04-14
1014United Kingdom2024-04-05
1015United Kingdom2024-04-13
1016Italy2024-04-12
1017France2024-03-30
1018Canada2024-04-25
1019United Kingdom2024-04-12
1020Russia2024-04-12
1021Brazil2024-04-08
1022Japan2024-04-19
1023United Kingdom2024-04-02
1024Italy2024-04-14
1025Argentina2024-04-19
1026Spain2024-04-12
1027Brazil2024-04-11
1028France2024-04-03
1029Japan2024-04-01
1030Italy2024-04-26
1031United Kingdom2024-04-23
1032Brazil2024-03-30
1033Brazil2024-04-09
1034India2024-04-12
1035Argentina2024-04-18
1036Argentina2024-03-28
1037Japan2024-04-10
1038Australia2024-04-13
1039Spain2024-04-01
1040Brazil2024-04-07
1041Argentina2024-04-09
1042United Kingdom2024-03-30
1043Germany2024-03-31
1044Italy2024-04-12
1045India2024-04-07
1046Spain2024-04-09
1047Italy2024-03-28
1048France2024-04-11
1049Germany2024-04-08

On-Demand Data

NameIdCountryDate
Claire L Glick1000Canada2024-03-29
David I Darakjy1001Australia2024-04-09
Leja V Iturbide1002India2024-04-15
Darci N Iturbide1003Brazil2024-04-14
Smith Y Albares1004Brazil2024-04-07
Murillo C Poquette1005Italy2024-04-15
Jones T Albares1006Japan2024-04-12
Deepesh T Doe1007India2024-04-05
Emily W Sergi1008France2024-03-30
Rodrigues W Stenseth1009Germany2024-04-21
Leja T Gaucho1010Canada2024-04-04
Leja N Wieser1011Argentina2024-04-22
Leon S Wieser1012Canada2024-04-24
Stacey Y Sergi1013Italy2024-04-19
Octavia G Ferencz1014United Kingdom2024-04-23
Chavez T Sergi1015Germany2024-03-28
Nicolas W Slusarski1016Argentina2024-04-03
Salvatore P Maclead1017Spain2024-03-29
Emily C Foller1018Italy2024-04-15
Clifford M Stenseth1019Brazil2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey Q WaycottRussiaStephen Shaw RENEWAL
Ashley L GillianIndiaXuxue Feng UNQUALIFIED
Smith Q VocelkaFranceAmy Elsner QUALIFIED
Jones Q IturbideCanadaStephen Shaw NEW
Aika C BologniaSpainIoni Bowcher RENEWAL
Maisha T BriddickJapanStephen Shaw NEW
Misaki H RoysterFranceAnna Fali NEGOTIATION
Deepesh J PoquetteAustraliaAmy Elsner RENEWAL
Greenwood V MaletArgentinaOnyama Limba UNQUALIFIED
Greenwood F ChuiIndiaStephen Shaw RENEWAL
Kaitlin Y ShinkoAustraliaAsiya Javayant PROPOSAL
Mayumi T MacleadFranceBernardo Dominic UNQUALIFIED
Kadeem S TollnerFranceElwin Sharvill QUALIFIED
Munro Y MaletRussiaAmy Elsner UNQUALIFIED
Izzy Y MaletIndiaStephen Shaw QUALIFIED
Sinclair N RimArgentinaXuxue Feng PROPOSAL
David J DarakjyAustraliaOnyama Limba QUALIFIED
Francesco E NestleAustraliaStephen Shaw RENEWAL
Jones D PoquetteItalyIvan Magalhaes QUALIFIED
Aditya V DarakjyJapanElwin Sharvill PROPOSAL
Ashley E SlusarskiUnited KingdomOnyama Limba NEGOTIATION
Kaitlin H PaprockiRussiaAsiya Javayant NEGOTIATION
Jeanfrancois J BowleyArgentinaAnna Fali NEGOTIATION
David P CaudyArgentinaAsiya Javayant NEW
Antonio B CampainFranceStephen Shaw NEW
Deepesh W RoysterFranceElwin Sharvill PROPOSAL
Aditya Y RimGermanyElwin Sharvill PROPOSAL
Aika D PaprockiSpainAsiya Javayant UNQUALIFIED
Kadeem Z VenereFranceOnyama Limba RENEWAL
Aditya I ChuiAustraliaAnna Fali QUALIFIED
Salvatore X FlosiRussiaIoni Bowcher QUALIFIED
Claire M PerinIndiaXuxue Feng PROPOSAL
Francesco I RimArgentinaIvan Magalhaes QUALIFIED
Salvatore E MarrierJapanXuxue Feng NEW
Rodrigues Q OstroskyUnited KingdomXuxue Feng RENEWAL
Ivar B PaprockiAustraliaStephen Shaw PROPOSAL
Cody A CaldareraAustraliaIoni Bowcher NEW
Maria D RutaGermanyStephen Shaw NEW
Ricardo D BriddickCanadaElwin Sharvill RENEWAL
Antonio B AlbaresItalyAmy Elsner 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>