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
Chavez R MaletSpainStephen Shaw RENEWAL
Julie P ShinkoItalyAnna Fali PROPOSAL
Misaki D MacleadJapanOnyama Limba NEGOTIATION
Tony O BowleyBrazilXuxue Feng NEGOTIATION
Aditya T PaprockiItalyIvan Magalhaes RENEWAL
Murillo Z FerenczGermanyIoni Bowcher UNQUALIFIED
Costa F FollerSpainAsiya Javayant UNQUALIFIED
Misaki E WieserFranceXuxue Feng QUALIFIED
Murillo J SlusarskiCanadaIvan Magalhaes RENEWAL
James V FerenczFranceXuxue Feng UNQUALIFIED
Maisha T RoysterBrazilElwin Sharvill RENEWAL
Salvatore S BowleyJapanBernardo Dominic QUALIFIED
Jeanfrancois R PerinSpainBernardo Dominic RENEWAL
Leja Q TollnerJapanAmy Elsner QUALIFIED
Francesco B NickaCanadaAmy Elsner RENEWAL
Tony N VenereAustraliaAsiya Javayant QUALIFIED
Mayumi P GlickGermanyXuxue Feng NEGOTIATION
Antonio D BriddickRussiaStephen Shaw QUALIFIED
Aika D StockhamBrazilStephen Shaw NEW
Munro R AlbaresAustraliaIoni Bowcher UNQUALIFIED
Ivar D PerinAustraliaIoni Bowcher PROPOSAL
Juan F DarakjyArgentinaIoni Bowcher QUALIFIED
Aika N FigeroaBrazilAnna Fali RENEWAL
David Y RutaRussiaIoni Bowcher RENEWAL
Greenwood Q VenereItalyAsiya Javayant NEGOTIATION
Kadeem U VocelkaGermanyIoni Bowcher QUALIFIED
Darci H ShinkoJapanIvan Magalhaes NEGOTIATION
Murillo W ShinkoJapanAsiya Javayant PROPOSAL
Julie H MacleadFranceAsiya Javayant NEW
Leja H FollerUnited KingdomIoni Bowcher NEW
Antonio G GauchoAustraliaBernardo Dominic UNQUALIFIED
Aruna E VocelkaAustraliaBernardo Dominic NEW
Maisha Y IturbideGermanyIvan Magalhaes RENEWAL
Jones W MaletGermanyIoni Bowcher UNQUALIFIED
Jones R MorascaJapanIoni Bowcher NEW
Mujtaba N InouyeArgentinaIoni Bowcher UNQUALIFIED
Munro J ShinkoJapanXuxue Feng UNQUALIFIED
Leon C AmigonItalyXuxue Feng QUALIFIED
Antonio R ChuiSpainStephen Shaw NEGOTIATION
Aika L SaylorsSpainStephen Shaw QUALIFIED
Deepesh A RimBrazilAsiya Javayant QUALIFIED
Kadeem C OstroskyGermanyXuxue Feng NEGOTIATION
Octavia M PaprockiArgentinaXuxue Feng PROPOSAL
Murillo U FigeroaSpainXuxue Feng PROPOSAL
Munro O MarrierBrazilBernardo Dominic QUALIFIED
Jeanfrancois P CaldareraAustraliaIoni Bowcher QUALIFIED
Maisha I VenereSpainIvan Magalhaes NEGOTIATION
Costa H PerinItalyAnna Fali RENEWAL
James T WieserJapanBernardo Dominic RENEWAL
Stacey R OstroskyGermanyIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Mujtaba W KolmetzItalyElwin Sharvill RENEWAL
Emily N NickaIndiaAnna Fali RENEWAL
Faith T RulapaughGermanyOnyama Limba NEW
Jennifer R AmigonAustraliaAnna Fali PROPOSAL
Arvin Z MorascaItalyAsiya Javayant PROPOSAL
Stacey B SchemmerUnited KingdomAnna Fali NEW
Salvatore D SergiIndiaStephen Shaw UNQUALIFIED
Emily T KolmetzBrazilIoni Bowcher RENEWAL
Costa O OldroydSpainIvan Magalhaes UNQUALIFIED
Aditya P RimArgentinaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson B StensethSpain2024-04-21Dorl, James J Esq PROPOSAL88Onyama Limba
1001Francesco S OldroydRussia2024-04-23Morlong Associates PROPOSAL1Anna Fali
1002Sinclair K TollnerFrance2024-04-14Chanay, Jeffrey A Esq PROPOSAL56Stephen Shaw
1003Aruna D ChuiRussia2024-03-29Dorl, James J Esq RENEWAL87Bernardo Dominic
1004Darci Q IturbideJapan2024-04-04Printing Dimensions QUALIFIED96Bernardo Dominic
1005James Q SaylorsItaly2024-04-05Rousseaux, Michael Esq RENEWAL50Elwin Sharvill
1006Jefferson J NickaFrance2024-03-25Benton, John B Jr UNQUALIFIED70Bernardo Dominic
1007Mujtaba B CaldareraIndia2024-03-25Feltz Printing Service UNQUALIFIED92Asiya Javayant
1008Deepesh H DilliardFrance2024-04-12Benton, John B Jr QUALIFIED69Ioni Bowcher
1009Munro P GillianIndia2024-03-31Chanay, Jeffrey A Esq RENEWAL57Onyama Limba
1010James N MorascaUnited Kingdom2024-03-27Feltz Printing Service QUALIFIED60Stephen Shaw
1011Arvin R CampainArgentina2024-04-21Truhlar And Truhlar Attys UNQUALIFIED88Asiya Javayant
1012Silvio J StensethFrance2024-03-26Chanay, Jeffrey A Esq PROPOSAL55Elwin Sharvill
1013Jeanfrancois P GauchoBrazil2024-04-18Feltz Printing Service QUALIFIED47Ioni Bowcher
1014Emily C WhobreyBrazil2024-04-21Morlong Associates QUALIFIED27Elwin Sharvill
1015Maria P MacleadAustralia2024-04-21King, Christopher A Esq NEGOTIATION64Stephen Shaw
1016Aika E NickaGermany2024-03-30Chemel, James L Cpa PROPOSAL1Asiya Javayant
1017Johnson S CampainCanada2024-04-16Rousseaux, Michael Esq QUALIFIED95Ivan Magalhaes
1018Stacey Q DarakjyGermany2024-04-15Feiner Bros PROPOSAL38Amy Elsner
1019Aruna Y PaprockiBrazil2024-04-09Printing Dimensions NEGOTIATION45Stephen Shaw
1020Ricardo K IturbideFrance2024-04-01Printing Dimensions NEW30Bernardo Dominic
1021Leon H VenereUnited Kingdom2024-04-03Rangoni Of Florence NEW47Elwin Sharvill
1022Kaitlin U BowleyRussia2024-04-22Benton, John B Jr RENEWAL36Ioni Bowcher
1023Johnson B FigeroaRussia2024-03-25Chanay, Jeffrey A Esq RENEWAL86Amy Elsner
1024Nicolas M MorascaAustralia2024-04-01King, Christopher A Esq NEW85Amy Elsner
1025Jennifer R VocelkaJapan2024-04-08Feltz Printing Service QUALIFIED78Ioni Bowcher
1026Leon D GlickFrance2024-04-13Buckley Miller Wright NEGOTIATION32Anna Fali
1027Adams M InouyeIndia2024-04-05Chapman, Ross E Esq QUALIFIED9Xuxue Feng
1028Johnson F WieserItaly2024-04-12Commercial Press NEW53Amy Elsner
1029Jefferson J CaldareraCanada2024-03-29Chanay, Jeffrey A Esq PROPOSAL15Xuxue Feng
1030Sinclair C TollnerGermany2024-03-28Feiner Bros NEW21Onyama Limba
1031Claire P AmigonRussia2024-04-09Truhlar And Truhlar Attys PROPOSAL15Anna Fali
1032Claire H VocelkaFrance2024-03-27King, Christopher A Esq NEW16Asiya Javayant
1033Julie U PaprockiCanada2024-04-05Dorl, James J Esq UNQUALIFIED44Elwin Sharvill
1034Faith Z FerenczItaly2024-04-18Buckley Miller Wright RENEWAL19Bernardo Dominic
1035Clifford Q CaldareraArgentina2024-03-29Benton, John B Jr UNQUALIFIED90Anna Fali
1036Maisha B CaldareraAustralia2024-04-09Truhlar And Truhlar Attys QUALIFIED98Ioni Bowcher
1037Francesco C SchemmerBrazil2024-04-05Dorl, James J Esq QUALIFIED65Asiya Javayant
1038Julie H PerinJapan2024-04-23Chemel, James L Cpa RENEWAL6Asiya Javayant
1039Clifford Z RutaFrance2024-03-25Commercial Press RENEWAL88Stephen Shaw
1040Munro O SlusarskiCanada2024-04-20Dorl, James J Esq NEW71Stephen Shaw
1041Stacey U DoeFrance2024-04-17Chemel, James L Cpa NEGOTIATION88Anna Fali
1042Mayumi V DarakjyRussia2024-04-05Chanay, Jeffrey A Esq QUALIFIED90Amy Elsner
1043Leja M CaldareraArgentina2024-04-18Benton, John B Jr RENEWAL95Stephen Shaw
1044Mayumi E MacleadGermany2024-04-19Chapman, Ross E Esq UNQUALIFIED58Elwin Sharvill
1045Ivar J VocelkaArgentina2024-04-09Commercial Press NEGOTIATION5Amy Elsner
1046Aika U RutaItaly2024-04-12Rousseaux, Michael Esq QUALIFIED48Anna Fali
1047Wickens H DarakjyIndia2024-04-09Commercial Press PROPOSAL57Xuxue Feng
1048Faith U FlosiGermany2024-04-16Chanay, Jeffrey A Esq NEW7Ioni Bowcher
1049Alejandro J MacleadIndia2024-04-05King, Christopher A Esq QUALIFIED39Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Adams W GlickIndiaIvan Magalhaes RENEWAL
Faith J NickaRussiaAnna Fali NEW
David P ButtSpainStephen Shaw NEW
Claire Z SergiSpainXuxue Feng PROPOSAL
Misaki J MaletIndiaOnyama Limba UNQUALIFIED
Jennifer N CampainUnited KingdomAsiya Javayant QUALIFIED
Juan R GauchoRussiaOnyama Limba QUALIFIED
Murillo X CaudyIndiaStephen Shaw NEW
Jones Q RoysterUnited KingdomStephen Shaw RENEWAL
Smith B RimAustraliaStephen Shaw UNQUALIFIED
Adams Q RutaAustraliaXuxue Feng NEGOTIATION
Leon R FerenczSpainElwin Sharvill QUALIFIED
Isabel C StockhamGermanyStephen Shaw NEW
Jones Y MorascaGermanyIvan Magalhaes NEGOTIATION
Mujtaba Q KolmetzBrazilIvan Magalhaes NEGOTIATION
Isabel C FigeroaGermanyAnna Fali UNQUALIFIED
Francesco O StensethItalyIvan Magalhaes RENEWAL
Clifford D RulapaughGermanyAnna Fali UNQUALIFIED
Alejandro P GlickSpainXuxue Feng RENEWAL
Leja D PoquetteJapanStephen Shaw RENEWAL
Clifford B BowleySpainAsiya Javayant NEW
Costa R GarufiAustraliaXuxue Feng NEW
Isabel F SergiIndiaElwin Sharvill UNQUALIFIED
Aika Z GauchoSpainOnyama Limba PROPOSAL
Costa B TollnerUnited KingdomStephen Shaw NEGOTIATION
Isabel H VocelkaFranceXuxue Feng PROPOSAL
Arvin A CaudyIndiaAnna Fali PROPOSAL
Antonio U SergiIndiaAmy Elsner RENEWAL
Munro N VenereSpainStephen Shaw RENEWAL
Smith W BowleyIndiaAmy Elsner NEW
Izzy Z KolmetzItalyAsiya Javayant RENEWAL
Stacey D BowleyIndiaElwin Sharvill NEW
Jones L MacleadBrazilIvan Magalhaes NEGOTIATION
Isabel C CampainRussiaOnyama Limba UNQUALIFIED
Aditya R GauchoIndiaOnyama Limba NEW
Maisha G DoeSpainIvan Magalhaes PROPOSAL
Sinclair U SchemmerGermanyElwin Sharvill QUALIFIED
Juan C ChuiAustraliaXuxue Feng NEW
Juan C SlusarskiGermanyAmy Elsner PROPOSAL
Munro K MaletIndiaXuxue Feng UNQUALIFIED
Leja C WaycottJapanXuxue Feng PROPOSAL
Jeanfrancois L OstroskyGermanyIoni Bowcher RENEWAL
Cody A StensethRussiaAnna Fali PROPOSAL
Jones Y OstroskyFranceXuxue Feng NEGOTIATION
Aika S StensethUnited KingdomAmy Elsner UNQUALIFIED
Salvatore Y StockhamCanadaAsiya Javayant RENEWAL
James B MacleadArgentinaAnna Fali NEGOTIATION
Silvio D ChuiSpainAnna Fali QUALIFIED
Nicolas Q PerinItalyAsiya Javayant NEW
Ashley C OstroskyGermanyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Aditya L Stockham
Rodrigues R Rulapaugh
Rodrigues F Rim
Antonio Z Nestle
Cody A Inouye
Aruna S Paprocki
Chavez R Glick
Stacey C Schemmer
Antonio Z Albares
Kadeem F Campain
Jefferson A Rim
Deepesh J Darakjy
Costa T Butt
Mayumi Y Flosi
Octavia U Poquette
Octavia J Ferencz
Tony Z Malet
Claire K Flosi
Murillo O Tollner
Darci C Whobrey
Julie Z Stenseth
Jefferson Q Gaucho
Cody M Whobrey
Aika Q Caldarera
Stacey R Nestle
Leja W Wieser
Juan Z Vocelka
Julie N Garufi
Leon Q Butt
Mayumi V Kolmetz
Salvatore A Briddick
Silvio P Butt
Antonio T Vocelka
Stacey Z Chui
Darci F Briddick
Rodrigues V Caudy
Ashley F Perin
Morrow R Vocelka
Aruna N Foller
Murillo N Malet
Mayumi W Saylors
Aditya G Bowley
Mujtaba H Marrier
David E Darakjy
Sinclair M Dilliard
Ivar V Waycott
Leja P Chui
Adams I Gillian
Leja Z Garufi
David G Glick
IdCountryDate
1000Canada2024-04-07
1001India2024-04-10
1002Brazil2024-04-04
1003Germany2024-04-16
1004Spain2024-03-31
1005Canada2024-03-30
1006Australia2024-04-10
1007Japan2024-04-10
1008India2024-04-10
1009Argentina2024-04-17
1010United Kingdom2024-04-06
1011Italy2024-04-03
1012Germany2024-04-14
1013Argentina2024-03-25
1014India2024-04-21
1015Canada2024-03-28
1016France2024-04-13
1017Brazil2024-04-21
1018Italy2024-04-09
1019Italy2024-03-26
1020Brazil2024-04-23
1021Australia2024-03-26
1022Brazil2024-04-13
1023Australia2024-04-17
1024United Kingdom2024-04-03
1025United Kingdom2024-03-29
1026Canada2024-04-03
1027Australia2024-03-26
1028India2024-04-19
1029Germany2024-04-04
1030Japan2024-04-03
1031Australia2024-04-17
1032Russia2024-03-28
1033India2024-04-06
1034Italy2024-04-22
1035Canada2024-04-21
1036Canada2024-03-26
1037Canada2024-03-30
1038India2024-04-07
1039Brazil2024-04-22
1040Brazil2024-04-18
1041France2024-04-20
1042France2024-04-18
1043Japan2024-04-23
1044Japan2024-03-31
1045Germany2024-04-04
1046United Kingdom2024-04-17
1047Brazil2024-03-25
1048Canada2024-04-09
1049Canada2024-04-06

On-Demand Data

NameIdCountryDate
Murillo O Slusarski1000France2024-04-17
Adams V Oldroyd1001Japan2024-04-09
Claire U Vocelka1002Argentina2024-04-05
Emily X Amigon1003Japan2024-04-10
Murillo A Ferencz1004France2024-04-05
Chavez X Morasca1005Italy2024-04-15
Salvatore A Poquette1006Italy2024-04-02
Murillo L Figeroa1007Germany2024-04-07
Darci T Nestle1008Canada2024-03-25
Stacey M Paprocki1009Argentina2024-04-15
Misaki T Amigon1010Russia2024-03-25
Antonio O Doe1011Russia2024-03-26
Julie C Caudy1012Brazil2024-04-07
Johnson G Iturbide1013India2024-04-15
Cody B Amigon1014Argentina2024-04-22
Sinclair C Slusarski1015Japan2024-04-09
Aditya R Doe1016United Kingdom2024-03-29
Rodrigues M Poquette1017India2024-04-23
Jeanfrancois B Kusko1018Argentina2024-04-07
Chavez A Stenseth1019Italy2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba F MorascaIndiaStephen Shaw NEW
Nicolas I VenereJapanIoni Bowcher NEW
Ricardo S DarakjyJapanElwin Sharvill NEGOTIATION
Cody Z StensethRussiaOnyama Limba RENEWAL
Aika X SergiFranceStephen Shaw NEGOTIATION
Smith P ButtJapanElwin Sharvill QUALIFIED
Mujtaba Y MarrierBrazilAnna Fali RENEWAL
Maria I FerenczSpainBernardo Dominic NEW
Misaki Y WhobreyRussiaElwin Sharvill NEGOTIATION
Salvatore T RutaArgentinaBernardo Dominic NEW
Maisha F StensethCanadaIvan Magalhaes PROPOSAL
Greenwood G BologniaJapanXuxue Feng QUALIFIED
Jefferson T KolmetzRussiaAsiya Javayant QUALIFIED
Faith W FlosiBrazilAmy Elsner RENEWAL
Stacey T OldroydArgentinaStephen Shaw RENEWAL
Salvatore M ShinkoJapanElwin Sharvill NEW
Aruna U SergiIndiaOnyama Limba NEGOTIATION
Julie J MacleadGermanyXuxue Feng NEW
Alejandro T SchemmerFranceOnyama Limba NEGOTIATION
Morrow Q ShinkoSpainStephen Shaw NEW
Deepesh T StockhamFranceAmy Elsner NEGOTIATION
Greenwood V CaldareraCanadaAmy Elsner PROPOSAL
Leon N ButtJapanXuxue Feng QUALIFIED
Munro A GauchoArgentinaIoni Bowcher NEGOTIATION
Rodrigues G RulapaughUnited KingdomBernardo Dominic UNQUALIFIED
Claire U MarrierGermanyIoni Bowcher NEW
Sinclair G FerenczUnited KingdomOnyama Limba RENEWAL
Alejandro A WaycottUnited KingdomIoni Bowcher PROPOSAL
Darci R ButtAustraliaOnyama Limba RENEWAL
Emily M BologniaArgentinaXuxue Feng QUALIFIED
Juan E GillianFranceStephen Shaw PROPOSAL
Aditya N OldroydBrazilAmy Elsner RENEWAL
Deepesh D PerinCanadaXuxue Feng NEGOTIATION
Johnson W BowleyRussiaAmy Elsner UNQUALIFIED
Munro O GauchoIndiaIvan Magalhaes PROPOSAL
Claire T FlosiUnited KingdomElwin Sharvill RENEWAL
Murillo A MacleadCanadaAnna Fali UNQUALIFIED
Antonio S ShinkoArgentinaOnyama Limba PROPOSAL
Aruna J FlosiIndiaIoni Bowcher UNQUALIFIED
Tony A GillianGermanyIoni Bowcher NEW

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