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
Sinclair B GlickFranceAsiya Javayant NEGOTIATION
Tony B WaycottGermanyXuxue Feng UNQUALIFIED
Misaki S StensethBrazilElwin Sharvill QUALIFIED
Darci F GlickGermanyBernardo Dominic RENEWAL
Greenwood Y BologniaBrazilBernardo Dominic PROPOSAL
Deepesh B GarufiArgentinaAnna Fali PROPOSAL
Darci I DoeAustraliaBernardo Dominic QUALIFIED
Cody H RutaCanadaBernardo Dominic NEW
Aika C RimArgentinaAnna Fali PROPOSAL
David J StensethAustraliaAsiya Javayant QUALIFIED
Tony F MorascaIndiaAnna Fali RENEWAL
Smith V SlusarskiJapanIvan Magalhaes PROPOSAL
Darci Y ShinkoFranceElwin Sharvill NEW
Aika X DarakjyGermanyAmy Elsner NEGOTIATION
Sinclair X WieserGermanyIvan Magalhaes NEGOTIATION
Faith M PerinAustraliaBernardo Dominic UNQUALIFIED
Emily Z MaletUnited KingdomStephen Shaw NEGOTIATION
Cody N StockhamBrazilAnna Fali RENEWAL
Jennifer Z DarakjyGermanyIvan Magalhaes PROPOSAL
Misaki K RimAustraliaBernardo Dominic NEW
Jefferson A CaldareraBrazilOnyama Limba NEGOTIATION
Johnson F SlusarskiFranceElwin Sharvill PROPOSAL
Greenwood X MacleadArgentinaElwin Sharvill RENEWAL
Julie Z RoysterItalyAsiya Javayant UNQUALIFIED
Francesco T MaletSpainAmy Elsner RENEWAL
Ricardo V InouyeAustraliaAsiya Javayant UNQUALIFIED
Salvatore A BologniaItalyIvan Magalhaes NEW
Ricardo I GillianAustraliaOnyama Limba NEW
Aika L DilliardJapanIoni Bowcher QUALIFIED
Ricardo W KolmetzIndiaXuxue Feng NEGOTIATION
Jefferson T ButtUnited KingdomOnyama Limba NEGOTIATION
Aruna S SlusarskiSpainOnyama Limba RENEWAL
Jones P DilliardArgentinaAnna Fali UNQUALIFIED
Maria E GlickCanadaAsiya Javayant UNQUALIFIED
Wickens D StensethFranceElwin Sharvill PROPOSAL
Maria E KolmetzAustraliaOnyama Limba UNQUALIFIED
Wickens A PoquetteItalyBernardo Dominic PROPOSAL
Jeanfrancois H MaletIndiaAmy Elsner PROPOSAL
Juan H NickaCanadaIoni Bowcher PROPOSAL
Ivar M WaycottItalyAsiya Javayant RENEWAL
Adams X GlickArgentinaIoni Bowcher NEGOTIATION
Wickens P RulapaughJapanOnyama Limba RENEWAL
Arvin A RoysterAustraliaAsiya Javayant QUALIFIED
Ricardo V GillianAustraliaElwin Sharvill PROPOSAL
Izzy E WieserCanadaBernardo Dominic NEW
Maria F PaprockiAustraliaAmy Elsner QUALIFIED
Kadeem Z IturbideAustraliaBernardo Dominic NEGOTIATION
Darci E MarrierSpainIoni Bowcher NEW
Tony Q BriddickSpainXuxue Feng QUALIFIED
Jeanfrancois N AlbaresCanadaBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Mujtaba F WhobreyUnited KingdomAsiya Javayant NEW
David T PaprockiBrazilOnyama Limba PROPOSAL
Claire E GlickSpainAnna Fali NEGOTIATION
Costa U KuskoBrazilAmy Elsner QUALIFIED
Jones B RimArgentinaAnna Fali QUALIFIED
Maria F GarufiArgentinaStephen Shaw NEW
Costa A SchemmerUnited KingdomElwin Sharvill NEW
Misaki A InouyeSpainStephen Shaw QUALIFIED
Murillo H ChuiCanadaBernardo Dominic NEGOTIATION
James D FigeroaCanadaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David D MorascaGermany2024-04-14Truhlar And Truhlar Attys QUALIFIED15Xuxue Feng
1001Aruna E KolmetzBrazil2024-04-25Chemel, James L Cpa UNQUALIFIED83Elwin Sharvill
1002Alejandro C MaletCanada2024-04-11Rangoni Of Florence NEGOTIATION12Xuxue Feng
1003Adams C WieserFrance2024-04-24Feltz Printing Service UNQUALIFIED98Onyama Limba
1004Smith G CaudyFrance2024-04-01Rangoni Of Florence NEW73Elwin Sharvill
1005Maisha Y ChuiIndia2024-04-26Dorl, James J Esq RENEWAL96Amy Elsner
1006Wickens G AmigonSpain2024-04-12Commercial Press RENEWAL35Bernardo Dominic
1007Julie M VenereJapan2024-04-02Dorl, James J Esq UNQUALIFIED91Elwin Sharvill
1008Morrow T CaudySpain2024-04-11Feltz Printing Service RENEWAL39Ioni Bowcher
1009Emily X ChuiJapan2024-04-08Printing Dimensions UNQUALIFIED57Xuxue Feng
1010Alejandro I CaudyAustralia2024-04-24Truhlar And Truhlar Attys PROPOSAL42Anna Fali
1011Maisha B CampainIndia2024-04-21Morlong Associates QUALIFIED13Anna Fali
1012Faith Q DarakjyUnited Kingdom2024-04-23Chapman, Ross E Esq NEGOTIATION28Ivan Magalhaes
1013Maria P PaprockiRussia2024-04-10Truhlar And Truhlar Attys RENEWAL38Elwin Sharvill
1014Mujtaba G WhobreyArgentina2024-04-15Benton, John B Jr NEGOTIATION13Stephen Shaw
1015Smith Y DilliardIndia2024-04-29Chanay, Jeffrey A Esq RENEWAL43Amy Elsner
1016Deepesh C GarufiFrance2024-04-07Rangoni Of Florence PROPOSAL39Amy Elsner
1017Kaitlin F DilliardCanada2024-04-18Chanay, Jeffrey A Esq NEW68Xuxue Feng
1018Clifford M VenereFrance2024-04-18Morlong Associates PROPOSAL27Xuxue Feng
1019Murillo M OldroydGermany2024-04-17Printing Dimensions UNQUALIFIED7Elwin Sharvill
1020Sinclair R BologniaCanada2024-04-16Chapman, Ross E Esq RENEWAL99Xuxue Feng
1021James I KolmetzGermany2024-04-06Printing Dimensions QUALIFIED17Stephen Shaw
1022Misaki O WaycottSpain2024-04-23Rangoni Of Florence NEGOTIATION23Stephen Shaw
1023Arvin K RoysterGermany2024-04-30Feiner Bros QUALIFIED52Ioni Bowcher
1024Johnson A FerenczGermany2024-04-27Rangoni Of Florence RENEWAL74Amy Elsner
1025Silvio Z AmigonCanada2024-04-28Printing Dimensions UNQUALIFIED67Anna Fali
1026Clifford C OldroydAustralia2024-04-08Chemel, James L Cpa NEGOTIATION87Xuxue Feng
1027Jefferson D CaudyCanada2024-04-13Feltz Printing Service RENEWAL81Ioni Bowcher
1028Maisha R AmigonBrazil2024-04-24Commercial Press UNQUALIFIED70Onyama Limba
1029Jones F DarakjyAustralia2024-04-07Morlong Associates NEGOTIATION28Ioni Bowcher
1030Clifford W PerinFrance2024-04-07Chemel, James L Cpa PROPOSAL8Stephen Shaw
1031Claire S DoeCanada2024-04-07Truhlar And Truhlar Attys QUALIFIED44Ivan Magalhaes
1032Aditya J FollerRussia2024-04-23Buckley Miller Wright QUALIFIED26Xuxue Feng
1033Wickens R BriddickCanada2024-04-15King, Christopher A Esq RENEWAL36Amy Elsner
1034Johnson V IturbideJapan2024-04-03Rousseaux, Michael Esq QUALIFIED28Elwin Sharvill
1035Leon C WaycottIndia2024-04-13Buckley Miller Wright UNQUALIFIED96Anna Fali
1036Clifford U WaycottAustralia2024-04-21Morlong Associates NEW88Ioni Bowcher
1037Arvin D RulapaughBrazil2024-04-25Feiner Bros UNQUALIFIED47Bernardo Dominic
1038Wickens W MacleadSpain2024-04-21Commercial Press PROPOSAL19Asiya Javayant
1039Adams M DarakjyUnited Kingdom2024-04-23Printing Dimensions NEW51Anna Fali
1040Jeanfrancois H MaletBrazil2024-04-25Buckley Miller Wright UNQUALIFIED41Ioni Bowcher
1041Salvatore T TollnerUnited Kingdom2024-04-10Chanay, Jeffrey A Esq PROPOSAL25Anna Fali
1042Nicolas U ShinkoUnited Kingdom2024-04-10Morlong Associates PROPOSAL46Ioni Bowcher
1043Smith V InouyeFrance2024-04-17Dorl, James J Esq PROPOSAL64Stephen Shaw
1044Tony C StockhamUnited Kingdom2024-04-22Buckley Miller Wright PROPOSAL86Onyama Limba
1045Leon D VenereJapan2024-04-11Commercial Press NEGOTIATION98Bernardo Dominic
1046Deepesh N PaprockiIndia2024-04-16Chanay, Jeffrey A Esq PROPOSAL23Ioni Bowcher
1047Smith K GauchoAustralia2024-04-11Rangoni Of Florence UNQUALIFIED97Elwin Sharvill
1048Jefferson M NickaFrance2024-04-16Morlong Associates UNQUALIFIED8Ioni Bowcher
1049Jennifer I MacleadGermany2024-04-17Chemel, James L Cpa NEGOTIATION84Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jefferson B IturbideFranceStephen Shaw RENEWAL
Jones I SergiRussiaAsiya Javayant NEGOTIATION
Misaki A OldroydAustraliaElwin Sharvill UNQUALIFIED
Mayumi F IturbideItalyIoni Bowcher QUALIFIED
Sinclair E BologniaUnited KingdomAsiya Javayant RENEWAL
Ivar U CaldareraJapanElwin Sharvill QUALIFIED
Alejandro V WieserJapanIvan Magalhaes QUALIFIED
Smith Y StensethSpainXuxue Feng NEW
Stacey V MaletArgentinaBernardo Dominic PROPOSAL
Kadeem J FlosiUnited KingdomOnyama Limba PROPOSAL
Ricardo A ButtAustraliaAmy Elsner NEGOTIATION
James I DarakjyArgentinaElwin Sharvill NEGOTIATION
Isabel F DarakjyBrazilIvan Magalhaes RENEWAL
Maria Z MaletRussiaOnyama Limba NEW
James Y RutaFranceAsiya Javayant RENEWAL
Ivar R ChuiIndiaElwin Sharvill NEGOTIATION
Aruna U AmigonAustraliaIoni Bowcher QUALIFIED
Costa X PerinIndiaStephen Shaw NEGOTIATION
David O SaylorsBrazilStephen Shaw NEW
Ashley T IturbideSpainBernardo Dominic NEW
Rodrigues U SergiUnited KingdomXuxue Feng QUALIFIED
Misaki Z MacleadIndiaXuxue Feng NEW
Ashley D DarakjySpainXuxue Feng RENEWAL
Kaitlin G PaprockiUnited KingdomAmy Elsner NEGOTIATION
Ivar F SchemmerRussiaXuxue Feng NEW
Ricardo U SlusarskiSpainAnna Fali UNQUALIFIED
Antonio Y SergiSpainAmy Elsner RENEWAL
Salvatore Y RoysterFranceAsiya Javayant NEGOTIATION
Emily C NickaItalyBernardo Dominic PROPOSAL
Costa G InouyeItalyStephen Shaw UNQUALIFIED
Alejandro E BriddickSpainIvan Magalhaes NEW
Misaki Z OstroskyCanadaXuxue Feng RENEWAL
Cody G SaylorsFranceElwin Sharvill NEW
Kadeem C SlusarskiGermanyOnyama Limba UNQUALIFIED
Antonio S DarakjyArgentinaIvan Magalhaes UNQUALIFIED
Leja A BriddickRussiaAnna Fali UNQUALIFIED
Deepesh D MacleadFranceElwin Sharvill NEW
Chavez B DoeJapanIoni Bowcher NEW
Aditya O KuskoArgentinaXuxue Feng RENEWAL
Aika V CaudyItalyOnyama Limba UNQUALIFIED
Aika X KuskoFranceXuxue Feng NEW
Chavez W VocelkaItalyAnna Fali NEGOTIATION
Darci K BriddickAustraliaAmy Elsner NEW
Morrow V OldroydRussiaBernardo Dominic PROPOSAL
Stacey M PoquetteCanadaXuxue Feng RENEWAL
Emily W MaletSpainIoni Bowcher NEW
Clifford J BowleyCanadaAmy Elsner PROPOSAL
Jones X VenereArgentinaBernardo Dominic UNQUALIFIED
Claire N FollerAustraliaAnna Fali UNQUALIFIED
Claire U NestleRussiaOnyama Limba RENEWAL
Frozen Columns
Name
Costa K Amigon
Johnson E Malet
James U Rim
Costa N Royster
Aruna G Ferencz
Juan R Inouye
Julie T Stockham
Munro P Whobrey
Nicolas Z Malet
Leja C Maclead
Smith F Ferencz
Chavez B Nestle
Julie V Darakjy
Mujtaba S Tollner
Francesco D Figeroa
Ivar W Bowley
Aditya S Stenseth
Clifford Y Butt
Nicolas V Whobrey
Maisha Y Schemmer
Kaitlin K Saylors
Kaitlin C Gaucho
Maisha K Saylors
Jeanfrancois L Kusko
Ivar Y Nicka
Adams O Slusarski
Mujtaba X Foller
Jones J Whobrey
Darci F Waycott
Maria R Ostrosky
Alejandro X Doe
Octavia T Malet
Ricardo N Morasca
Mujtaba U Glick
Maisha J Foller
Adams L Dilliard
Adams A Whobrey
Salvatore I Briddick
Smith C Schemmer
Ricardo S Saylors
Kaitlin Z Maclead
Chavez Q Foller
Cody C Ruta
Stacey T Perin
David K Rim
Johnson K Maclead
Jones C Nicka
Arvin C Nestle
Clifford B Shinko
David N Garufi
IdCountryDate
1000Russia2024-04-04
1001France2024-04-12
1002Spain2024-04-06
1003Argentina2024-04-26
1004Brazil2024-04-26
1005Australia2024-04-10
1006Italy2024-04-16
1007France2024-04-18
1008Spain2024-04-23
1009Argentina2024-04-05
1010Australia2024-04-07
1011Germany2024-04-29
1012France2024-04-19
1013India2024-04-21
1014Japan2024-04-18
1015Japan2024-04-18
1016India2024-04-18
1017Italy2024-04-14
1018Japan2024-04-17
1019Argentina2024-04-19
1020Spain2024-04-12
1021United Kingdom2024-04-09
1022Germany2024-04-06
1023Japan2024-04-29
1024Brazil2024-04-03
1025United Kingdom2024-04-13
1026Brazil2024-04-02
1027Russia2024-04-18
1028Brazil2024-04-22
1029Italy2024-04-11
1030France2024-04-21
1031Argentina2024-04-09
1032France2024-04-12
1033France2024-04-11
1034Japan2024-04-17
1035Russia2024-04-14
1036Japan2024-04-07
1037France2024-04-20
1038France2024-04-20
1039Argentina2024-04-06
1040Japan2024-04-10
1041Germany2024-04-26
1042France2024-04-09
1043France2024-04-27
1044India2024-04-11
1045Argentina2024-04-25
1046France2024-04-26
1047Italy2024-04-22
1048Argentina2024-04-22
1049Russia2024-04-19

On-Demand Data

NameIdCountryDate
Emily H Wieser1000India2024-04-06
Octavia I Royster1001Japan2024-04-13
Kadeem I Darakjy1002United Kingdom2024-04-25
Octavia E Tollner1003Spain2024-04-07
Stacey W Foller1004Brazil2024-04-18
Maisha W Ruta1005United Kingdom2024-04-29
Ashley V Nicka1006Spain2024-04-27
Francesco H Doe1007Germany2024-04-15
Johnson W Briddick1008Argentina2024-04-07
Mujtaba U Glick1009Italy2024-04-22
Tony A Flosi1010Brazil2024-04-06
Aruna V Butt1011Canada2024-04-14
Maria R Tollner1012Germany2024-04-08
Smith J Garufi1013United Kingdom2024-04-07
Maisha L Bolognia1014Spain2024-04-09
Rodrigues Z Poquette1015Argentina2024-04-20
Chavez Y Malet1016Brazil2024-04-25
Ricardo S Kusko1017France2024-04-28
Cody Z Malet1018France2024-04-19
Mayumi C Gillian1019Argentina2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha W PerinSpainAnna Fali QUALIFIED
Leon A NestleItalyAsiya Javayant QUALIFIED
Murillo S IturbideSpainIoni Bowcher PROPOSAL
Tony Q InouyeFranceIvan Magalhaes PROPOSAL
Claire F VenereItalyIvan Magalhaes QUALIFIED
Alejandro L SergiIndiaXuxue Feng UNQUALIFIED
Darci G KolmetzCanadaAnna Fali UNQUALIFIED
Jennifer I DilliardItalyIvan Magalhaes QUALIFIED
Claire L RoysterUnited KingdomOnyama Limba QUALIFIED
Mujtaba V ChuiJapanAmy Elsner PROPOSAL
Darci Z CampainGermanyElwin Sharvill UNQUALIFIED
David B IturbideArgentinaIoni Bowcher UNQUALIFIED
Claire L RulapaughJapanXuxue Feng NEGOTIATION
Deepesh P WieserSpainStephen Shaw UNQUALIFIED
Izzy M GillianBrazilOnyama Limba NEGOTIATION
Adams I DilliardArgentinaOnyama Limba QUALIFIED
Salvatore D MarrierGermanyOnyama Limba NEGOTIATION
Nicolas P GauchoAustraliaIvan Magalhaes UNQUALIFIED
Nicolas R BriddickItalyAnna Fali PROPOSAL
Mujtaba X DilliardAustraliaIvan Magalhaes PROPOSAL
Rodrigues F SlusarskiFranceElwin Sharvill QUALIFIED
Clifford T InouyeArgentinaIoni Bowcher RENEWAL
Stacey Z BologniaGermanyElwin Sharvill UNQUALIFIED
Munro I DoeUnited KingdomOnyama Limba QUALIFIED
Leon U GauchoItalyElwin Sharvill PROPOSAL
Nicolas F GillianSpainXuxue Feng NEGOTIATION
Emily F CaldareraCanadaXuxue Feng PROPOSAL
Chavez Q MaletRussiaOnyama Limba NEW
Clifford O OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Claire L MorascaAustraliaElwin Sharvill UNQUALIFIED
Rodrigues R WhobreyArgentinaAmy Elsner PROPOSAL
Maisha G GauchoItalyIvan Magalhaes NEGOTIATION
Murillo J KolmetzCanadaElwin Sharvill NEW
Chavez O PaprockiSpainBernardo Dominic RENEWAL
Murillo P FollerArgentinaIoni Bowcher PROPOSAL
Rodrigues X SergiSpainStephen Shaw QUALIFIED
Octavia E ChuiItalyStephen Shaw UNQUALIFIED
Clifford K MacleadCanadaIoni Bowcher NEGOTIATION
Rodrigues G BologniaRussiaElwin Sharvill NEGOTIATION
Jefferson M SchemmerCanadaAnna 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>