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 P RimIndiaElwin Sharvill UNQUALIFIED
Jones X WieserGermanyIoni Bowcher NEW
Wickens U VenereJapanIvan Magalhaes PROPOSAL
Cody U RutaFranceAnna Fali NEW
Izzy O OstroskyFranceIoni Bowcher NEW
Cody R WieserFranceAsiya Javayant NEGOTIATION
Stacey C MarrierBrazilElwin Sharvill NEW
Silvio X VenereUnited KingdomXuxue Feng PROPOSAL
Munro R BriddickItalyAnna Fali NEW
Leja E IturbideBrazilAmy Elsner QUALIFIED
James D StensethRussiaAmy Elsner PROPOSAL
Misaki N TollnerIndiaAnna Fali NEW
Kaitlin T GlickUnited KingdomAnna Fali NEW
Jones T PaprockiJapanAnna Fali NEW
Jeanfrancois T CaldareraAustraliaElwin Sharvill RENEWAL
Rodrigues N PaprockiCanadaIoni Bowcher QUALIFIED
Costa P KuskoRussiaAsiya Javayant NEW
Tony L FlosiJapanOnyama Limba PROPOSAL
Leja I GlickUnited KingdomIvan Magalhaes UNQUALIFIED
Sinclair H MaletGermanyAnna Fali QUALIFIED
Morrow A MarrierJapanIoni Bowcher UNQUALIFIED
Ivar F ChuiSpainAsiya Javayant QUALIFIED
Rodrigues X SlusarskiCanadaElwin Sharvill UNQUALIFIED
Mujtaba C FigeroaBrazilIoni Bowcher PROPOSAL
James H FlosiItalyOnyama Limba PROPOSAL
Ricardo Z AmigonItalyAnna Fali NEGOTIATION
Jefferson S VocelkaCanadaIvan Magalhaes RENEWAL
Jones S MacleadFranceXuxue Feng NEGOTIATION
Morrow H KolmetzIndiaStephen Shaw RENEWAL
Francesco F KolmetzAustraliaIvan Magalhaes QUALIFIED
Deepesh S DilliardGermanyAmy Elsner UNQUALIFIED
Jefferson S TollnerRussiaOnyama Limba RENEWAL
Jefferson Y ButtItalyAnna Fali NEGOTIATION
Deepesh U BowleyRussiaStephen Shaw PROPOSAL
Jefferson W GauchoGermanyElwin Sharvill UNQUALIFIED
Costa E MorascaFranceElwin Sharvill NEGOTIATION
Tony F RoysterUnited KingdomXuxue Feng NEGOTIATION
Jennifer V DarakjyJapanBernardo Dominic NEGOTIATION
Izzy R ChuiBrazilXuxue Feng UNQUALIFIED
Smith W DilliardItalyXuxue Feng NEGOTIATION
Aika H NestleAustraliaAnna Fali PROPOSAL
Octavia F CampainUnited KingdomAmy Elsner PROPOSAL
Deepesh S PaprockiCanadaIvan Magalhaes UNQUALIFIED
Jeanfrancois H NickaJapanElwin Sharvill NEW
Kaitlin F VocelkaItalyElwin Sharvill NEW
Claire W DoeRussiaElwin Sharvill UNQUALIFIED
Mayumi A FerenczGermanyAnna Fali NEGOTIATION
Jennifer Z OldroydItalyBernardo Dominic UNQUALIFIED
Izzy W MaletJapanAmy Elsner QUALIFIED
Leon U RoysterAustraliaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo F ButtSpainAsiya Javayant NEW
Misaki K OstroskyRussiaIoni Bowcher UNQUALIFIED
Arvin Y NickaCanadaAsiya Javayant NEGOTIATION
James N GarufiItalyIoni Bowcher PROPOSAL
Leja Z GarufiGermanyIvan Magalhaes PROPOSAL
Costa F CaldareraGermanyAmy Elsner QUALIFIED
Francesco E RoysterSpainIoni Bowcher QUALIFIED
Munro Q BriddickSpainXuxue Feng NEW
Maria Q ShinkoIndiaAmy Elsner UNQUALIFIED
Isabel T StensethFranceBernardo Dominic QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia Q BologniaArgentina2024-04-01Rousseaux, Michael Esq UNQUALIFIED87Amy Elsner
1001Kadeem H CampainJapan2024-04-13Buckley Miller Wright UNQUALIFIED64Onyama Limba
1002James T NickaRussia2024-04-20Truhlar And Truhlar Attys UNQUALIFIED7Asiya Javayant
1003Adams B ShinkoRussia2024-04-05Morlong Associates NEGOTIATION56Elwin Sharvill
1004Ricardo O FollerArgentina2024-04-07Chapman, Ross E Esq RENEWAL41Asiya Javayant
1005Ricardo W OstroskyIndia2024-04-17Dorl, James J Esq NEW30Stephen Shaw
1006Maria C PerinItaly2024-04-20Buckley Miller Wright UNQUALIFIED0Ivan Magalhaes
1007Emily D AmigonBrazil2024-04-19Buckley Miller Wright NEGOTIATION28Stephen Shaw
1008Johnson W PerinBrazil2024-04-11Buckley Miller Wright RENEWAL6Onyama Limba
1009Wickens J GlickRussia2024-04-13Rangoni Of Florence NEGOTIATION34Amy Elsner
1010Darci F MaletUnited Kingdom2024-04-20Buckley Miller Wright QUALIFIED1Xuxue Feng
1011Sinclair P MarrierSpain2024-04-27Chapman, Ross E Esq NEGOTIATION64Asiya Javayant
1012Jefferson K StensethCanada2024-04-13Chanay, Jeffrey A Esq NEGOTIATION90Ivan Magalhaes
1013Leja Z VocelkaIndia2024-04-22Printing Dimensions RENEWAL8Ivan Magalhaes
1014Mayumi B SlusarskiJapan2024-04-13Chapman, Ross E Esq RENEWAL85Elwin Sharvill
1015Claire Q AlbaresCanada2024-04-08Rousseaux, Michael Esq RENEWAL54Xuxue Feng
1016Maisha C FerenczArgentina2024-04-22Benton, John B Jr PROPOSAL81Amy Elsner
1017Antonio R StensethArgentina2024-04-26Printing Dimensions NEGOTIATION50Ioni Bowcher
1018Misaki H DoeItaly2024-04-03Chemel, James L Cpa QUALIFIED71Bernardo Dominic
1019Emily P DarakjyAustralia2024-04-03Chemel, James L Cpa UNQUALIFIED52Asiya Javayant
1020Sinclair K MaletItaly2024-04-25Commercial Press QUALIFIED27Onyama Limba
1021Mujtaba J StensethAustralia2024-04-10Printing Dimensions UNQUALIFIED79Ivan Magalhaes
1022Alejandro H BologniaFrance2024-04-12Printing Dimensions RENEWAL76Anna Fali
1023Jennifer Z BowleyFrance2024-04-04Chanay, Jeffrey A Esq UNQUALIFIED78Asiya Javayant
1024Francesco J GarufiUnited Kingdom2024-03-29King, Christopher A Esq NEW12Stephen Shaw
1025Mujtaba B OldroydJapan2024-03-31King, Christopher A Esq NEGOTIATION77Anna Fali
1026David V FigeroaUnited Kingdom2024-04-02Chanay, Jeffrey A Esq NEGOTIATION43Asiya Javayant
1027Mayumi J VocelkaUnited Kingdom2024-04-18Feiner Bros PROPOSAL26Asiya Javayant
1028Wickens B TollnerCanada2024-04-13Chemel, James L Cpa UNQUALIFIED42Xuxue Feng
1029Ashley V DoeArgentina2024-04-15Buckley Miller Wright UNQUALIFIED31Asiya Javayant
1030Misaki V PaprockiIndia2024-04-13Feiner Bros QUALIFIED97Ioni Bowcher
1031Leon B FigeroaItaly2024-04-20Commercial Press PROPOSAL17Amy Elsner
1032Jefferson E SchemmerBrazil2024-04-16Commercial Press PROPOSAL96Elwin Sharvill
1033Tony T MaletRussia2024-04-12King, Christopher A Esq PROPOSAL19Onyama Limba
1034James D BriddickAustralia2024-04-27Printing Dimensions QUALIFIED51Elwin Sharvill
1035Munro U DoeSpain2024-04-16Buckley Miller Wright UNQUALIFIED56Xuxue Feng
1036Smith A GlickCanada2024-04-04Morlong Associates RENEWAL43Stephen Shaw
1037Ivar X MorascaRussia2024-04-14Buckley Miller Wright QUALIFIED10Asiya Javayant
1038Murillo F FlosiItaly2024-04-02Chapman, Ross E Esq RENEWAL75Ioni Bowcher
1039Ashley X PaprockiIndia2024-04-08Feiner Bros UNQUALIFIED22Ioni Bowcher
1040Adams K InouyeAustralia2024-04-08King, Christopher A Esq RENEWAL53Anna Fali
1041Tony Q WaycottJapan2024-04-13Morlong Associates NEW38Onyama Limba
1042Mayumi V VocelkaJapan2024-04-04Rangoni Of Florence NEGOTIATION58Asiya Javayant
1043Jeanfrancois G PoquetteUnited Kingdom2024-03-31Feiner Bros NEGOTIATION81Ivan Magalhaes
1044Antonio V DarakjyUnited Kingdom2024-03-30Feltz Printing Service RENEWAL47Onyama Limba
1045Smith Z OldroydCanada2024-04-14Printing Dimensions NEW62Onyama Limba
1046Morrow J GarufiAustralia2024-04-08Rangoni Of Florence PROPOSAL90Onyama Limba
1047Cody J KolmetzJapan2024-04-09Feiner Bros RENEWAL28Amy Elsner
1048Leja J BologniaFrance2024-04-19Commercial Press UNQUALIFIED46Anna Fali
1049Salvatore E DilliardJapan2024-04-04Rangoni Of Florence RENEWAL58Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Ivar D GlickSpainOnyama Limba UNQUALIFIED
Deepesh U BriddickSpainAsiya Javayant UNQUALIFIED
Tony Y SchemmerBrazilAsiya Javayant QUALIFIED
David S RutaJapanAnna Fali NEGOTIATION
Clifford N BowleyAustraliaXuxue Feng RENEWAL
Morrow G MaletBrazilIoni Bowcher PROPOSAL
Smith P RimFranceAnna Fali UNQUALIFIED
Stacey F MacleadRussiaBernardo Dominic PROPOSAL
Maisha S MaletItalyBernardo Dominic NEGOTIATION
Francesco F StensethFranceStephen Shaw NEGOTIATION
Leja V GarufiUnited KingdomElwin Sharvill PROPOSAL
Octavia L WhobreyIndiaElwin Sharvill UNQUALIFIED
Clifford G ShinkoGermanyAmy Elsner QUALIFIED
Murillo Z PoquetteFranceElwin Sharvill NEGOTIATION
Mayumi Q VocelkaFranceStephen Shaw PROPOSAL
Nicolas I GillianCanadaElwin Sharvill PROPOSAL
Murillo P ButtAustraliaXuxue Feng RENEWAL
Morrow O BowleyBrazilAmy Elsner RENEWAL
Jefferson Q KolmetzGermanyElwin Sharvill PROPOSAL
Claire X FollerArgentinaAsiya Javayant NEW
Smith L RimCanadaStephen Shaw QUALIFIED
Greenwood X BriddickItalyAmy Elsner QUALIFIED
Leja W MaletIndiaAmy Elsner QUALIFIED
Aruna I ChuiBrazilIvan Magalhaes PROPOSAL
Julie O MorascaArgentinaElwin Sharvill QUALIFIED
Julie V SchemmerItalyOnyama Limba PROPOSAL
Faith O SaylorsBrazilElwin Sharvill RENEWAL
Salvatore T FollerGermanyAnna Fali NEW
Kaitlin P AmigonRussiaIoni Bowcher PROPOSAL
Morrow P VocelkaArgentinaAsiya Javayant UNQUALIFIED
Murillo B NestleSpainElwin Sharvill NEGOTIATION
Mayumi I BowleyJapanIvan Magalhaes UNQUALIFIED
Costa K RimJapanAnna Fali PROPOSAL
Misaki P NickaAustraliaIvan Magalhaes QUALIFIED
James G FlosiCanadaStephen Shaw QUALIFIED
Leon D MacleadIndiaOnyama Limba NEW
Leon J MarrierCanadaXuxue Feng UNQUALIFIED
Emily X BriddickIndiaOnyama Limba PROPOSAL
Kadeem J RimGermanyIoni Bowcher NEGOTIATION
Deepesh N NestleRussiaOnyama Limba PROPOSAL
Cody G WhobreySpainAsiya Javayant NEW
Ricardo T DoeItalyAsiya Javayant NEW
Deepesh P RimSpainBernardo Dominic NEGOTIATION
Francesco E NickaArgentinaAsiya Javayant NEW
Stacey B SlusarskiArgentinaElwin Sharvill PROPOSAL
Arvin B VenereItalyBernardo Dominic RENEWAL
Aruna J PerinAustraliaStephen Shaw NEGOTIATION
Claire C FigeroaItalyElwin Sharvill QUALIFIED
Johnson Z ChuiItalyIoni Bowcher NEW
Salvatore D MaletJapanXuxue Feng QUALIFIED
Frozen Columns
Name
Stacey L Flosi
Kadeem P Perin
Darci I Rim
Maria Q Saylors
Greenwood T Maclead
Juan K Chui
David Q Kolmetz
Misaki Z Albares
Kaitlin F Ostrosky
Leon F Flosi
Johnson U Marrier
Octavia E Dilliard
Johnson A Iturbide
Octavia M Whobrey
Maisha A Sergi
Greenwood S Bowley
Chavez Y Rulapaugh
Murillo M Flosi
Juan O Sergi
Alejandro R Flosi
Smith A Briddick
Isabel X Oldroyd
Murillo F Slusarski
Julie F Paprocki
Sinclair I Perin
Mayumi M Butt
David P Schemmer
Murillo A Poquette
Ricardo L Caldarera
Aditya Y Iturbide
Jones K Perin
Jefferson G Tollner
Juan N Maclead
Aruna X Malet
Sinclair G Figeroa
Munro W Figeroa
Leon S Maclead
Johnson O Slusarski
Jones P Vocelka
Jeanfrancois D Ruta
Rodrigues D Flosi
Aruna J Malet
Julie H Nestle
Francesco T Iturbide
Cody P Amigon
Deepesh W Garufi
Morrow U Ferencz
Munro C Marrier
Faith R Kolmetz
David V Kusko
IdCountryDate
1000United Kingdom2024-04-26
1001Canada2024-04-02
1002Russia2024-04-10
1003Canada2024-04-17
1004Germany2024-04-04
1005Germany2024-04-24
1006Argentina2024-04-05
1007France2024-04-06
1008United Kingdom2024-04-11
1009Argentina2024-04-04
1010Russia2024-04-13
1011Spain2024-04-03
1012Australia2024-04-04
1013Italy2024-04-13
1014Germany2024-04-03
1015Brazil2024-04-02
1016India2024-04-04
1017Italy2024-04-10
1018France2024-04-05
1019Japan2024-04-25
1020United Kingdom2024-04-16
1021Australia2024-04-04
1022Australia2024-04-16
1023Japan2024-04-20
1024Spain2024-04-03
1025Australia2024-04-05
1026Brazil2024-04-03
1027Canada2024-04-15
1028Spain2024-04-20
1029Brazil2024-04-20
1030Canada2024-04-19
1031United Kingdom2024-04-23
1032Italy2024-04-06
1033Italy2024-04-06
1034Argentina2024-04-06
1035Spain2024-04-13
1036Russia2024-04-25
1037Argentina2024-04-11
1038Spain2024-04-10
1039Brazil2024-04-16
1040Canada2024-04-03
1041Australia2024-04-23
1042Argentina2024-04-19
1043France2024-04-01
1044Spain2024-04-22
1045Italy2024-04-03
1046India2024-04-05
1047India2024-04-23
1048Canada2024-04-14
1049Brazil2024-04-09

On-Demand Data

NameIdCountryDate
Julie Z Ruta1000France2024-04-20
Leon E Nicka1001Japan2024-04-19
Stacey S Maclead1002Russia2024-04-01
Jones K Dilliard1003Australia2024-03-31
Leja D Marrier1004Argentina2024-04-02
Rodrigues Q Ostrosky1005United Kingdom2024-04-26
Costa Z Marrier1006United Kingdom2024-04-27
David M Tollner1007France2024-04-05
Julie E Wieser1008Russia2024-04-24
Munro I Sergi1009Italy2024-04-23
Tony L Inouye1010Canada2024-04-17
Maisha M Bolognia1011Russia2024-04-24
Aditya H Oldroyd1012Argentina2024-04-18
Leja L Oldroyd1013Australia2024-04-05
Deepesh B Saylors1014Germany2024-04-17
Tony Y Vocelka1015France2024-04-11
Darci E Flosi1016Italy2024-03-31
Morrow A Venere1017Brazil2024-03-30
Octavia Q Malet1018Argentina2024-04-06
Aika C Slusarski1019Russia2024-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie V CampainArgentinaAmy Elsner QUALIFIED
Mujtaba X NestleUnited KingdomXuxue Feng NEW
Maria L NestleArgentinaIvan Magalhaes RENEWAL
Ashley P GlickArgentinaIvan Magalhaes QUALIFIED
Ashley S CaldareraArgentinaIvan Magalhaes NEW
Mujtaba Z RulapaughIndiaElwin Sharvill NEGOTIATION
Maria B GlickSpainIvan Magalhaes RENEWAL
Aruna K NestleCanadaAmy Elsner RENEWAL
Chavez B OstroskyGermanyXuxue Feng UNQUALIFIED
Salvatore Q NestleJapanIvan Magalhaes NEW
Arvin Z CampainUnited KingdomBernardo Dominic UNQUALIFIED
Munro Z SchemmerFranceAnna Fali UNQUALIFIED
Mujtaba V VenereBrazilIoni Bowcher UNQUALIFIED
Murillo R FollerUnited KingdomAnna Fali PROPOSAL
Salvatore B SchemmerJapanBernardo Dominic RENEWAL
Cody A KolmetzSpainAmy Elsner NEW
Darci C ShinkoArgentinaStephen Shaw QUALIFIED
Silvio M CampainIndiaIoni Bowcher UNQUALIFIED
Ivar N CaudyFranceAsiya Javayant QUALIFIED
David R WaycottRussiaElwin Sharvill NEGOTIATION
Salvatore G FollerFranceAsiya Javayant QUALIFIED
Mayumi K RoysterIndiaBernardo Dominic RENEWAL
Tony E WaycottBrazilIoni Bowcher QUALIFIED
Aruna F OldroydItalyElwin Sharvill UNQUALIFIED
Jefferson E RimJapanOnyama Limba RENEWAL
Francesco K GlickUnited KingdomAsiya Javayant UNQUALIFIED
James J WieserRussiaAnna Fali RENEWAL
Silvio Z GillianRussiaIvan Magalhaes RENEWAL
Octavia O SlusarskiCanadaBernardo Dominic NEW
James P CaudyUnited KingdomIoni Bowcher RENEWAL
Ivar K SergiItalyAnna Fali NEGOTIATION
Francesco M VenereBrazilIoni Bowcher RENEWAL
Greenwood X AmigonJapanAmy Elsner RENEWAL
Cody B WhobreyCanadaAmy Elsner PROPOSAL
Ashley K DarakjyItalyElwin Sharvill UNQUALIFIED
Munro L BriddickBrazilAnna Fali QUALIFIED
Kaitlin T MarrierUnited KingdomAnna Fali RENEWAL
Greenwood J SlusarskiAustraliaAnna Fali RENEWAL
Chavez H OldroydJapanIoni Bowcher UNQUALIFIED
Salvatore D BologniaFranceAsiya Javayant 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>