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
Murillo J KolmetzGermanyIvan Magalhaes NEW
Antonio Z MarrierAustraliaAnna Fali RENEWAL
Maisha Z KuskoAustraliaAmy Elsner NEGOTIATION
Aruna W PaprockiArgentinaOnyama Limba PROPOSAL
Chavez J ShinkoIndiaOnyama Limba UNQUALIFIED
Jeanfrancois W MarrierArgentinaIvan Magalhaes NEGOTIATION
Misaki Y SlusarskiArgentinaElwin Sharvill NEGOTIATION
Mayumi E StockhamRussiaIoni Bowcher UNQUALIFIED
Francesco J MorascaArgentinaXuxue Feng NEGOTIATION
Kadeem K NickaIndiaStephen Shaw QUALIFIED
Silvio Z GlickArgentinaIvan Magalhaes NEGOTIATION
Emily E PaprockiRussiaStephen Shaw NEW
Izzy A MorascaFranceOnyama Limba NEGOTIATION
Faith Q VenereSpainOnyama Limba NEGOTIATION
Morrow R BologniaJapanBernardo Dominic PROPOSAL
Wickens S SlusarskiBrazilAnna Fali RENEWAL
Octavia A MaletArgentinaOnyama Limba NEGOTIATION
Adams D GarufiIndiaIoni Bowcher QUALIFIED
Misaki T WhobreyAustraliaIvan Magalhaes NEGOTIATION
Stacey T OldroydFranceStephen Shaw PROPOSAL
Octavia G GauchoUnited KingdomAmy Elsner PROPOSAL
Wickens V KolmetzAustraliaAmy Elsner PROPOSAL
Kadeem H MorascaRussiaAsiya Javayant PROPOSAL
Darci L BriddickBrazilStephen Shaw NEW
Alejandro G IturbideIndiaAmy Elsner NEGOTIATION
Emily Q ShinkoUnited KingdomOnyama Limba NEW
Octavia G GarufiSpainBernardo Dominic UNQUALIFIED
Clifford R WaycottBrazilXuxue Feng QUALIFIED
Isabel N ShinkoBrazilBernardo Dominic NEW
Jennifer U SaylorsRussiaIoni Bowcher PROPOSAL
Ricardo H WhobreySpainElwin Sharvill NEW
Darci M PaprockiGermanyIvan Magalhaes PROPOSAL
Sinclair Q FlosiJapanElwin Sharvill PROPOSAL
Adams B BriddickGermanyAnna Fali UNQUALIFIED
Tony E RutaArgentinaBernardo Dominic NEW
Ivar Z SchemmerIndiaBernardo Dominic PROPOSAL
Morrow L WhobreyItalyStephen Shaw NEGOTIATION
Octavia R VocelkaGermanyElwin Sharvill NEW
Cody F PaprockiIndiaAmy Elsner NEW
Rodrigues W ButtRussiaStephen Shaw PROPOSAL
Leja T BowleyIndiaBernardo Dominic PROPOSAL
Jefferson U StockhamAustraliaStephen Shaw RENEWAL
Isabel B FigeroaUnited KingdomXuxue Feng UNQUALIFIED
Arvin D CampainCanadaAnna Fali NEW
Ivar Y DarakjyAustraliaBernardo Dominic PROPOSAL
Jefferson J FigeroaJapanOnyama Limba PROPOSAL
James H MaletBrazilXuxue Feng NEW
Jefferson S BologniaAustraliaAmy Elsner RENEWAL
Cody I PaprockiCanadaIoni Bowcher NEW
Costa O DoeUnited KingdomStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Darci T MorascaAustraliaAsiya Javayant PROPOSAL
Silvio W MaletArgentinaElwin Sharvill QUALIFIED
Silvio O IturbideRussiaXuxue Feng NEGOTIATION
Aruna B WieserArgentinaElwin Sharvill PROPOSAL
Kaitlin W MorascaRussiaAsiya Javayant PROPOSAL
Faith C NickaSpainBernardo Dominic PROPOSAL
Wickens M WieserIndiaIvan Magalhaes NEW
Costa C FerenczGermanyAmy Elsner QUALIFIED
Smith Y GauchoIndiaAsiya Javayant QUALIFIED
Munro D KolmetzRussiaXuxue Feng RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria X PerinBrazil2024-05-01Dorl, James J Esq UNQUALIFIED32Xuxue Feng
1001Johnson K WaycottBrazil2024-04-21Benton, John B Jr UNQUALIFIED31Amy Elsner
1002Rodrigues J GarufiArgentina2024-04-14Rousseaux, Michael Esq PROPOSAL90Elwin Sharvill
1003Maisha U ChuiAustralia2024-04-30Truhlar And Truhlar Attys RENEWAL26Anna Fali
1004Johnson U FigeroaArgentina2024-04-29Morlong Associates UNQUALIFIED16Stephen Shaw
1005Wickens P NickaRussia2024-04-30Dorl, James J Esq RENEWAL80Amy Elsner
1006Salvatore L RulapaughCanada2024-04-05Chemel, James L Cpa NEGOTIATION7Onyama Limba
1007Mujtaba R MacleadGermany2024-04-25Feltz Printing Service RENEWAL96Elwin Sharvill
1008Leon P FlosiCanada2024-04-30Feiner Bros PROPOSAL78Ioni Bowcher
1009Julie L ButtItaly2024-04-06Dorl, James J Esq NEW87Ivan Magalhaes
1010Isabel Y BologniaSpain2024-04-30Truhlar And Truhlar Attys QUALIFIED56Stephen Shaw
1011Julie X CampainFrance2024-04-09Morlong Associates QUALIFIED57Stephen Shaw
1012Mujtaba P DarakjyJapan2024-04-29Truhlar And Truhlar Attys NEW15Ivan Magalhaes
1013Stacey B RimArgentina2024-04-19Chanay, Jeffrey A Esq PROPOSAL51Elwin Sharvill
1014Tony Y ShinkoArgentina2024-04-05Feiner Bros NEGOTIATION83Amy Elsner
1015Juan C MaletFrance2024-04-21Dorl, James J Esq NEGOTIATION73Amy Elsner
1016Alejandro E ButtCanada2024-04-23Chemel, James L Cpa NEW10Bernardo Dominic
1017Francesco L ButtGermany2024-04-24Feltz Printing Service UNQUALIFIED44Amy Elsner
1018Arvin M WaycottCanada2024-04-09King, Christopher A Esq NEW88Anna Fali
1019Murillo H RutaAustralia2024-04-10Rangoni Of Florence PROPOSAL98Anna Fali
1020Jones Z WaycottBrazil2024-04-26Benton, John B Jr UNQUALIFIED7Anna Fali
1021Aruna R DilliardJapan2024-05-01Feltz Printing Service NEW32Asiya Javayant
1022Antonio N RutaBrazil2024-04-13Chapman, Ross E Esq RENEWAL59Elwin Sharvill
1023Mujtaba K ChuiFrance2024-04-12Chemel, James L Cpa UNQUALIFIED98Stephen Shaw
1024Isabel R RimBrazil2024-04-24Morlong Associates QUALIFIED37Ioni Bowcher
1025Chavez K KolmetzGermany2024-05-01Feiner Bros RENEWAL20Asiya Javayant
1026Darci D StensethCanada2024-04-30Buckley Miller Wright NEGOTIATION55Stephen Shaw
1027Silvio C CampainArgentina2024-04-12Morlong Associates UNQUALIFIED94Ioni Bowcher
1028Claire K PoquetteJapan2024-04-05Rousseaux, Michael Esq PROPOSAL68Ivan Magalhaes
1029Darci G FerenczAustralia2024-04-06Rangoni Of Florence UNQUALIFIED98Stephen Shaw
1030Sinclair D DarakjyBrazil2024-04-15Buckley Miller Wright NEW72Asiya Javayant
1031Sinclair C SergiFrance2024-04-17Rousseaux, Michael Esq NEGOTIATION17Anna Fali
1032Leon U CampainArgentina2024-04-11Chapman, Ross E Esq RENEWAL70Ivan Magalhaes
1033Mujtaba M ButtGermany2024-04-16Rousseaux, Michael Esq NEW69Anna Fali
1034Clifford C ChuiAustralia2024-05-02Benton, John B Jr RENEWAL83Xuxue Feng
1035Ivar I DilliardItaly2024-04-18Rangoni Of Florence NEW37Asiya Javayant
1036Johnson T GlickGermany2024-05-04Feiner Bros QUALIFIED84Ioni Bowcher
1037Mujtaba E CampainGermany2024-04-27Benton, John B Jr QUALIFIED32Onyama Limba
1038Aika L ShinkoAustralia2024-04-26Morlong Associates UNQUALIFIED90Ivan Magalhaes
1039Leja H TollnerItaly2024-04-19Commercial Press RENEWAL44Onyama Limba
1040Rodrigues H SlusarskiJapan2024-04-13Feltz Printing Service NEW54Xuxue Feng
1041Rodrigues N MorascaArgentina2024-04-26Chanay, Jeffrey A Esq NEW26Stephen Shaw
1042Salvatore A InouyeUnited Kingdom2024-04-17Morlong Associates QUALIFIED79Onyama Limba
1043Alejandro N CaudyArgentina2024-04-08Benton, John B Jr NEGOTIATION47Xuxue Feng
1044Leon L FlosiUnited Kingdom2024-04-07Rousseaux, Michael Esq RENEWAL44Ioni Bowcher
1045Adams G RimBrazil2024-04-07Truhlar And Truhlar Attys UNQUALIFIED24Onyama Limba
1046Wickens Y ShinkoAustralia2024-04-17Buckley Miller Wright RENEWAL46Ivan Magalhaes
1047Chavez U GarufiAustralia2024-04-29Feltz Printing Service RENEWAL92Stephen Shaw
1048Izzy R WieserCanada2024-04-11Commercial Press QUALIFIED29Asiya Javayant
1049Octavia I AmigonJapan2024-04-13King, Christopher A Esq UNQUALIFIED30Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin F CaudyBrazilElwin Sharvill PROPOSAL
Munro Y MaletFranceAsiya Javayant NEW
Sinclair E AmigonArgentinaIvan Magalhaes RENEWAL
Jefferson X StensethArgentinaElwin Sharvill QUALIFIED
Maria Y VenereBrazilAsiya Javayant UNQUALIFIED
Stacey S StockhamJapanElwin Sharvill RENEWAL
Munro L MaletSpainIoni Bowcher PROPOSAL
Johnson P StensethSpainAmy Elsner NEGOTIATION
Jefferson K CaudyBrazilAnna Fali NEW
Kaitlin G WhobreyItalyElwin Sharvill PROPOSAL
Faith D SlusarskiSpainAnna Fali NEGOTIATION
Greenwood W CaudyUnited KingdomAsiya Javayant UNQUALIFIED
Stacey X KolmetzCanadaElwin Sharvill RENEWAL
Ricardo N RoysterAustraliaElwin Sharvill UNQUALIFIED
Misaki S RoysterIndiaStephen Shaw RENEWAL
Kaitlin J ShinkoCanadaStephen Shaw NEW
James R VocelkaAustraliaAsiya Javayant QUALIFIED
Jefferson T StensethItalyAmy Elsner NEGOTIATION
Jefferson V StensethUnited KingdomElwin Sharvill RENEWAL
Murillo P PaprockiFranceElwin Sharvill NEW
Kadeem A PerinRussiaIoni Bowcher NEGOTIATION
Wickens E RoysterFranceElwin Sharvill PROPOSAL
Leja Y WieserAustraliaXuxue Feng QUALIFIED
Stacey X PerinJapanIvan Magalhaes NEW
Cody O CaldareraCanadaElwin Sharvill NEW
Johnson I ButtJapanAmy Elsner RENEWAL
Tony K GlickGermanyIoni Bowcher QUALIFIED
David P SlusarskiSpainXuxue Feng PROPOSAL
David F FlosiFranceAsiya Javayant QUALIFIED
Isabel X VenereGermanyBernardo Dominic RENEWAL
Julie V DoeFranceIoni Bowcher RENEWAL
Ricardo K BowleyItalyIoni Bowcher PROPOSAL
Izzy F ShinkoCanadaStephen Shaw NEW
Cody T BologniaBrazilXuxue Feng RENEWAL
Clifford T MaletAustraliaElwin Sharvill QUALIFIED
Johnson J ButtBrazilAsiya Javayant QUALIFIED
Francesco D MaletCanadaBernardo Dominic NEW
Isabel L GarufiSpainStephen Shaw NEW
Aika P DoeAustraliaIoni Bowcher RENEWAL
Izzy P NickaAustraliaAmy Elsner RENEWAL
Maisha G GauchoJapanAsiya Javayant UNQUALIFIED
Jefferson Q OldroydFranceStephen Shaw QUALIFIED
Darci S OldroydArgentinaElwin Sharvill NEW
Stacey A FigeroaIndiaBernardo Dominic NEW
Kadeem N PerinGermanyIoni Bowcher NEW
Cody R ChuiGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois V AmigonJapanOnyama Limba UNQUALIFIED
Murillo A DarakjyUnited KingdomOnyama Limba RENEWAL
Jeanfrancois W PoquetteGermanyXuxue Feng NEW
Adams X BriddickCanadaOnyama Limba PROPOSAL
Frozen Columns
Name
Mujtaba B Tollner
David F Flosi
Nicolas R Stockham
Rodrigues O Darakjy
Nicolas D Vocelka
Greenwood I Stockham
Emily S Amigon
Ashley J Poquette
Faith C Gillian
Murillo T Oldroyd
Juan A Venere
Mayumi N Inouye
Adams L Kusko
David Q Kusko
Antonio W Amigon
Jennifer R Bowley
Juan Q Butt
Alejandro O Albares
Nicolas F Gaucho
James L Kusko
Misaki Y Flosi
Arvin Q Kusko
David G Whobrey
Costa J Campain
Alejandro N Perin
Mujtaba M Dilliard
Emily N Bolognia
Izzy L Schemmer
Chavez K Stockham
Aruna P Poquette
Maria R Wieser
Silvio T Slusarski
Rodrigues X Doe
Sinclair R Nicka
Deepesh N Rim
James Q Oldroyd
Alejandro U Dilliard
Silvio B Iturbide
Izzy G Iturbide
Adams M Briddick
Adams F Flosi
Jennifer R Wieser
Johnson P Chui
Silvio O Butt
Deepesh T Ferencz
Antonio U Rulapaugh
Leja X Butt
Isabel S Butt
Jones O Gaucho
Costa L Bowley
IdCountryDate
1000Japan2024-05-01
1001Brazil2024-04-12
1002Australia2024-04-29
1003Canada2024-04-07
1004Australia2024-04-12
1005Germany2024-05-01
1006India2024-04-12
1007Argentina2024-04-06
1008Canada2024-05-01
1009Australia2024-04-18
1010Brazil2024-04-05
1011Brazil2024-04-28
1012Canada2024-04-10
1013Russia2024-04-09
1014Canada2024-04-27
1015United Kingdom2024-04-27
1016United Kingdom2024-04-06
1017Argentina2024-04-13
1018Argentina2024-04-26
1019United Kingdom2024-04-15
1020Argentina2024-04-18
1021Italy2024-04-25
1022Brazil2024-04-08
1023France2024-04-17
1024Australia2024-04-22
1025Canada2024-04-10
1026Argentina2024-04-27
1027Italy2024-05-03
1028France2024-04-13
1029Canada2024-04-27
1030United Kingdom2024-05-02
1031Germany2024-04-15
1032Italy2024-04-13
1033Italy2024-04-13
1034Spain2024-04-20
1035Argentina2024-04-23
1036Australia2024-04-07
1037Russia2024-04-05
1038France2024-04-29
1039Argentina2024-04-12
1040Canada2024-04-30
1041Italy2024-04-05
1042Japan2024-04-21
1043Italy2024-04-10
1044United Kingdom2024-04-06
1045Canada2024-04-26
1046Canada2024-04-21
1047Italy2024-04-17
1048Brazil2024-04-17
1049Russia2024-04-10

On-Demand Data

NameIdCountryDate
Tony V Wieser1000Japan2024-04-14
Leon I Vocelka1001United Kingdom2024-04-10
Ricardo V Glick1002Spain2024-05-04
Morrow P Gaucho1003India2024-04-26
Costa H Slusarski1004Canada2024-04-13
Isabel S Bowley1005Argentina2024-04-07
Antonio D Amigon1006France2024-04-29
Faith T Nicka1007Germany2024-05-01
Claire T Kusko1008Spain2024-04-21
Kaitlin K Amigon1009Germany2024-05-04
David H Darakjy1010Canada2024-04-23
Maisha U Iturbide1011Italy2024-04-30
James A Royster1012Spain2024-04-06
Chavez N Saylors1013Spain2024-05-03
Arvin D Inouye1014India2024-05-03
Aika D Oldroyd1015Canada2024-05-01
Juan Y Kusko1016France2024-04-15
Nicolas H Kusko1017Spain2024-04-23
Claire V Shinko1018Russia2024-04-12
Isabel X Bowley1019Japan2024-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey S BologniaSpainAsiya Javayant RENEWAL
Ricardo E CaldareraGermanyOnyama Limba RENEWAL
Octavia R GlickCanadaIvan Magalhaes NEW
Morrow P BowleyIndiaStephen Shaw PROPOSAL
Chavez X NestleGermanyAmy Elsner QUALIFIED
Maisha P DilliardIndiaBernardo Dominic RENEWAL
Maisha P StockhamItalyIoni Bowcher NEW
Emily Q InouyeArgentinaAsiya Javayant RENEWAL
David I MaletJapanElwin Sharvill QUALIFIED
Smith U WieserCanadaAsiya Javayant PROPOSAL
Costa R WaycottRussiaElwin Sharvill RENEWAL
Munro V VenereSpainXuxue Feng RENEWAL
Morrow R PaprockiUnited KingdomAnna Fali UNQUALIFIED
Nicolas F SaylorsGermanyAnna Fali UNQUALIFIED
Aruna A GillianItalyIoni Bowcher UNQUALIFIED
Wickens L AlbaresSpainIvan Magalhaes NEW
Cody O MacleadAustraliaAmy Elsner QUALIFIED
Mayumi T MaletBrazilAnna Fali RENEWAL
Darci R TollnerFranceXuxue Feng PROPOSAL
David T CaudyArgentinaIvan Magalhaes RENEWAL
Chavez V KolmetzFranceIoni Bowcher QUALIFIED
James E CaudyItalyIvan Magalhaes QUALIFIED
David T VocelkaItalyAmy Elsner NEGOTIATION
Tony D AmigonUnited KingdomAmy Elsner UNQUALIFIED
Leon M PaprockiJapanBernardo Dominic QUALIFIED
Leja W IturbideArgentinaElwin Sharvill NEW
Costa N GlickIndiaBernardo Dominic RENEWAL
David H NestleUnited KingdomStephen Shaw NEW
Aruna M MarrierIndiaAsiya Javayant RENEWAL
Alejandro C DoeIndiaAnna Fali NEGOTIATION
Greenwood A RutaBrazilBernardo Dominic UNQUALIFIED
Kaitlin J FlosiJapanIoni Bowcher RENEWAL
Silvio E VocelkaBrazilStephen Shaw NEGOTIATION
Jefferson L FigeroaJapanXuxue Feng QUALIFIED
Jones D DoeItalyXuxue Feng PROPOSAL
Maria E DoeBrazilIoni Bowcher RENEWAL
Silvio Q FollerSpainAnna Fali NEGOTIATION
Faith Q SaylorsBrazilAsiya Javayant UNQUALIFIED
Silvio O FerenczGermanyOnyama Limba NEGOTIATION
Costa Z OldroydFranceStephen Shaw 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>