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
Mujtaba C InouyeSpainElwin Sharvill PROPOSAL
Rodrigues U CampainJapanOnyama Limba PROPOSAL
Faith E TollnerArgentinaIvan Magalhaes RENEWAL
Juan R KuskoBrazilElwin Sharvill RENEWAL
Silvio R IturbideIndiaElwin Sharvill QUALIFIED
Wickens N MorascaCanadaAsiya Javayant RENEWAL
Ashley C DilliardJapanElwin Sharvill NEGOTIATION
Maria H FollerRussiaXuxue Feng RENEWAL
Clifford C NestleCanadaBernardo Dominic QUALIFIED
Cody B GarufiRussiaIoni Bowcher QUALIFIED
Juan T AlbaresGermanyElwin Sharvill RENEWAL
Nicolas G SergiItalyAmy Elsner PROPOSAL
Julie T GlickAustraliaIvan Magalhaes RENEWAL
Morrow A PaprockiIndiaBernardo Dominic NEW
Stacey X RulapaughSpainXuxue Feng UNQUALIFIED
Ricardo G TollnerAustraliaBernardo Dominic PROPOSAL
Sinclair A FlosiFranceAnna Fali RENEWAL
Rodrigues P WaycottSpainIoni Bowcher QUALIFIED
Ivar L StockhamRussiaIvan Magalhaes NEGOTIATION
Wickens L ButtGermanyStephen Shaw NEW
Juan S ShinkoRussiaIvan Magalhaes PROPOSAL
Jefferson L DarakjyCanadaXuxue Feng PROPOSAL
Deepesh K FigeroaGermanyAmy Elsner NEW
Darci M StensethArgentinaAmy Elsner RENEWAL
Tony W NickaFranceIoni Bowcher NEW
Juan S AmigonItalyIoni Bowcher UNQUALIFIED
Leon U FollerFranceElwin Sharvill NEGOTIATION
Stacey Z DilliardIndiaElwin Sharvill NEW
Murillo C FerenczGermanyAnna Fali UNQUALIFIED
Greenwood H MaletFranceBernardo Dominic UNQUALIFIED
Aruna P MorascaBrazilAmy Elsner NEW
David V BologniaCanadaStephen Shaw PROPOSAL
Jones T MarrierBrazilIvan Magalhaes NEGOTIATION
Silvio B RulapaughIndiaElwin Sharvill RENEWAL
Octavia A IturbideAustraliaAmy Elsner NEW
Salvatore L StockhamFranceIoni Bowcher PROPOSAL
Ashley A MacleadUnited KingdomAmy Elsner QUALIFIED
Sinclair Q CaudyFranceAnna Fali PROPOSAL
Chavez Q CampainCanadaXuxue Feng UNQUALIFIED
Tony R MacleadUnited KingdomAsiya Javayant NEW
Octavia Q ShinkoJapanAsiya Javayant NEGOTIATION
Jefferson Q StensethSpainStephen Shaw PROPOSAL
Arvin I StockhamUnited KingdomBernardo Dominic RENEWAL
Adams T CampainGermanyStephen Shaw UNQUALIFIED
Mayumi Y IturbideBrazilBernardo Dominic QUALIFIED
Francesco B PaprockiCanadaIvan Magalhaes QUALIFIED
Stacey K DoeFranceAmy Elsner NEGOTIATION
Aruna J CaldareraIndiaIoni Bowcher RENEWAL
Silvio K BriddickJapanIoni Bowcher UNQUALIFIED
Wickens V MarrierFranceAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Darci P WhobreyGermanyIvan Magalhaes PROPOSAL
Nicolas Y RulapaughGermanyAnna Fali QUALIFIED
Arvin B FerenczArgentinaStephen Shaw PROPOSAL
Izzy S OldroydIndiaElwin Sharvill PROPOSAL
Murillo F TollnerArgentinaIoni Bowcher UNQUALIFIED
Salvatore A MarrierIndiaIoni Bowcher NEW
Mujtaba A ChuiAustraliaIvan Magalhaes NEW
Arvin Q FlosiItalyXuxue Feng RENEWAL
Clifford R WieserJapanElwin Sharvill NEGOTIATION
Cody R MaletIndiaIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy R ButtGermany2024-04-21Benton, John B Jr QUALIFIED91Bernardo Dominic
1001Darci H CampainAustralia2024-04-29Feltz Printing Service NEW52Onyama Limba
1002Salvatore U IturbideItaly2024-05-04Dorl, James J Esq RENEWAL5Anna Fali
1003Nicolas R BriddickAustralia2024-05-02Truhlar And Truhlar Attys NEW65Ioni Bowcher
1004Silvio G SlusarskiFrance2024-04-24Benton, John B Jr QUALIFIED97Ioni Bowcher
1005Smith B MacleadItaly2024-05-01Feiner Bros QUALIFIED8Bernardo Dominic
1006Kaitlin P NestleAustralia2024-04-27Feiner Bros NEGOTIATION94Ioni Bowcher
1007Kaitlin I NestleJapan2024-04-11Feiner Bros QUALIFIED23Elwin Sharvill
1008Cody M WieserJapan2024-04-15Buckley Miller Wright NEW94Anna Fali
1009David Q PerinSpain2024-04-23Dorl, James J Esq QUALIFIED92Asiya Javayant
1010Faith M MaletFrance2024-04-30King, Christopher A Esq PROPOSAL82Amy Elsner
1011Francesco U DarakjyRussia2024-05-08Rousseaux, Michael Esq RENEWAL77Ivan Magalhaes
1012Kadeem U IturbideSpain2024-04-19Buckley Miller Wright NEW20Xuxue Feng
1013Francesco G FerenczArgentina2024-04-15Dorl, James J Esq RENEWAL78Xuxue Feng
1014Silvio Z InouyeUnited Kingdom2024-04-27Dorl, James J Esq UNQUALIFIED13Amy Elsner
1015Silvio C BologniaCanada2024-04-28Rangoni Of Florence RENEWAL68Xuxue Feng
1016Darci N InouyeRussia2024-05-02King, Christopher A Esq RENEWAL33Elwin Sharvill
1017Clifford C GlickItaly2024-04-11Chapman, Ross E Esq NEGOTIATION61Amy Elsner
1018Ivar Z RutaBrazil2024-04-23Rangoni Of Florence UNQUALIFIED46Elwin Sharvill
1019Maria T ShinkoCanada2024-04-19Rousseaux, Michael Esq PROPOSAL34Bernardo Dominic
1020Costa L WieserJapan2024-04-26Chanay, Jeffrey A Esq QUALIFIED90Ioni Bowcher
1021Jeanfrancois O GarufiAustralia2024-04-27Feltz Printing Service PROPOSAL44Anna Fali
1022Nicolas P WieserFrance2024-05-05Chapman, Ross E Esq NEW78Asiya Javayant
1023Kadeem V StensethIndia2024-04-19Printing Dimensions NEW9Ioni Bowcher
1024Munro O ShinkoJapan2024-05-05Morlong Associates NEGOTIATION82Onyama Limba
1025Ricardo U VenereIndia2024-04-13Buckley Miller Wright NEGOTIATION23Elwin Sharvill
1026Juan H MaletFrance2024-05-03King, Christopher A Esq NEGOTIATION81Bernardo Dominic
1027Aruna J BowleyIndia2024-04-15Benton, John B Jr RENEWAL22Ivan Magalhaes
1028Cody L GillianBrazil2024-04-15Benton, John B Jr QUALIFIED17Asiya Javayant
1029Ivar R ChuiFrance2024-04-12Chanay, Jeffrey A Esq NEGOTIATION89Bernardo Dominic
1030Leja X RoysterBrazil2024-04-18Printing Dimensions QUALIFIED18Bernardo Dominic
1031Clifford B PerinGermany2024-04-27Chanay, Jeffrey A Esq RENEWAL89Stephen Shaw
1032Arvin W PerinItaly2024-04-28King, Christopher A Esq PROPOSAL26Onyama Limba
1033Adams T PoquetteJapan2024-04-20Feiner Bros QUALIFIED37Elwin Sharvill
1034Alejandro O ButtRussia2024-05-02Printing Dimensions NEW41Amy Elsner
1035Ricardo R AmigonCanada2024-04-11Feiner Bros RENEWAL92Elwin Sharvill
1036Munro M RimFrance2024-04-26Benton, John B Jr QUALIFIED15Ioni Bowcher
1037Aditya O MaletArgentina2024-05-05Feiner Bros QUALIFIED99Amy Elsner
1038Clifford W WieserCanada2024-04-11Commercial Press NEGOTIATION62Bernardo Dominic
1039Ashley N MaletArgentina2024-04-17Printing Dimensions QUALIFIED4Asiya Javayant
1040Smith H KolmetzSpain2024-04-22Rousseaux, Michael Esq UNQUALIFIED15Stephen Shaw
1041Antonio U ShinkoIndia2024-05-01Truhlar And Truhlar Attys UNQUALIFIED88Onyama Limba
1042Cody J MacleadRussia2024-04-25Benton, John B Jr QUALIFIED41Ivan Magalhaes
1043Cody M MacleadUnited Kingdom2024-05-09Commercial Press UNQUALIFIED34Elwin Sharvill
1044Clifford N DoeArgentina2024-04-29Dorl, James J Esq PROPOSAL52Asiya Javayant
1045Emily A DarakjyBrazil2024-04-18Printing Dimensions PROPOSAL21Amy Elsner
1046Smith Q OstroskyAustralia2024-04-14Rangoni Of Florence NEGOTIATION99Anna Fali
1047Misaki G GarufiCanada2024-05-07King, Christopher A Esq QUALIFIED79Ivan Magalhaes
1048Faith X MorascaAustralia2024-05-04Feltz Printing Service QUALIFIED38Amy Elsner
1049James O MorascaJapan2024-05-09Printing Dimensions NEW3Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Johnson J SchemmerArgentinaIvan Magalhaes UNQUALIFIED
Silvio K DoeBrazilAsiya Javayant PROPOSAL
Salvatore W AlbaresArgentinaAnna Fali UNQUALIFIED
Cody H FollerRussiaElwin Sharvill RENEWAL
Ashley M BologniaRussiaBernardo Dominic NEW
Rodrigues P VocelkaCanadaAnna Fali PROPOSAL
Claire X RulapaughBrazilIoni Bowcher NEW
Faith J MarrierArgentinaXuxue Feng RENEWAL
Arvin N BologniaJapanOnyama Limba RENEWAL
Isabel N BologniaAustraliaStephen Shaw PROPOSAL
Costa O SchemmerBrazilIvan Magalhaes RENEWAL
Smith F PerinUnited KingdomBernardo Dominic NEW
Stacey H VocelkaArgentinaOnyama Limba PROPOSAL
Leja O BowleyCanadaOnyama Limba PROPOSAL
Mayumi F BologniaFranceXuxue Feng PROPOSAL
Cody B AlbaresItalyAsiya Javayant NEGOTIATION
Chavez Q OldroydFranceStephen Shaw NEGOTIATION
Rodrigues I CaldareraJapanXuxue Feng NEW
Octavia Q OstroskyItalyAmy Elsner RENEWAL
Smith O SlusarskiRussiaElwin Sharvill QUALIFIED
Mujtaba S GillianRussiaIvan Magalhaes PROPOSAL
Wickens H GarufiItalyAsiya Javayant NEGOTIATION
Jennifer O StensethFranceXuxue Feng NEW
Tony F TollnerJapanAnna Fali UNQUALIFIED
James B SaylorsIndiaXuxue Feng NEGOTIATION
Francesco H MarrierBrazilAmy Elsner PROPOSAL
James O PaprockiIndiaIvan Magalhaes UNQUALIFIED
Aika V SlusarskiItalyAsiya Javayant QUALIFIED
Ashley U GlickArgentinaElwin Sharvill NEW
Arvin C SchemmerArgentinaIoni Bowcher QUALIFIED
Rodrigues I ShinkoCanadaIoni Bowcher NEW
Jennifer Q FollerRussiaIoni Bowcher UNQUALIFIED
Morrow H NestleUnited KingdomAmy Elsner NEW
Jeanfrancois J PerinUnited KingdomAnna Fali PROPOSAL
Wickens E SlusarskiGermanyElwin Sharvill UNQUALIFIED
Aditya V RutaCanadaAmy Elsner PROPOSAL
Stacey E KolmetzRussiaXuxue Feng PROPOSAL
Leon P OldroydArgentinaAmy Elsner RENEWAL
Maria R VenereJapanAsiya Javayant PROPOSAL
Cody U SaylorsFranceAsiya Javayant PROPOSAL
Kaitlin M MaletJapanAsiya Javayant NEW
Kadeem Z NickaSpainOnyama Limba RENEWAL
Rodrigues O MaletUnited KingdomBernardo Dominic RENEWAL
Juan P FerenczIndiaStephen Shaw NEGOTIATION
Maria H PaprockiRussiaStephen Shaw NEW
Greenwood M WieserFranceBernardo Dominic NEW
James F PerinItalyAnna Fali QUALIFIED
Kadeem I WaycottFranceStephen Shaw PROPOSAL
David C BriddickIndiaIvan Magalhaes RENEWAL
Johnson C BowleyItalyAmy Elsner NEW
Frozen Columns
Name
Ashley Q Rim
Maria Z Darakjy
Silvio X Perin
Antonio U Oldroyd
Maria Q Sergi
Jeanfrancois D Nestle
Maria T Stenseth
Aditya L Kusko
Izzy W Ostrosky
Francesco K Darakjy
Nicolas R Sergi
Adams Y Venere
Juan F Whobrey
Izzy V Caudy
Kaitlin M Schemmer
Ashley K Garufi
Deepesh W Caldarera
Antonio S Darakjy
Johnson Z Albares
Maisha H Ruta
Maisha C Ruta
Stacey D Caldarera
Johnson Y Wieser
Salvatore X Waycott
Kaitlin X Chui
Emily X Kolmetz
Francesco P Venere
Cody T Ferencz
Emily H Whobrey
Chavez G Foller
Izzy F Nestle
Costa M Sergi
Murillo Z Doe
Munro Y Bowley
Claire V Gaucho
Aditya K Vocelka
Greenwood U Glick
Deepesh I Malet
Darci F Malet
Alejandro R Marrier
Adams V Bowley
Isabel M Morasca
Silvio X Stockham
Antonio E Caldarera
Wickens V Waycott
Wickens Y Kusko
Adams W Stenseth
Maisha H Nicka
Kadeem Q Figeroa
Deepesh V Caudy
IdCountryDate
1000United Kingdom2024-04-30
1001Japan2024-04-27
1002United Kingdom2024-04-21
1003Russia2024-04-23
1004Brazil2024-04-29
1005United Kingdom2024-04-30
1006Spain2024-04-24
1007Italy2024-04-18
1008Japan2024-04-28
1009Australia2024-05-02
1010Canada2024-04-16
1011Canada2024-05-04
1012Canada2024-04-28
1013Argentina2024-04-11
1014Italy2024-05-01
1015Argentina2024-04-21
1016Argentina2024-05-01
1017France2024-05-01
1018Argentina2024-04-18
1019India2024-04-16
1020Italy2024-04-29
1021Japan2024-04-17
1022Italy2024-05-02
1023Canada2024-05-05
1024Argentina2024-04-26
1025Australia2024-05-09
1026United Kingdom2024-04-21
1027Russia2024-04-22
1028Canada2024-05-10
1029Russia2024-04-22
1030Germany2024-04-30
1031Italy2024-05-02
1032France2024-04-11
1033Brazil2024-05-06
1034Italy2024-04-27
1035France2024-05-02
1036Australia2024-05-07
1037Brazil2024-04-15
1038Brazil2024-04-21
1039Argentina2024-05-06
1040United Kingdom2024-04-21
1041United Kingdom2024-05-05
1042Spain2024-05-07
1043France2024-05-09
1044Canada2024-04-22
1045United Kingdom2024-05-02
1046Spain2024-04-17
1047Spain2024-04-27
1048Germany2024-04-20
1049Germany2024-05-03

On-Demand Data

NameIdCountryDate
Aruna V Wieser1000Canada2024-05-03
Adams R Royster1001Italy2024-04-19
Smith Z Glick1002Japan2024-04-27
Kaitlin O Paprocki1003Canada2024-04-23
Deepesh H Sergi1004Japan2024-05-10
Mujtaba K Stenseth1005Japan2024-05-06
Aika V Dilliard1006Italy2024-04-30
Murillo E Tollner1007United Kingdom2024-04-23
Julie C Stockham1008Russia2024-05-04
Mayumi I Nicka1009Brazil2024-05-05
Costa R Schemmer1010India2024-04-22
Darci Z Royster1011Russia2024-05-08
Morrow K Saylors1012Argentina2024-05-09
Alejandro V Venere1013Japan2024-04-23
Salvatore U Amigon1014Spain2024-05-01
Jennifer J Venere1015Japan2024-04-25
David Q Caudy1016Russia2024-05-10
Octavia M Stenseth1017Italy2024-04-11
Mujtaba G Ruta1018Japan2024-04-18
Darci N Saylors1019Germany2024-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin R MaletIndiaAnna Fali NEW
Izzy Y NickaItalyElwin Sharvill NEW
Ricardo V SaylorsCanadaElwin Sharvill UNQUALIFIED
Leon O KuskoAustraliaOnyama Limba NEGOTIATION
Cody K DilliardAustraliaIvan Magalhaes NEGOTIATION
Deepesh I AlbaresFranceStephen Shaw UNQUALIFIED
Nicolas S KuskoUnited KingdomStephen Shaw NEGOTIATION
Aruna M CaldareraBrazilOnyama Limba QUALIFIED
Deepesh Z AlbaresItalyOnyama Limba RENEWAL
Emily N GillianBrazilAnna Fali NEGOTIATION
Octavia W DoeBrazilIvan Magalhaes PROPOSAL
Morrow B GauchoRussiaIvan Magalhaes PROPOSAL
James Q VenereJapanBernardo Dominic PROPOSAL
Adams M NestleItalyAmy Elsner PROPOSAL
Jennifer Y CaldareraCanadaAnna Fali NEW
Smith Q StockhamRussiaElwin Sharvill RENEWAL
Emily U AlbaresSpainIvan Magalhaes NEW
Claire W FerenczJapanAnna Fali NEW
Ashley H MarrierFranceAsiya Javayant NEGOTIATION
Nicolas X ShinkoGermanyBernardo Dominic NEGOTIATION
Deepesh B KuskoFranceXuxue Feng NEGOTIATION
Juan M TollnerBrazilElwin Sharvill NEW
Faith T DarakjySpainIvan Magalhaes NEW
Wickens S OstroskyJapanIoni Bowcher NEW
Johnson R GillianFranceOnyama Limba UNQUALIFIED
Greenwood I SergiCanadaElwin Sharvill NEW
Jennifer Z DarakjyRussiaAnna Fali PROPOSAL
Claire J ChuiJapanBernardo Dominic RENEWAL
Sinclair X PerinIndiaOnyama Limba PROPOSAL
Salvatore V StensethBrazilOnyama Limba PROPOSAL
Jones G SaylorsAustraliaStephen Shaw PROPOSAL
Tony J MaletJapanIoni Bowcher QUALIFIED
Emily D SlusarskiItalyXuxue Feng QUALIFIED
Jefferson P MacleadUnited KingdomStephen Shaw NEW
Greenwood J SlusarskiJapanAmy Elsner RENEWAL
Darci H FollerGermanyAsiya Javayant NEW
Aditya P SaylorsJapanXuxue Feng RENEWAL
Chavez V WhobreyRussiaAsiya Javayant NEGOTIATION
Chavez V MaletFranceElwin Sharvill RENEWAL
Nicolas M WhobreyGermanyAnna Fali 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>