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
James O BriddickUnited KingdomOnyama Limba NEGOTIATION
Smith A WaycottFranceIoni Bowcher RENEWAL
Julie F ButtArgentinaElwin Sharvill NEGOTIATION
Francesco E DarakjyRussiaIvan Magalhaes RENEWAL
Smith B StensethGermanyAmy Elsner UNQUALIFIED
Faith L SchemmerRussiaAsiya Javayant QUALIFIED
Maria B BowleyBrazilOnyama Limba QUALIFIED
Julie H FerenczArgentinaAnna Fali RENEWAL
Aruna F RulapaughItalyStephen Shaw RENEWAL
James Z RimJapanXuxue Feng NEW
Octavia B BriddickAustraliaAnna Fali NEW
Aruna O StensethIndiaStephen Shaw UNQUALIFIED
Octavia O RoysterGermanyAnna Fali NEW
Misaki X GauchoBrazilElwin Sharvill NEGOTIATION
Arvin T FlosiJapanElwin Sharvill UNQUALIFIED
David G StockhamGermanyElwin Sharvill NEGOTIATION
Cody D RulapaughSpainElwin Sharvill NEW
Antonio H MaletArgentinaXuxue Feng NEGOTIATION
Adams A RimSpainIvan Magalhaes UNQUALIFIED
Juan S MacleadIndiaXuxue Feng UNQUALIFIED
Aika M SaylorsGermanyIoni Bowcher UNQUALIFIED
James K GlickAustraliaBernardo Dominic PROPOSAL
Leja P InouyeIndiaElwin Sharvill NEW
Kadeem B BologniaFranceAsiya Javayant UNQUALIFIED
Julie T MaletFranceElwin Sharvill UNQUALIFIED
Silvio L SergiFranceOnyama Limba RENEWAL
Ivar Z RimGermanyOnyama Limba NEW
Nicolas C WhobreyCanadaIvan Magalhaes RENEWAL
Johnson G GarufiUnited KingdomAnna Fali PROPOSAL
Claire C AlbaresSpainIvan Magalhaes NEW
Francesco K RulapaughUnited KingdomAmy Elsner UNQUALIFIED
David N CaldareraJapanIoni Bowcher QUALIFIED
Leja F NestleItalyElwin Sharvill NEW
Jefferson H CaudySpainElwin Sharvill RENEWAL
Octavia T WaycottJapanIoni Bowcher UNQUALIFIED
Maria U PaprockiUnited KingdomElwin Sharvill QUALIFIED
Chavez Y PerinBrazilStephen Shaw NEGOTIATION
Misaki B KolmetzRussiaElwin Sharvill NEGOTIATION
Clifford O OldroydArgentinaOnyama Limba PROPOSAL
Greenwood S DarakjyUnited KingdomIvan Magalhaes NEGOTIATION
David Q ShinkoSpainOnyama Limba NEGOTIATION
Julie Y GauchoIndiaBernardo Dominic QUALIFIED
Leon A NestleIndiaIoni Bowcher NEGOTIATION
Greenwood N MorascaCanadaAmy Elsner NEGOTIATION
Faith W KuskoAustraliaAnna Fali NEGOTIATION
Jeanfrancois E SergiRussiaAnna Fali RENEWAL
Octavia N RutaFranceAsiya Javayant NEGOTIATION
Kaitlin F GlickRussiaIvan Magalhaes NEW
Ashley H InouyeBrazilXuxue Feng RENEWAL
Silvio J VenereItalyAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Antonio F StensethCanadaStephen Shaw NEW
Deepesh W MaletRussiaIvan Magalhaes RENEWAL
Rodrigues E ButtGermanyAmy Elsner PROPOSAL
Johnson R VenereFranceIvan Magalhaes QUALIFIED
Emily U GlickIndiaAmy Elsner UNQUALIFIED
Rodrigues R AmigonJapanIoni Bowcher QUALIFIED
Mayumi H AlbaresIndiaStephen Shaw NEW
Aika K CaudyRussiaBernardo Dominic PROPOSAL
Julie Z MaletRussiaStephen Shaw QUALIFIED
Faith Q PerinSpainElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia M VenereItaly2024-04-17Feltz Printing Service NEW72Asiya Javayant
1001Ivar K GarufiBrazil2024-04-02Chapman, Ross E Esq UNQUALIFIED41Anna Fali
1002Jeanfrancois U StockhamItaly2024-04-04Chanay, Jeffrey A Esq PROPOSAL18Ioni Bowcher
1003David P SchemmerBrazil2024-04-24Truhlar And Truhlar Attys UNQUALIFIED2Amy Elsner
1004Adams M RulapaughRussia2024-04-04Truhlar And Truhlar Attys NEGOTIATION55Amy Elsner
1005Sinclair F SaylorsJapan2024-04-23Truhlar And Truhlar Attys RENEWAL12Onyama Limba
1006Izzy C WhobreyIndia2024-04-08Rousseaux, Michael Esq QUALIFIED91Ivan Magalhaes
1007Emily A AlbaresCanada2024-04-06Morlong Associates QUALIFIED0Ioni Bowcher
1008Maisha I MacleadFrance2024-04-03Feiner Bros PROPOSAL46Bernardo Dominic
1009Rodrigues Z SchemmerItaly2024-04-02Feiner Bros RENEWAL9Elwin Sharvill
1010Mayumi K SchemmerUnited Kingdom2024-04-18Benton, John B Jr NEGOTIATION45Onyama Limba
1011Cody H PerinJapan2024-04-21Chapman, Ross E Esq NEGOTIATION97Xuxue Feng
1012Ivar B ChuiItaly2024-04-07King, Christopher A Esq RENEWAL88Ioni Bowcher
1013Francesco C AmigonItaly2024-04-09Rangoni Of Florence NEGOTIATION15Anna Fali
1014Claire A WieserAustralia2024-04-08Benton, John B Jr QUALIFIED70Anna Fali
1015Alejandro B StensethFrance2024-03-31Feiner Bros QUALIFIED18Bernardo Dominic
1016Murillo H IturbideUnited Kingdom2024-03-30Chemel, James L Cpa QUALIFIED81Onyama Limba
1017Misaki H OstroskyJapan2024-04-01King, Christopher A Esq UNQUALIFIED65Bernardo Dominic
1018Nicolas S OldroydAustralia2024-03-27Chemel, James L Cpa NEW34Xuxue Feng
1019James N TollnerCanada2024-04-14Buckley Miller Wright UNQUALIFIED85Anna Fali
1020Kaitlin J VocelkaFrance2024-04-12Dorl, James J Esq RENEWAL87Asiya Javayant
1021Rodrigues Q IturbideBrazil2024-04-22Buckley Miller Wright QUALIFIED73Xuxue Feng
1022Sinclair P DilliardCanada2024-03-29Chanay, Jeffrey A Esq NEW99Stephen Shaw
1023Smith Q MarrierJapan2024-03-27Chapman, Ross E Esq NEW20Ioni Bowcher
1024Stacey M GauchoUnited Kingdom2024-04-12Feltz Printing Service NEW67Anna Fali
1025Leja U BriddickAustralia2024-04-07Morlong Associates PROPOSAL31Anna Fali
1026Greenwood V PerinSpain2024-04-21Chemel, James L Cpa NEGOTIATION96Ioni Bowcher
1027Munro C DoeGermany2024-04-23Feltz Printing Service PROPOSAL62Ioni Bowcher
1028Ivar N GarufiJapan2024-04-21Feltz Printing Service NEW72Onyama Limba
1029Claire G IturbideJapan2024-04-24Truhlar And Truhlar Attys NEW85Onyama Limba
1030Clifford Q FerenczItaly2024-04-06Chemel, James L Cpa NEW86Ivan Magalhaes
1031Kadeem M GarufiAustralia2024-04-17Commercial Press PROPOSAL79Bernardo Dominic
1032Emily T MarrierItaly2024-04-15Chemel, James L Cpa UNQUALIFIED93Ioni Bowcher
1033Murillo I WieserCanada2024-04-17Morlong Associates NEGOTIATION64Asiya Javayant
1034Aika U CaudyFrance2024-03-31Rangoni Of Florence NEGOTIATION44Ioni Bowcher
1035Deepesh O SaylorsIndia2024-03-29Feiner Bros PROPOSAL27Ivan Magalhaes
1036James W VenereRussia2024-03-27Morlong Associates RENEWAL8Amy Elsner
1037Johnson U RoysterGermany2024-04-07Printing Dimensions PROPOSAL35Bernardo Dominic
1038Misaki V StensethAustralia2024-04-19Chanay, Jeffrey A Esq NEW20Asiya Javayant
1039Costa O NickaFrance2024-04-22Benton, John B Jr UNQUALIFIED14Xuxue Feng
1040Ivar M RutaFrance2024-04-05Chapman, Ross E Esq UNQUALIFIED13Asiya Javayant
1041Deepesh J VocelkaFrance2024-04-19Chapman, Ross E Esq NEGOTIATION72Stephen Shaw
1042Johnson Y SaylorsJapan2024-04-22Dorl, James J Esq QUALIFIED29Bernardo Dominic
1043Sinclair K RutaRussia2024-04-25Commercial Press QUALIFIED87Asiya Javayant
1044Stacey C ButtSpain2024-04-09Dorl, James J Esq NEW13Xuxue Feng
1045Clifford L WieserRussia2024-04-17Buckley Miller Wright QUALIFIED44Asiya Javayant
1046Leja S FerenczItaly2024-03-30Commercial Press NEW79Bernardo Dominic
1047Munro U OstroskySpain2024-04-01Morlong Associates NEW84Onyama Limba
1048Arvin Q AlbaresArgentina2024-04-12Feiner Bros UNQUALIFIED74Ioni Bowcher
1049Nicolas L AmigonJapan2024-04-21Rangoni Of Florence NEGOTIATION67Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Tony C RimBrazilAsiya Javayant NEW
Aditya Z DoeFranceElwin Sharvill NEGOTIATION
Isabel L DoeCanadaIoni Bowcher UNQUALIFIED
Nicolas D RimJapanIvan Magalhaes UNQUALIFIED
Leon I RoysterJapanStephen Shaw QUALIFIED
Salvatore N NestleItalyBernardo Dominic RENEWAL
Maisha L OstroskyBrazilIvan Magalhaes RENEWAL
Ricardo O NickaRussiaOnyama Limba RENEWAL
Antonio G RimRussiaAnna Fali QUALIFIED
Francesco S AmigonSpainAnna Fali QUALIFIED
Chavez Z MaletAustraliaXuxue Feng QUALIFIED
Juan R GillianIndiaAnna Fali NEGOTIATION
Adams Z ButtUnited KingdomElwin Sharvill RENEWAL
Mayumi L BologniaSpainAsiya Javayant UNQUALIFIED
Johnson H WieserGermanyIvan Magalhaes NEGOTIATION
Octavia T FlosiBrazilAmy Elsner RENEWAL
Juan S MacleadUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore E IturbideUnited KingdomElwin Sharvill RENEWAL
Francesco O CaudyJapanBernardo Dominic RENEWAL
Alejandro I DilliardUnited KingdomOnyama Limba NEW
Kaitlin V MarrierUnited KingdomIvan Magalhaes NEGOTIATION
Izzy K DilliardCanadaAmy Elsner UNQUALIFIED
Ashley A IturbideArgentinaIoni Bowcher QUALIFIED
Isabel S RulapaughRussiaAmy Elsner RENEWAL
Tony Q VocelkaIndiaIvan Magalhaes PROPOSAL
Juan Q DarakjyRussiaOnyama Limba NEGOTIATION
Munro O IturbideSpainIvan Magalhaes RENEWAL
Antonio L FlosiJapanStephen Shaw NEW
Antonio G GlickBrazilIvan Magalhaes PROPOSAL
Mayumi Y GauchoUnited KingdomAnna Fali NEGOTIATION
Tony W CaudySpainOnyama Limba QUALIFIED
Stacey Q KolmetzAustraliaXuxue Feng UNQUALIFIED
Tony W WaycottIndiaAnna Fali UNQUALIFIED
Maisha G InouyeUnited KingdomAsiya Javayant UNQUALIFIED
Cody S PerinJapanIoni Bowcher QUALIFIED
Jeanfrancois F BowleyGermanyIoni Bowcher RENEWAL
Jones L KuskoItalyOnyama Limba NEW
Ashley V SaylorsItalyAmy Elsner NEW
Darci S CampainRussiaAmy Elsner RENEWAL
Kaitlin E IturbideFranceXuxue Feng RENEWAL
Maria S BowleyGermanyOnyama Limba NEGOTIATION
Smith U KolmetzArgentinaStephen Shaw NEGOTIATION
Claire S GlickItalyStephen Shaw PROPOSAL
Ivar D MarrierCanadaAsiya Javayant QUALIFIED
Emily G VocelkaJapanStephen Shaw RENEWAL
Munro E FlosiGermanyElwin Sharvill RENEWAL
Jefferson U AmigonUnited KingdomAmy Elsner NEW
David B MaletItalyXuxue Feng UNQUALIFIED
Adams I IturbideCanadaElwin Sharvill NEW
Ricardo T FollerUnited KingdomAsiya Javayant PROPOSAL
Frozen Columns
Name
Silvio R Flosi
Chavez W Gillian
Tony X Venere
Aditya B Tollner
Mujtaba R Caldarera
Darci A Doe
Adams H Gillian
Smith Y Nicka
Jefferson C Ruta
Francesco E Slusarski
Rodrigues S Saylors
Sinclair Q Rulapaugh
Kadeem R Iturbide
Aika Z Briddick
Alejandro T Albares
Salvatore O Waycott
Mujtaba V Butt
Maria D Flosi
Francesco Z Slusarski
Alejandro R Oldroyd
Stacey K Schemmer
Ivar Z Venere
Munro H Inouye
Deepesh Y Gaucho
Izzy T Morasca
Maisha T Rulapaugh
Salvatore A Malet
Costa M Foller
Nicolas N Flosi
Stacey L Schemmer
Kadeem H Butt
Rodrigues V Morasca
Jefferson A Flosi
Clifford H Kolmetz
Darci O Venere
Stacey O Caudy
Maisha S Flosi
Octavia F Whobrey
Claire B Royster
David H Amigon
Jeanfrancois M Saylors
Chavez Q Amigon
Smith X Sergi
Kadeem O Nestle
Murillo K Nestle
Greenwood I Whobrey
Mujtaba P Doe
Smith X Caldarera
Octavia P Inouye
Munro S Caldarera
IdCountryDate
1000India2024-04-07
1001United Kingdom2024-04-03
1002France2024-04-05
1003Japan2024-04-07
1004Australia2024-04-04
1005France2024-03-29
1006Spain2024-04-01
1007Australia2024-04-17
1008Argentina2024-04-22
1009Japan2024-04-03
1010Australia2024-04-22
1011Argentina2024-04-24
1012United Kingdom2024-04-07
1013Spain2024-03-31
1014Brazil2024-04-04
1015United Kingdom2024-03-27
1016Canada2024-04-10
1017Russia2024-04-18
1018Argentina2024-04-12
1019Italy2024-04-11
1020Argentina2024-04-04
1021Spain2024-04-04
1022United Kingdom2024-04-25
1023India2024-04-09
1024Canada2024-03-27
1025Japan2024-04-09
1026Japan2024-04-01
1027India2024-04-06
1028Australia2024-04-13
1029Spain2024-04-16
1030Argentina2024-04-20
1031India2024-04-24
1032Japan2024-04-09
1033France2024-04-20
1034Germany2024-04-11
1035India2024-03-29
1036Japan2024-04-16
1037France2024-04-06
1038United Kingdom2024-04-17
1039Brazil2024-04-19
1040United Kingdom2024-04-13
1041Russia2024-04-15
1042Spain2024-04-04
1043Italy2024-04-20
1044Russia2024-04-21
1045Brazil2024-04-20
1046Spain2024-04-11
1047Japan2024-04-06
1048Japan2024-04-09
1049Spain2024-04-01

On-Demand Data

NameIdCountryDate
Jennifer L Shinko1000Italy2024-04-13
Claire O Kolmetz1001Canada2024-04-16
Ricardo Q Slusarski1002Germany2024-04-05
Ivar U Gillian1003Japan2024-04-07
Clifford I Ostrosky1004Australia2024-04-20
Antonio B Flosi1005France2024-03-28
Arvin B Foller1006Canada2024-04-19
Mayumi J Rim1007United Kingdom2024-04-10
Antonio Z Gillian1008India2024-04-05
Ashley B Wieser1009Italy2024-04-25
Emily T Vocelka1010Japan2024-04-13
Alejandro L Marrier1011Brazil2024-04-09
Izzy W Schemmer1012Germany2024-04-23
Clifford T Maclead1013India2024-04-04
Alejandro F Maclead1014France2024-04-22
Jeanfrancois C Bowley1015Russia2024-04-09
Ivar C Slusarski1016Australia2024-03-27
Salvatore E Venere1017Italy2024-04-18
Alejandro E Foller1018Argentina2024-03-28
Kadeem S Maclead1019Australia2024-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa L RoysterItalyIvan Magalhaes RENEWAL
Misaki E StensethIndiaAmy Elsner NEGOTIATION
Silvio P MarrierGermanyIoni Bowcher PROPOSAL
Misaki O NickaBrazilXuxue Feng RENEWAL
Izzy W DarakjyUnited KingdomBernardo Dominic PROPOSAL
Clifford J SergiJapanAnna Fali PROPOSAL
Nicolas E BriddickRussiaElwin Sharvill UNQUALIFIED
Francesco S ButtJapanAnna Fali QUALIFIED
Francesco J BologniaArgentinaAnna Fali NEW
Cody M FlosiArgentinaIoni Bowcher NEW
James I IturbideCanadaIoni Bowcher NEW
Stacey K DarakjySpainXuxue Feng PROPOSAL
Claire H PerinIndiaIvan Magalhaes PROPOSAL
Aika Q MacleadFranceBernardo Dominic NEGOTIATION
Alejandro O BowleySpainXuxue Feng NEW
Maria P NickaAustraliaIoni Bowcher UNQUALIFIED
Silvio Q AmigonBrazilAmy Elsner NEGOTIATION
Faith S DoeUnited KingdomAnna Fali RENEWAL
Sinclair J FerenczFranceElwin Sharvill RENEWAL
Mayumi M FigeroaIndiaIvan Magalhaes NEW
David O OstroskyFranceIvan Magalhaes UNQUALIFIED
Mujtaba T FollerAustraliaAsiya Javayant PROPOSAL
Darci S FerenczJapanOnyama Limba UNQUALIFIED
Jennifer V AmigonRussiaBernardo Dominic PROPOSAL
Juan A FlosiUnited KingdomAnna Fali UNQUALIFIED
Munro G BriddickAustraliaOnyama Limba NEGOTIATION
Tony A SergiAustraliaAsiya Javayant RENEWAL
Greenwood O CaldareraUnited KingdomAmy Elsner NEGOTIATION
Kadeem B FerenczSpainAnna Fali RENEWAL
Darci C DarakjyIndiaBernardo Dominic RENEWAL
Izzy E GillianAustraliaAsiya Javayant QUALIFIED
Clifford N WaycottJapanElwin Sharvill PROPOSAL
Tony D OstroskyItalyAsiya Javayant RENEWAL
Mujtaba N BowleyFranceStephen Shaw RENEWAL
Munro F ChuiArgentinaOnyama Limba RENEWAL
Leon N WhobreyBrazilAsiya Javayant PROPOSAL
Sinclair I WhobreyArgentinaAsiya Javayant NEGOTIATION
Jones Z ChuiAustraliaAmy Elsner RENEWAL
Claire Y MacleadSpainIvan Magalhaes QUALIFIED
Aruna K FlosiSpainAnna Fali NEGOTIATION

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