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
Julie Y KolmetzSpainStephen Shaw UNQUALIFIED
Aruna T DilliardIndiaElwin Sharvill UNQUALIFIED
David K AmigonRussiaStephen Shaw PROPOSAL
Aruna N RoysterGermanyIvan Magalhaes RENEWAL
Arvin R NickaIndiaBernardo Dominic UNQUALIFIED
Jefferson W NickaRussiaAnna Fali UNQUALIFIED
James T GarufiGermanyBernardo Dominic RENEWAL
Julie X NestleFranceIvan Magalhaes PROPOSAL
Greenwood I SergiGermanyOnyama Limba NEGOTIATION
Silvio Q MaletIndiaAnna Fali NEGOTIATION
Kaitlin S PaprockiBrazilOnyama Limba RENEWAL
Murillo T ButtAustraliaAmy Elsner RENEWAL
Leja G GlickSpainIvan Magalhaes QUALIFIED
Faith I BowleyJapanAnna Fali NEW
Jennifer R DarakjyUnited KingdomElwin Sharvill NEW
Misaki C BologniaSpainIoni Bowcher UNQUALIFIED
Julie M GlickArgentinaOnyama Limba RENEWAL
Aruna B PerinFranceIvan Magalhaes UNQUALIFIED
Tony L FlosiAustraliaIvan Magalhaes RENEWAL
Kadeem W PerinUnited KingdomAsiya Javayant UNQUALIFIED
Francesco N GlickArgentinaBernardo Dominic RENEWAL
Maria D DilliardItalyAsiya Javayant NEW
Antonio P SchemmerBrazilElwin Sharvill NEW
Cody O RoysterJapanElwin Sharvill NEGOTIATION
Aditya U GlickIndiaXuxue Feng QUALIFIED
Maisha O DoeItalyIvan Magalhaes UNQUALIFIED
Maria T SlusarskiJapanIvan Magalhaes RENEWAL
Greenwood R ShinkoSpainStephen Shaw NEGOTIATION
Deepesh M MarrierArgentinaOnyama Limba QUALIFIED
Stacey E RimIndiaElwin Sharvill PROPOSAL
Ivar S FerenczBrazilAsiya Javayant NEGOTIATION
Sinclair S GauchoIndiaXuxue Feng QUALIFIED
Ivar B ButtItalyIvan Magalhaes RENEWAL
Salvatore B StockhamArgentinaXuxue Feng PROPOSAL
Morrow S StockhamGermanyElwin Sharvill RENEWAL
Leja V KolmetzBrazilXuxue Feng NEW
Rodrigues X VocelkaFranceStephen Shaw NEW
Morrow H CaldareraGermanyBernardo Dominic QUALIFIED
Ricardo A NickaSpainAnna Fali RENEWAL
Munro S PerinGermanyAnna Fali NEGOTIATION
Adams U MaletSpainIvan Magalhaes UNQUALIFIED
Alejandro W DoeRussiaElwin Sharvill NEW
Jefferson Q SergiGermanyOnyama Limba NEGOTIATION
Darci E OstroskyCanadaElwin Sharvill QUALIFIED
Wickens T RoysterCanadaXuxue Feng NEW
Jefferson Y PoquetteJapanAmy Elsner RENEWAL
Adams I OldroydFranceAnna Fali RENEWAL
Aika T FerenczSpainXuxue Feng UNQUALIFIED
Silvio T KolmetzJapanBernardo Dominic UNQUALIFIED
Jennifer Z MorascaUnited KingdomIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aika D NestleRussiaXuxue Feng NEGOTIATION
Alejandro W ChuiItalyAmy Elsner UNQUALIFIED
Morrow Y AmigonRussiaIoni Bowcher QUALIFIED
Aika J VocelkaFranceStephen Shaw NEW
Ricardo I StockhamCanadaAnna Fali NEW
Morrow O GillianFranceXuxue Feng RENEWAL
Ricardo O InouyeUnited KingdomOnyama Limba QUALIFIED
Kaitlin J WhobreyGermanyIoni Bowcher NEW
Maria H DilliardRussiaOnyama Limba QUALIFIED
Kadeem A ButtArgentinaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci I CaudyUnited Kingdom2024-04-01Morlong Associates UNQUALIFIED7Stephen Shaw
1001Alejandro G GauchoGermany2024-04-20Printing Dimensions UNQUALIFIED83Anna Fali
1002Ricardo M TollnerJapan2024-04-08Commercial Press RENEWAL99Ivan Magalhaes
1003Munro W StockhamIndia2024-04-18Morlong Associates RENEWAL95Onyama Limba
1004Stacey X BologniaJapan2024-04-16Morlong Associates PROPOSAL37Amy Elsner
1005Johnson Q VenereCanada2024-04-09King, Christopher A Esq PROPOSAL4Onyama Limba
1006Tony O FollerCanada2024-04-03Printing Dimensions QUALIFIED13Elwin Sharvill
1007Smith L BologniaJapan2024-04-28Feiner Bros UNQUALIFIED6Xuxue Feng
1008Ashley M PaprockiBrazil2024-04-11Printing Dimensions QUALIFIED19Ivan Magalhaes
1009Jeanfrancois L OstroskyAustralia2024-04-11Commercial Press PROPOSAL70Xuxue Feng
1010Izzy G ShinkoBrazil2024-04-26Chanay, Jeffrey A Esq NEW61Amy Elsner
1011Arvin H CaldareraCanada2024-03-31Commercial Press QUALIFIED72Ioni Bowcher
1012David G FollerFrance2024-04-11Morlong Associates PROPOSAL78Bernardo Dominic
1013Munro R SaylorsIndia2024-04-18King, Christopher A Esq PROPOSAL55Asiya Javayant
1014Jeanfrancois X VocelkaCanada2024-04-01Feltz Printing Service QUALIFIED48Onyama Limba
1015Leon J CaldareraFrance2024-04-23Chemel, James L Cpa NEW26Anna Fali
1016Murillo Z WhobreyArgentina2024-04-04Buckley Miller Wright NEW4Ivan Magalhaes
1017Maisha J KolmetzUnited Kingdom2024-04-09Feltz Printing Service RENEWAL76Stephen Shaw
1018Stacey X MaletItaly2024-04-25Dorl, James J Esq NEW99Onyama Limba
1019Ivar Q RulapaughGermany2024-04-03Rangoni Of Florence QUALIFIED76Onyama Limba
1020Deepesh W TollnerIndia2024-04-01Feiner Bros UNQUALIFIED95Elwin Sharvill
1021Mayumi U SchemmerUnited Kingdom2024-04-10Dorl, James J Esq RENEWAL74Xuxue Feng
1022Silvio G GillianItaly2024-04-20Truhlar And Truhlar Attys NEW90Elwin Sharvill
1023Costa X FollerRussia2024-04-27Truhlar And Truhlar Attys UNQUALIFIED26Ioni Bowcher
1024Juan M VocelkaItaly2024-04-19Chemel, James L Cpa QUALIFIED2Ioni Bowcher
1025Faith N MacleadSpain2024-04-24Rousseaux, Michael Esq QUALIFIED9Anna Fali
1026Aditya K GarufiJapan2024-04-21Dorl, James J Esq PROPOSAL51Ivan Magalhaes
1027Faith M MorascaSpain2024-04-10Benton, John B Jr NEW78Xuxue Feng
1028Munro G RulapaughArgentina2024-04-04Dorl, James J Esq QUALIFIED15Anna Fali
1029Costa A IturbideSpain2024-04-26Feiner Bros RENEWAL72Onyama Limba
1030Jeanfrancois R KolmetzFrance2024-04-20Dorl, James J Esq NEW59Elwin Sharvill
1031Leon F RutaUnited Kingdom2024-04-16Chemel, James L Cpa UNQUALIFIED9Stephen Shaw
1032Mujtaba F KuskoGermany2024-03-31Morlong Associates QUALIFIED86Asiya Javayant
1033Arvin F RulapaughItaly2024-04-15Benton, John B Jr QUALIFIED76Stephen Shaw
1034Maria C CampainIndia2024-04-21Feltz Printing Service NEW39Asiya Javayant
1035Isabel L IturbideRussia2024-04-11Rousseaux, Michael Esq NEW4Ioni Bowcher
1036Smith B MarrierArgentina2024-04-09Commercial Press QUALIFIED87Ioni Bowcher
1037Antonio G SergiBrazil2024-04-17Buckley Miller Wright PROPOSAL98Bernardo Dominic
1038Kadeem T MaletGermany2024-04-23Buckley Miller Wright UNQUALIFIED40Onyama Limba
1039Kadeem Q SlusarskiGermany2024-04-01Benton, John B Jr QUALIFIED85Amy Elsner
1040Ivar P WaycottIndia2024-04-17Commercial Press PROPOSAL47Stephen Shaw
1041Ashley R StensethFrance2024-04-28Feiner Bros NEW32Ioni Bowcher
1042Ivar F WhobreyIndia2024-04-20Commercial Press NEW83Bernardo Dominic
1043Munro B BowleyJapan2024-04-13Printing Dimensions QUALIFIED19Anna Fali
1044Isabel O GarufiUnited Kingdom2024-04-01Dorl, James J Esq NEGOTIATION74Bernardo Dominic
1045Rodrigues Q GarufiIndia2024-04-12Printing Dimensions PROPOSAL66Amy Elsner
1046Claire P VenereIndia2024-04-12Chapman, Ross E Esq UNQUALIFIED96Amy Elsner
1047Salvatore I GlickItaly2024-04-11Benton, John B Jr PROPOSAL20Ioni Bowcher
1048Jeanfrancois I KuskoRussia2024-04-23Feltz Printing Service PROPOSAL44Anna Fali
1049Arvin V GillianItaly2024-04-28Printing Dimensions QUALIFIED99Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Alejandro T AlbaresUnited KingdomStephen Shaw RENEWAL
Izzy D RutaFranceAmy Elsner NEGOTIATION
Nicolas S MaletCanadaAmy Elsner UNQUALIFIED
Jones H RutaFranceElwin Sharvill UNQUALIFIED
Aika H BriddickCanadaAsiya Javayant NEGOTIATION
Kaitlin W FlosiCanadaElwin Sharvill NEW
Kaitlin F SlusarskiJapanOnyama Limba UNQUALIFIED
Munro V FlosiUnited KingdomAmy Elsner RENEWAL
Francesco G GlickRussiaAnna Fali QUALIFIED
Morrow G AlbaresAustraliaAnna Fali PROPOSAL
Leon Z WaycottAustraliaAnna Fali QUALIFIED
Julie V MorascaBrazilAsiya Javayant PROPOSAL
Maria U PoquetteArgentinaElwin Sharvill RENEWAL
Silvio C MorascaItalyAsiya Javayant UNQUALIFIED
Munro C FlosiIndiaElwin Sharvill QUALIFIED
Antonio J PerinArgentinaAsiya Javayant UNQUALIFIED
Nicolas D AmigonBrazilIvan Magalhaes QUALIFIED
Maisha C AmigonJapanAsiya Javayant NEGOTIATION
Darci G ChuiItalyStephen Shaw NEGOTIATION
Julie J MaletJapanAnna Fali NEGOTIATION
Nicolas I InouyeFranceIoni Bowcher NEGOTIATION
Leon Z FerenczBrazilAmy Elsner PROPOSAL
Julie F InouyeUnited KingdomStephen Shaw NEGOTIATION
David C RutaBrazilAmy Elsner NEGOTIATION
Julie P SergiFranceStephen Shaw UNQUALIFIED
Mujtaba S TollnerRussiaXuxue Feng PROPOSAL
Leja H DoeCanadaIvan Magalhaes QUALIFIED
Munro P PerinGermanyAnna Fali RENEWAL
Adams V KuskoFranceIvan Magalhaes NEW
Aruna N BowleyArgentinaAsiya Javayant PROPOSAL
Leon P SaylorsFranceAsiya Javayant RENEWAL
Murillo J GlickBrazilStephen Shaw RENEWAL
Faith K CaldareraArgentinaAnna Fali RENEWAL
James F WieserUnited KingdomBernardo Dominic UNQUALIFIED
Salvatore B CaudyUnited KingdomOnyama Limba QUALIFIED
Aditya Y MacleadAustraliaAsiya Javayant UNQUALIFIED
Costa Z ChuiFranceAsiya Javayant NEW
Aika U FollerRussiaIoni Bowcher PROPOSAL
Clifford E FigeroaItalyIoni Bowcher NEW
Octavia Y KolmetzRussiaXuxue Feng PROPOSAL
Deepesh I ButtUnited KingdomAnna Fali QUALIFIED
Julie S MacleadIndiaElwin Sharvill PROPOSAL
Stacey J PerinBrazilIvan Magalhaes NEGOTIATION
Jefferson Z IturbideIndiaIvan Magalhaes QUALIFIED
Cody S SergiUnited KingdomAnna Fali NEW
Jefferson M GauchoGermanyBernardo Dominic NEW
Nicolas Y BriddickSpainOnyama Limba NEGOTIATION
Mujtaba C RutaArgentinaAsiya Javayant NEGOTIATION
Jones Q FerenczArgentinaAmy Elsner NEW
Ivar V SlusarskiJapanAmy Elsner PROPOSAL
Frozen Columns
Name
Ivar N Bolognia
Jefferson X Briddick
Jeanfrancois I Butt
Mujtaba C Iturbide
Darci N Dilliard
Salvatore P Butt
Rodrigues P Kusko
Salvatore S Maclead
Johnson O Wieser
Nicolas T Schemmer
Clifford N Poquette
Leon I Gillian
Leja V Dilliard
Emily X Rulapaugh
Alejandro C Campain
Rodrigues I Vocelka
Costa V Slusarski
Stacey Q Campain
Clifford Z Waycott
Clifford U Iturbide
Mayumi P Slusarski
Johnson J Maclead
Mujtaba G Shinko
Kadeem Q Schemmer
Nicolas B Nicka
Sinclair S Doe
Deepesh R Oldroyd
Maisha K Stenseth
Chavez Q Stenseth
Maria X Briddick
Morrow G Nestle
Darci R Whobrey
Antonio W Nestle
Stacey M Paprocki
Faith T Paprocki
Maisha I Stockham
Faith E Briddick
Claire K Vocelka
Costa K Nestle
Antonio Y Figeroa
Silvio L Venere
Claire N Dilliard
Smith Y Rulapaugh
Faith C Darakjy
Juan R Dilliard
Stacey A Kusko
Maria F Caldarera
Costa D Waycott
Aditya R Rim
Kadeem J Stockham
IdCountryDate
1000Italy2024-04-28
1001Germany2024-04-05
1002Japan2024-04-20
1003Russia2024-04-28
1004France2024-04-20
1005Brazil2024-04-13
1006Japan2024-04-13
1007Germany2024-04-26
1008Canada2024-04-18
1009Italy2024-04-19
1010France2024-04-20
1011Spain2024-04-01
1012Germany2024-04-10
1013Japan2024-04-18
1014India2024-04-03
1015Germany2024-04-19
1016United Kingdom2024-04-24
1017Argentina2024-04-12
1018Spain2024-04-26
1019Spain2024-04-26
1020Germany2024-04-03
1021Japan2024-04-10
1022Italy2024-04-16
1023Canada2024-04-05
1024Australia2024-04-21
1025Argentina2024-04-18
1026Japan2024-04-04
1027United Kingdom2024-04-22
1028Canada2024-04-03
1029Spain2024-04-19
1030Russia2024-04-25
1031Spain2024-04-10
1032United Kingdom2024-04-26
1033Italy2024-04-01
1034Japan2024-04-04
1035Germany2024-04-03
1036Australia2024-04-12
1037Australia2024-04-03
1038Germany2024-04-17
1039Italy2024-03-31
1040Germany2024-04-18
1041Russia2024-04-27
1042Australia2024-04-09
1043India2024-03-31
1044Italy2024-04-22
1045Canada2024-04-17
1046Germany2024-04-27
1047Australia2024-04-16
1048Spain2024-04-09
1049Germany2024-04-14

On-Demand Data

NameIdCountryDate
Isabel Q Rim1000Argentina2024-04-05
Jefferson G Foller1001Italy2024-04-14
Leon U Slusarski1002Argentina2024-04-02
Alejandro A Marrier1003France2024-04-28
David Y Amigon1004Spain2024-04-24
Ashley J Albares1005India2024-04-26
Mayumi M Darakjy1006India2024-03-30
Leon M Venere1007Russia2024-03-30
Antonio E Garufi1008India2024-04-12
Darci U Sergi1009France2024-04-18
Izzy N Albares1010France2024-04-03
Deepesh N Foller1011Italy2024-04-23
Costa I Ostrosky1012United Kingdom2024-04-23
Jefferson U Dilliard1013Canada2024-04-05
Aditya J Whobrey1014Italy2024-04-18
Jennifer L Bolognia1015Germany2024-04-15
Nicolas K Shinko1016Italy2024-04-07
Leon W Stockham1017Brazil2024-04-19
Adams X Briddick1018Russia2024-04-28
David H Briddick1019Spain2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
James J CampainIndiaIoni Bowcher UNQUALIFIED
Costa H SaylorsRussiaBernardo Dominic UNQUALIFIED
Mujtaba H MarrierItalyIvan Magalhaes QUALIFIED
Mayumi D OstroskyAustraliaXuxue Feng NEW
Faith G WhobreyJapanXuxue Feng RENEWAL
Aditya Y StensethRussiaIvan Magalhaes PROPOSAL
Clifford I RoysterArgentinaElwin Sharvill UNQUALIFIED
Smith B RutaSpainElwin Sharvill QUALIFIED
Izzy T MarrierUnited KingdomAnna Fali QUALIFIED
Leja A TollnerArgentinaIvan Magalhaes PROPOSAL
Ashley M SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Mujtaba N FlosiCanadaIvan Magalhaes UNQUALIFIED
Silvio X SaylorsCanadaStephen Shaw NEGOTIATION
Sinclair L PerinRussiaAsiya Javayant RENEWAL
Johnson H CaldareraIndiaXuxue Feng PROPOSAL
Maisha P NickaIndiaStephen Shaw NEW
Jones G RoysterUnited KingdomIoni Bowcher PROPOSAL
Murillo Q MorascaCanadaElwin Sharvill QUALIFIED
Emily W RimGermanyAnna Fali PROPOSAL
Rodrigues X ShinkoJapanOnyama Limba PROPOSAL
Jefferson B AmigonArgentinaXuxue Feng NEGOTIATION
Morrow Q VocelkaGermanyOnyama Limba UNQUALIFIED
Arvin G FigeroaCanadaOnyama Limba UNQUALIFIED
Emily O BowleyArgentinaXuxue Feng NEGOTIATION
Salvatore X SergiIndiaAmy Elsner RENEWAL
Salvatore P GarufiCanadaXuxue Feng PROPOSAL
Jennifer R OstroskyJapanBernardo Dominic NEW
Misaki V StockhamIndiaBernardo Dominic RENEWAL
Jones C WhobreyGermanyIoni Bowcher NEGOTIATION
Claire X WieserArgentinaElwin Sharvill UNQUALIFIED
Maisha L CaudyRussiaOnyama Limba NEW
Aditya U RimAustraliaAmy Elsner NEW
Aditya T RoysterIndiaXuxue Feng RENEWAL
Arvin E StockhamArgentinaAmy Elsner PROPOSAL
James X WieserRussiaAnna Fali QUALIFIED
Isabel I RimRussiaAnna Fali UNQUALIFIED
Costa I KuskoBrazilAnna Fali RENEWAL
Mujtaba P SchemmerSpainStephen Shaw QUALIFIED
Morrow P RutaArgentinaStephen Shaw PROPOSAL
Tony F NickaBrazilAmy Elsner RENEWAL

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