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
Stacey N ShinkoBrazilBernardo Dominic RENEWAL
Aika N RutaJapanIvan Magalhaes PROPOSAL
Silvio E MarrierIndiaStephen Shaw QUALIFIED
James F PerinBrazilStephen Shaw NEW
James N AlbaresBrazilAsiya Javayant PROPOSAL
Murillo I AlbaresRussiaXuxue Feng NEGOTIATION
Aruna Y RutaItalyIvan Magalhaes PROPOSAL
Isabel V RulapaughRussiaStephen Shaw RENEWAL
Arvin R PerinCanadaAsiya Javayant UNQUALIFIED
Izzy F StensethUnited KingdomAnna Fali NEW
Chavez R SaylorsItalyAsiya Javayant RENEWAL
Izzy N DoeBrazilAnna Fali QUALIFIED
Jones G GauchoCanadaIvan Magalhaes UNQUALIFIED
Chavez K RoysterRussiaStephen Shaw NEW
Izzy D VenereJapanOnyama Limba UNQUALIFIED
Sinclair L MaletSpainIvan Magalhaes RENEWAL
Aika F InouyeUnited KingdomXuxue Feng NEGOTIATION
Jefferson D AmigonItalyOnyama Limba PROPOSAL
Maisha O CampainIndiaElwin Sharvill UNQUALIFIED
Cody P RulapaughFranceElwin Sharvill NEW
Johnson D SlusarskiJapanStephen Shaw PROPOSAL
Nicolas D WaycottArgentinaIvan Magalhaes NEGOTIATION
Salvatore C FollerItalyAnna Fali NEW
Jefferson R RimAustraliaAsiya Javayant PROPOSAL
Octavia X StockhamSpainElwin Sharvill PROPOSAL
Mujtaba G BologniaFranceAmy Elsner PROPOSAL
Deepesh G FollerAustraliaStephen Shaw RENEWAL
Kaitlin Z PoquetteGermanyStephen Shaw PROPOSAL
Kadeem H FerenczAustraliaAsiya Javayant RENEWAL
Nicolas P BologniaArgentinaAmy Elsner QUALIFIED
Cody Z MaletArgentinaAsiya Javayant PROPOSAL
Silvio C SaylorsGermanyElwin Sharvill NEGOTIATION
Kadeem X OldroydIndiaAnna Fali PROPOSAL
Aruna W PaprockiUnited KingdomIoni Bowcher NEGOTIATION
Claire F FerenczArgentinaAsiya Javayant PROPOSAL
Alejandro V SlusarskiItalyElwin Sharvill PROPOSAL
Mayumi B SlusarskiSpainIoni Bowcher NEW
Chavez M MorascaRussiaIoni Bowcher NEGOTIATION
Mayumi Y PoquetteArgentinaAsiya Javayant NEW
Misaki X WhobreyUnited KingdomAnna Fali QUALIFIED
Ashley P OldroydSpainAnna Fali UNQUALIFIED
Leja F NestleCanadaIvan Magalhaes PROPOSAL
Munro P StensethJapanIvan Magalhaes RENEWAL
Octavia G NickaAustraliaXuxue Feng NEW
Greenwood H MorascaIndiaAnna Fali QUALIFIED
Aika A WhobreyFranceIvan Magalhaes NEW
Tony D NickaCanadaAsiya Javayant NEW
Alejandro M SlusarskiBrazilStephen Shaw NEGOTIATION
Faith E PerinAustraliaIoni Bowcher UNQUALIFIED
Octavia C RulapaughFranceOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Murillo M TollnerGermanyElwin Sharvill RENEWAL
Julie A RutaSpainBernardo Dominic UNQUALIFIED
Stacey W MacleadCanadaIoni Bowcher QUALIFIED
Nicolas J AmigonSpainAnna Fali RENEWAL
Chavez V GillianSpainOnyama Limba QUALIFIED
Clifford L VenereJapanBernardo Dominic UNQUALIFIED
Aika U FigeroaUnited KingdomAmy Elsner QUALIFIED
Greenwood P RulapaughAustraliaAmy Elsner PROPOSAL
Munro V FigeroaFranceAmy Elsner UNQUALIFIED
Darci K FlosiRussiaAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika T PoquetteSpain2024-04-09Printing Dimensions NEGOTIATION17Elwin Sharvill
1001Alejandro N GarufiFrance2024-04-25Dorl, James J Esq NEW81Stephen Shaw
1002Maisha B KuskoBrazil2024-04-15Buckley Miller Wright NEW99Xuxue Feng
1003Izzy K NestleFrance2024-04-01Truhlar And Truhlar Attys NEW50Bernardo Dominic
1004Greenwood K SlusarskiCanada2024-04-06Dorl, James J Esq PROPOSAL37Xuxue Feng
1005Greenwood D TollnerJapan2024-04-10Chapman, Ross E Esq NEGOTIATION56Bernardo Dominic
1006Greenwood Z KolmetzRussia2024-04-04Morlong Associates QUALIFIED48Xuxue Feng
1007Greenwood K GauchoItaly2024-04-02Commercial Press QUALIFIED31Anna Fali
1008Smith I PaprockiAustralia2024-04-28Feltz Printing Service NEGOTIATION13Stephen Shaw
1009Murillo M MorascaUnited Kingdom2024-04-28Rangoni Of Florence NEW20Anna Fali
1010Salvatore Q DarakjyJapan2024-04-12Chanay, Jeffrey A Esq RENEWAL1Ivan Magalhaes
1011Claire N NestleRussia2024-04-03Chanay, Jeffrey A Esq NEW37Ioni Bowcher
1012Morrow Q DilliardAustralia2024-04-15Commercial Press QUALIFIED45Ivan Magalhaes
1013Rodrigues S DilliardJapan2024-04-18King, Christopher A Esq PROPOSAL88Asiya Javayant
1014Jefferson B SchemmerFrance2024-04-03Commercial Press PROPOSAL98Anna Fali
1015Rodrigues G VenereAustralia2024-04-14Chapman, Ross E Esq NEW89Amy Elsner
1016Octavia S FollerItaly2024-03-31Morlong Associates RENEWAL40Amy Elsner
1017Sinclair Z NestleBrazil2024-04-18Feltz Printing Service UNQUALIFIED70Ioni Bowcher
1018Deepesh L NickaArgentina2024-04-22King, Christopher A Esq NEGOTIATION26Xuxue Feng
1019Silvio V AmigonFrance2024-04-14Feltz Printing Service NEW48Ivan Magalhaes
1020Greenwood M OldroydIndia2024-04-13Rangoni Of Florence QUALIFIED68Asiya Javayant
1021Mayumi C PerinItaly2024-04-07Chemel, James L Cpa NEGOTIATION68Bernardo Dominic
1022Mayumi P OstroskyAustralia2024-04-24Chapman, Ross E Esq UNQUALIFIED21Stephen Shaw
1023Ashley B GlickUnited Kingdom2024-04-09Feltz Printing Service UNQUALIFIED16Elwin Sharvill
1024Johnson S ChuiItaly2024-04-23Buckley Miller Wright PROPOSAL82Onyama Limba
1025Jefferson B MacleadItaly2024-04-13Dorl, James J Esq UNQUALIFIED98Ioni Bowcher
1026Munro K GillianBrazil2024-04-18Chanay, Jeffrey A Esq UNQUALIFIED6Stephen Shaw
1027David B CaudyCanada2024-04-16Buckley Miller Wright NEW13Onyama Limba
1028Sinclair H MacleadRussia2024-04-18Commercial Press NEW76Anna Fali
1029Kaitlin Q DarakjyFrance2024-04-09Chapman, Ross E Esq NEGOTIATION3Asiya Javayant
1030Isabel Y WaycottItaly2024-04-17Feiner Bros NEW43Xuxue Feng
1031Salvatore U CaudyIndia2024-04-03Benton, John B Jr PROPOSAL65Onyama Limba
1032Smith I TollnerItaly2024-04-24Rousseaux, Michael Esq UNQUALIFIED26Amy Elsner
1033Salvatore Z RoysterGermany2024-04-03Printing Dimensions NEW75Elwin Sharvill
1034Maisha V PaprockiSpain2024-04-08Morlong Associates RENEWAL21Anna Fali
1035Costa A CaudyArgentina2024-04-07Buckley Miller Wright PROPOSAL32Xuxue Feng
1036Costa K VenereBrazil2024-04-10Rousseaux, Michael Esq QUALIFIED37Bernardo Dominic
1037Sinclair D SlusarskiJapan2024-04-13Printing Dimensions NEGOTIATION75Ivan Magalhaes
1038Aruna V DilliardAustralia2024-04-01King, Christopher A Esq RENEWAL64Onyama Limba
1039Salvatore Z ButtJapan2024-04-12Rangoni Of Florence NEGOTIATION87Onyama Limba
1040Greenwood N DarakjyCanada2024-04-27Chapman, Ross E Esq UNQUALIFIED34Onyama Limba
1041Smith Z FlosiItaly2024-04-26Rangoni Of Florence RENEWAL93Ioni Bowcher
1042Octavia P DoeUnited Kingdom2024-04-05Feiner Bros UNQUALIFIED31Elwin Sharvill
1043Ricardo X RoysterCanada2024-04-20Dorl, James J Esq PROPOSAL40Elwin Sharvill
1044Aruna K GarufiBrazil2024-04-19Benton, John B Jr NEW66Stephen Shaw
1045Cody L InouyeUnited Kingdom2024-04-04Chanay, Jeffrey A Esq QUALIFIED34Onyama Limba
1046Mujtaba A TollnerGermany2024-04-26Rousseaux, Michael Esq NEGOTIATION40Xuxue Feng
1047Mayumi M WieserBrazil2024-04-16Feiner Bros RENEWAL82Onyama Limba
1048Adams X MarrierFrance2024-04-08Feiner Bros NEW46Stephen Shaw
1049Maisha M MorascaSpain2024-04-04Chapman, Ross E Esq UNQUALIFIED84Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Smith D BologniaItalyAnna Fali RENEWAL
Ashley T DilliardItalyStephen Shaw RENEWAL
Jennifer Y RimGermanyAnna Fali RENEWAL
Sinclair G CampainRussiaAsiya Javayant PROPOSAL
Faith R FollerSpainStephen Shaw RENEWAL
Clifford S FlosiBrazilIoni Bowcher NEGOTIATION
Kaitlin E SlusarskiFranceIoni Bowcher UNQUALIFIED
Jennifer W MarrierRussiaAsiya Javayant PROPOSAL
Kadeem L KuskoCanadaElwin Sharvill PROPOSAL
Emily F KuskoSpainOnyama Limba NEGOTIATION
Murillo J WhobreyGermanyOnyama Limba PROPOSAL
Darci U CampainCanadaAsiya Javayant UNQUALIFIED
Silvio U IturbideIndiaBernardo Dominic PROPOSAL
Murillo J MacleadItalyBernardo Dominic RENEWAL
Costa Z CaudyUnited KingdomIvan Magalhaes PROPOSAL
Emily Z DarakjyGermanyAsiya Javayant NEW
Leon L WieserFranceOnyama Limba RENEWAL
Sinclair O VocelkaBrazilBernardo Dominic NEW
Ivar R SlusarskiSpainStephen Shaw QUALIFIED
Johnson T PaprockiCanadaIvan Magalhaes PROPOSAL
James P GillianSpainStephen Shaw QUALIFIED
Wickens X WaycottAustraliaStephen Shaw QUALIFIED
Aditya U InouyeJapanOnyama Limba NEGOTIATION
Aditya P InouyeIndiaIoni Bowcher PROPOSAL
Adams O CaudyRussiaAsiya Javayant NEW
Juan S MaletGermanyElwin Sharvill NEW
Ricardo L FigeroaFranceAsiya Javayant PROPOSAL
Nicolas J AmigonSpainIoni Bowcher NEGOTIATION
Maisha W DilliardUnited KingdomAsiya Javayant UNQUALIFIED
Morrow R MorascaAustraliaAsiya Javayant RENEWAL
Clifford K AmigonArgentinaBernardo Dominic UNQUALIFIED
Izzy P GillianSpainXuxue Feng NEGOTIATION
Munro Z StockhamArgentinaXuxue Feng PROPOSAL
Faith U SchemmerBrazilStephen Shaw RENEWAL
Octavia N BriddickCanadaXuxue Feng NEGOTIATION
Cody I RulapaughSpainAnna Fali PROPOSAL
Nicolas A MorascaSpainBernardo Dominic NEW
Wickens M WhobreyCanadaOnyama Limba NEW
Maria E VenereGermanyIvan Magalhaes NEW
Rodrigues W WhobreyBrazilAsiya Javayant NEW
Smith S BologniaGermanyOnyama Limba PROPOSAL
Isabel I NestleJapanXuxue Feng UNQUALIFIED
Kaitlin L StensethBrazilAmy Elsner NEW
Aditya V TollnerJapanAnna Fali UNQUALIFIED
Francesco T RimCanadaOnyama Limba UNQUALIFIED
Izzy I SlusarskiSpainAnna Fali QUALIFIED
Emily F NickaGermanyIoni Bowcher RENEWAL
Johnson R SergiBrazilStephen Shaw QUALIFIED
Darci E PerinArgentinaAmy Elsner NEGOTIATION
Greenwood W MacleadSpainAnna Fali RENEWAL
Frozen Columns
Name
Mujtaba S Gaucho
Francesco X Saylors
Kaitlin C Paprocki
Emily F Albares
Deepesh J Paprocki
Jennifer K Garufi
Johnson J Nestle
Chavez R Maclead
Mayumi A Ostrosky
Smith O Stenseth
Izzy V Whobrey
Octavia E Darakjy
Jeanfrancois R Malet
Clifford S Slusarski
Cody S Nicka
Deepesh K Caldarera
James V Chui
Rodrigues Q Paprocki
Antonio B Gaucho
Morrow C Saylors
Emily W Nicka
Maisha T Campain
Maria U Slusarski
Mujtaba Z Garufi
Mujtaba H Poquette
Jennifer G Albares
Octavia P Figeroa
Wickens Z Marrier
Maisha X Gaucho
Mayumi V Foller
Smith F Schemmer
Izzy K Glick
Alejandro V Schemmer
Francesco T Morasca
Kaitlin P Poquette
Kadeem W Whobrey
Ashley X Shinko
Silvio P Iturbide
Alejandro J Doe
Kaitlin X Glick
Maria H Flosi
Ashley E Vocelka
Cody E Vocelka
Smith C Flosi
Julie Z Paprocki
Maisha R Marrier
Jones D Campain
James H Flosi
Murillo Z Campain
Silvio A Poquette
IdCountryDate
1000United Kingdom2024-04-14
1001Australia2024-04-14
1002Germany2024-04-18
1003Canada2024-04-15
1004Canada2024-04-28
1005Brazil2024-04-27
1006Brazil2024-04-04
1007Argentina2024-04-10
1008Canada2024-04-05
1009Spain2024-04-25
1010Argentina2024-04-24
1011Argentina2024-04-18
1012India2024-04-26
1013Canada2024-03-30
1014Brazil2024-04-08
1015France2024-03-30
1016Japan2024-04-18
1017Brazil2024-04-18
1018Germany2024-04-17
1019Spain2024-04-04
1020India2024-04-12
1021Brazil2024-03-30
1022Italy2024-04-06
1023France2024-04-10
1024Italy2024-04-23
1025United Kingdom2024-04-27
1026Argentina2024-04-19
1027France2024-04-03
1028United Kingdom2024-04-03
1029France2024-04-03
1030Italy2024-04-24
1031Japan2024-04-09
1032Brazil2024-04-09
1033Australia2024-04-24
1034Brazil2024-04-03
1035Brazil2024-04-18
1036Germany2024-04-23
1037Brazil2024-04-08
1038Canada2024-04-20
1039France2024-04-28
1040United Kingdom2024-04-21
1041Argentina2024-04-18
1042Canada2024-04-23
1043Australia2024-04-26
1044Italy2024-04-20
1045Japan2024-03-30
1046Italy2024-04-17
1047Japan2024-04-04
1048Argentina2024-04-01
1049Spain2024-04-20

On-Demand Data

NameIdCountryDate
Arvin Z Briddick1000Japan2024-04-07
Aika X Stockham1001India2024-04-15
Jennifer E Nestle1002Germany2024-04-27
Leon U Morasca1003India2024-04-08
Ricardo A Doe1004India2024-04-01
Arvin Q Nestle1005Brazil2024-04-17
Leja S Dilliard1006Canada2024-04-09
Smith W Bolognia1007France2024-03-30
Leja K Morasca1008India2024-03-30
Costa G Chui1009Italy2024-04-09
Cody P Rulapaugh1010Japan2024-04-14
Adams W Campain1011Russia2024-04-27
Tony O Gaucho1012India2024-04-26
Greenwood Y Morasca1013Argentina2024-04-11
Murillo H Tollner1014Canada2024-04-17
Juan Y Dilliard1015Italy2024-04-13
Adams K Ferencz1016Australia2024-04-21
Francesco B Gillian1017Japan2024-04-04
Sinclair Q Figeroa1018France2024-04-01
Rodrigues Z Iturbide1019Russia2024-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson C IturbideRussiaXuxue Feng QUALIFIED
Sinclair F WieserIndiaIoni Bowcher NEW
Wickens X OstroskyUnited KingdomOnyama Limba QUALIFIED
Ricardo X KolmetzAustraliaOnyama Limba RENEWAL
Wickens S FerenczItalyAnna Fali NEW
Aditya C ShinkoIndiaXuxue Feng PROPOSAL
Sinclair M RutaSpainElwin Sharvill PROPOSAL
Johnson C CampainArgentinaAmy Elsner NEGOTIATION
Tony P AlbaresIndiaOnyama Limba NEGOTIATION
Alejandro L SergiArgentinaXuxue Feng PROPOSAL
Salvatore H NestleAustraliaElwin Sharvill QUALIFIED
Leja V FollerBrazilXuxue Feng PROPOSAL
David U RutaItalyOnyama Limba QUALIFIED
Aika L VocelkaFranceAmy Elsner PROPOSAL
Leon X WieserUnited KingdomStephen Shaw NEW
Munro S VocelkaUnited KingdomAsiya Javayant PROPOSAL
Arvin T WhobreyItalyAsiya Javayant UNQUALIFIED
James B DarakjyCanadaAmy Elsner NEW
Morrow C MorascaArgentinaBernardo Dominic NEW
Maria W TollnerGermanyOnyama Limba NEGOTIATION
Morrow N RoysterItalyOnyama Limba QUALIFIED
Kaitlin B ButtCanadaStephen Shaw NEGOTIATION
Stacey U RimArgentinaStephen Shaw RENEWAL
Ricardo Z InouyeArgentinaAsiya Javayant RENEWAL
Antonio O BowleyJapanBernardo Dominic PROPOSAL
Kaitlin U BriddickJapanAsiya Javayant RENEWAL
Darci D FollerSpainAmy Elsner QUALIFIED
Costa W SlusarskiItalyIoni Bowcher NEW
Johnson F GillianSpainIoni Bowcher UNQUALIFIED
Leja W SchemmerCanadaOnyama Limba NEW
Octavia P GarufiFranceBernardo Dominic PROPOSAL
Nicolas K WieserArgentinaXuxue Feng UNQUALIFIED
Ivar G WieserRussiaAsiya Javayant PROPOSAL
Jefferson E WaycottJapanAnna Fali QUALIFIED
Cody R KolmetzFranceIvan Magalhaes RENEWAL
Arvin X BriddickItalyAnna Fali PROPOSAL
Jones V WhobreyBrazilElwin Sharvill QUALIFIED
Misaki R MaletBrazilIvan Magalhaes RENEWAL
Chavez W BowleyItalyStephen Shaw UNQUALIFIED
Misaki I GlickRussiaBernardo Dominic UNQUALIFIED

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