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
Maisha G SaylorsFranceBernardo Dominic NEW
Jones G RimFranceAnna Fali QUALIFIED
Adams P SaylorsBrazilStephen Shaw UNQUALIFIED
Morrow I GillianArgentinaIoni Bowcher QUALIFIED
Nicolas P KolmetzFranceAnna Fali QUALIFIED
Jennifer B MaletBrazilAnna Fali PROPOSAL
James Z GlickGermanyElwin Sharvill PROPOSAL
Adams N DilliardFranceAmy Elsner NEW
Aika C SaylorsBrazilIoni Bowcher UNQUALIFIED
Rodrigues Z WaycottAustraliaElwin Sharvill PROPOSAL
Kaitlin O PerinSpainXuxue Feng UNQUALIFIED
Chavez Z PaprockiIndiaAsiya Javayant RENEWAL
Juan X ChuiUnited KingdomXuxue Feng NEW
Greenwood N FigeroaArgentinaBernardo Dominic NEGOTIATION
Cody Z BriddickItalyBernardo Dominic NEGOTIATION
Faith N VenereArgentinaOnyama Limba NEGOTIATION
Maria U TollnerUnited KingdomAsiya Javayant QUALIFIED
Julie U VocelkaSpainAmy Elsner NEW
Isabel R GauchoAustraliaStephen Shaw NEGOTIATION
Alejandro H MarrierRussiaStephen Shaw UNQUALIFIED
Maria J FigeroaJapanAnna Fali PROPOSAL
Rodrigues P BowleyRussiaBernardo Dominic PROPOSAL
Aruna Z RoysterUnited KingdomBernardo Dominic UNQUALIFIED
Izzy V DilliardRussiaIoni Bowcher QUALIFIED
Octavia U BowleyBrazilBernardo Dominic UNQUALIFIED
Aruna V KuskoBrazilElwin Sharvill NEW
Johnson U VocelkaJapanIvan Magalhaes RENEWAL
Francesco M SergiUnited KingdomAnna Fali UNQUALIFIED
Aika G BriddickItalyIvan Magalhaes NEW
Adams L DilliardFranceIvan Magalhaes UNQUALIFIED
Maisha L StensethArgentinaXuxue Feng PROPOSAL
Jones G KuskoAustraliaAsiya Javayant UNQUALIFIED
Rodrigues J InouyeUnited KingdomBernardo Dominic QUALIFIED
Tony N VocelkaJapanIoni Bowcher RENEWAL
Salvatore X NickaArgentinaAnna Fali RENEWAL
Claire Q SergiFranceStephen Shaw PROPOSAL
Stacey N DoeBrazilElwin Sharvill RENEWAL
Sinclair Y FerenczSpainElwin Sharvill QUALIFIED
Costa M OldroydAustraliaIvan Magalhaes UNQUALIFIED
Nicolas L FlosiIndiaElwin Sharvill NEW
Juan K DilliardFranceIoni Bowcher NEGOTIATION
Isabel S MaletSpainAmy Elsner NEGOTIATION
Wickens G InouyeSpainIoni Bowcher UNQUALIFIED
Leja Z GlickFranceAsiya Javayant QUALIFIED
Ivar Z KuskoIndiaStephen Shaw PROPOSAL
Arvin Y MaletBrazilIvan Magalhaes RENEWAL
Sinclair O RimItalyAsiya Javayant PROPOSAL
Arvin I RoysterGermanyIoni Bowcher NEW
Isabel P ButtFranceXuxue Feng NEW
Johnson S RoysterRussiaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Jennifer X BologniaIndiaStephen Shaw NEW
Jeanfrancois L AmigonAustraliaBernardo Dominic QUALIFIED
Sinclair I SlusarskiIndiaIoni Bowcher UNQUALIFIED
Ivar I RimFranceAmy Elsner QUALIFIED
Darci R PaprockiIndiaBernardo Dominic RENEWAL
Aika J RulapaughArgentinaXuxue Feng NEGOTIATION
Smith R AlbaresItalyIvan Magalhaes QUALIFIED
Tony H WaycottItalyAmy Elsner UNQUALIFIED
Aika U VocelkaRussiaIoni Bowcher RENEWAL
Deepesh F RutaJapanXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith U WaycottRussia2024-04-06Rangoni Of Florence UNQUALIFIED77Amy Elsner
1001Tony V TollnerItaly2024-04-02Chapman, Ross E Esq RENEWAL48Anna Fali
1002Julie B InouyeCanada2024-04-19Feltz Printing Service UNQUALIFIED64Ivan Magalhaes
1003Greenwood P AmigonBrazil2024-03-28Feiner Bros PROPOSAL13Anna Fali
1004Misaki J PoquetteRussia2024-04-12Buckley Miller Wright NEGOTIATION25Amy Elsner
1005Mayumi H RoysterRussia2024-04-02Morlong Associates RENEWAL26Amy Elsner
1006Julie A OstroskyJapan2024-04-15Commercial Press UNQUALIFIED97Xuxue Feng
1007Munro I DarakjyIndia2024-03-30Morlong Associates UNQUALIFIED38Onyama Limba
1008Clifford E MaletRussia2024-04-19Morlong Associates NEGOTIATION91Ioni Bowcher
1009Stacey A AlbaresFrance2024-04-04Feiner Bros NEW38Xuxue Feng
1010Emily N DoeItaly2024-04-10Rousseaux, Michael Esq QUALIFIED58Bernardo Dominic
1011David K OstroskyItaly2024-04-10Benton, John B Jr QUALIFIED62Ivan Magalhaes
1012Silvio S RoysterFrance2024-04-14Chapman, Ross E Esq UNQUALIFIED8Stephen Shaw
1013Kadeem A TollnerSpain2024-04-10Chanay, Jeffrey A Esq NEW84Xuxue Feng
1014Darci M ButtCanada2024-04-25Rousseaux, Michael Esq NEW60Anna Fali
1015Claire X BriddickCanada2024-04-01Rangoni Of Florence UNQUALIFIED83Stephen Shaw
1016Deepesh S MarrierSpain2024-03-31King, Christopher A Esq QUALIFIED99Stephen Shaw
1017Rodrigues Q RulapaughArgentina2024-04-23Dorl, James J Esq QUALIFIED3Elwin Sharvill
1018Mujtaba C PerinBrazil2024-04-04Chanay, Jeffrey A Esq PROPOSAL45Bernardo Dominic
1019Munro O CaudyCanada2024-04-04Buckley Miller Wright NEW81Amy Elsner
1020Kaitlin O VenereRussia2024-04-07Rangoni Of Florence NEW46Stephen Shaw
1021Johnson A KuskoArgentina2024-03-29Chapman, Ross E Esq UNQUALIFIED61Onyama Limba
1022Deepesh I ButtRussia2024-04-10Chanay, Jeffrey A Esq NEGOTIATION74Ioni Bowcher
1023Maria F FlosiRussia2024-03-31Benton, John B Jr NEW38Ivan Magalhaes
1024Nicolas X DoeFrance2024-04-18Commercial Press RENEWAL59Xuxue Feng
1025Arvin G OstroskySpain2024-03-30Feltz Printing Service QUALIFIED72Xuxue Feng
1026Jones X MarrierIndia2024-04-26Chemel, James L Cpa NEGOTIATION65Xuxue Feng
1027Arvin R GauchoUnited Kingdom2024-04-09Printing Dimensions QUALIFIED91Anna Fali
1028Juan Y PerinCanada2024-04-23Chapman, Ross E Esq PROPOSAL1Bernardo Dominic
1029Stacey C AmigonRussia2024-03-29Truhlar And Truhlar Attys UNQUALIFIED73Amy Elsner
1030Adams U StensethCanada2024-04-23Feiner Bros NEGOTIATION95Elwin Sharvill
1031Mujtaba W WaycottRussia2024-04-08Buckley Miller Wright RENEWAL26Onyama Limba
1032Ivar F FerenczRussia2024-04-26King, Christopher A Esq RENEWAL38Bernardo Dominic
1033Juan F DoeIndia2024-03-31Feltz Printing Service NEGOTIATION14Ivan Magalhaes
1034Adams L RutaUnited Kingdom2024-03-28Rangoni Of Florence RENEWAL79Stephen Shaw
1035Ricardo I DoeGermany2024-04-05Dorl, James J Esq UNQUALIFIED99Elwin Sharvill
1036Ricardo G FlosiFrance2024-04-08Printing Dimensions NEGOTIATION50Anna Fali
1037Jennifer A ChuiItaly2024-04-19Rangoni Of Florence NEW50Xuxue Feng
1038Jefferson L BologniaFrance2024-04-08Chanay, Jeffrey A Esq RENEWAL21Asiya Javayant
1039Leon N AmigonArgentina2024-04-06Truhlar And Truhlar Attys RENEWAL28Xuxue Feng
1040Nicolas T WieserIndia2024-04-25Truhlar And Truhlar Attys NEGOTIATION95Bernardo Dominic
1041Morrow M SlusarskiAustralia2024-04-04Feltz Printing Service PROPOSAL17Onyama Limba
1042Tony U ChuiFrance2024-04-05Morlong Associates QUALIFIED27Onyama Limba
1043Izzy W BriddickFrance2024-04-05Chanay, Jeffrey A Esq NEW89Asiya Javayant
1044Mujtaba X VocelkaItaly2024-03-29Buckley Miller Wright QUALIFIED45Amy Elsner
1045Wickens V RimIndia2024-03-29Commercial Press PROPOSAL8Ioni Bowcher
1046Mujtaba H DilliardGermany2024-04-13Chapman, Ross E Esq QUALIFIED42Ioni Bowcher
1047Nicolas M GauchoCanada2024-04-10Commercial Press NEW42Anna Fali
1048Isabel F MarrierAustralia2024-03-28Rousseaux, Michael Esq NEGOTIATION46Stephen Shaw
1049Murillo F NickaSpain2024-04-01Morlong Associates RENEWAL54Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Aika N TollnerItalyOnyama Limba RENEWAL
Costa H FerenczUnited KingdomOnyama Limba PROPOSAL
Sinclair H AmigonArgentinaAnna Fali UNQUALIFIED
Jeanfrancois U GlickFranceIvan Magalhaes NEGOTIATION
Stacey M NestleSpainStephen Shaw NEGOTIATION
Mayumi N AlbaresFranceAnna Fali PROPOSAL
Aditya K TollnerRussiaIoni Bowcher UNQUALIFIED
Salvatore W MaletGermanyIoni Bowcher RENEWAL
Juan Q InouyeGermanyAmy Elsner NEW
Johnson V DoeGermanyIvan Magalhaes NEW
Misaki D ButtGermanyElwin Sharvill RENEWAL
Arvin M TollnerBrazilAmy Elsner PROPOSAL
Maria L RoysterBrazilXuxue Feng QUALIFIED
Morrow I MaletIndiaElwin Sharvill RENEWAL
Adams Z CampainIndiaBernardo Dominic PROPOSAL
Arvin L NestleSpainXuxue Feng NEGOTIATION
Salvatore K MaletIndiaXuxue Feng NEW
Jefferson R CaudyGermanyIoni Bowcher NEW
Chavez B RoysterCanadaElwin Sharvill NEGOTIATION
Johnson E FigeroaIndiaAnna Fali NEGOTIATION
Juan R VocelkaAustraliaAsiya Javayant RENEWAL
Faith C IturbideUnited KingdomAsiya Javayant RENEWAL
Faith E RutaGermanyAmy Elsner QUALIFIED
Antonio Z NickaItalyAmy Elsner RENEWAL
Octavia Q KuskoFranceIoni Bowcher UNQUALIFIED
Rodrigues E GauchoCanadaOnyama Limba NEW
Chavez S CaldareraGermanyIoni Bowcher NEW
Adams O ChuiSpainIoni Bowcher QUALIFIED
Costa G OstroskyUnited KingdomXuxue Feng UNQUALIFIED
Adams R NickaAustraliaBernardo Dominic RENEWAL
Claire G NestleJapanAmy Elsner UNQUALIFIED
Silvio S BologniaCanadaAnna Fali NEW
Juan L PoquetteJapanOnyama Limba UNQUALIFIED
Mujtaba T SergiIndiaXuxue Feng UNQUALIFIED
Wickens K ButtItalyXuxue Feng RENEWAL
Octavia N SlusarskiGermanyElwin Sharvill PROPOSAL
Aruna S BowleyRussiaAmy Elsner UNQUALIFIED
Morrow X NestleFranceStephen Shaw NEGOTIATION
Murillo V BowleyJapanStephen Shaw UNQUALIFIED
Kadeem C InouyeItalyAnna Fali QUALIFIED
Leja F WaycottItalyIvan Magalhaes UNQUALIFIED
Jones M SergiRussiaIoni Bowcher PROPOSAL
Murillo Y FlosiGermanyAmy Elsner RENEWAL
Maria C PerinBrazilBernardo Dominic NEGOTIATION
Tony U SaylorsGermanyOnyama Limba RENEWAL
Johnson J ChuiCanadaStephen Shaw PROPOSAL
Juan O GauchoJapanStephen Shaw NEGOTIATION
Costa R AlbaresGermanyXuxue Feng QUALIFIED
Mayumi U SergiGermanyIoni Bowcher NEW
Wickens J AlbaresItalyElwin Sharvill PROPOSAL
Frozen Columns
Name
Ricardo K Sergi
Clifford T Dilliard
Smith B Perin
Jeanfrancois Y Wieser
Kaitlin H Bowley
Chavez A Butt
Isabel B Slusarski
Silvio Y Briddick
Jones A Inouye
Mujtaba G Glick
Ashley K Whobrey
Munro N Shinko
Kadeem R Briddick
Jefferson G Flosi
Stacey E Iturbide
Stacey X Butt
Jennifer S Albares
Antonio X Butt
Faith A Briddick
Murillo U Malet
Arvin I Morasca
Johnson N Schemmer
Misaki O Poquette
Smith O Briddick
James I Bowley
Julie W Rim
Stacey C Gaucho
Maria P Briddick
Smith V Waycott
Greenwood X Slusarski
Aruna T Whobrey
Ashley O Morasca
Izzy Y Foller
Aditya F Venere
Leja H Ostrosky
Arvin Y Nicka
Ashley J Waycott
Aruna X Iturbide
Juan Y Figeroa
Aika G Malet
Francesco Q Foller
Francesco Q Briddick
Wickens V Whobrey
Emily X Nestle
Leon K Chui
Aditya T Paprocki
Julie M Garufi
Adams J Ferencz
Mujtaba D Iturbide
Deepesh E Doe
IdCountryDate
1000Russia2024-04-13
1001Argentina2024-04-03
1002United Kingdom2024-04-21
1003India2024-03-30
1004India2024-04-22
1005France2024-04-14
1006France2024-04-13
1007Japan2024-04-26
1008Spain2024-04-09
1009Brazil2024-04-03
1010Canada2024-04-14
1011India2024-04-24
1012India2024-04-06
1013United Kingdom2024-04-16
1014Australia2024-04-25
1015Canada2024-04-17
1016Japan2024-04-20
1017Brazil2024-04-17
1018Italy2024-04-02
1019India2024-04-25
1020Canada2024-04-20
1021Brazil2024-04-08
1022Italy2024-04-26
1023Argentina2024-04-07
1024India2024-04-03
1025India2024-04-13
1026Brazil2024-04-04
1027Australia2024-04-08
1028Russia2024-04-26
1029Brazil2024-04-16
1030Russia2024-04-22
1031India2024-04-23
1032Japan2024-04-24
1033Italy2024-03-29
1034Russia2024-04-23
1035France2024-04-05
1036United Kingdom2024-04-20
1037Australia2024-04-09
1038Germany2024-04-23
1039Japan2024-03-30
1040India2024-04-01
1041Spain2024-04-03
1042Brazil2024-03-31
1043France2024-03-30
1044Italy2024-04-07
1045Russia2024-04-17
1046Canada2024-04-18
1047Germany2024-04-03
1048Japan2024-04-10
1049Canada2024-03-28

On-Demand Data

NameIdCountryDate
Wickens J Wieser1000Brazil2024-04-20
Maisha T Nicka1001Japan2024-04-02
Ivar X Tollner1002Brazil2024-04-03
Deepesh A Poquette1003Australia2024-04-02
Jeanfrancois K Royster1004Russia2024-04-02
Johnson W Tollner1005United Kingdom2024-04-22
Francesco H Dilliard1006Italy2024-04-19
Isabel F Slusarski1007Australia2024-04-18
Adams Q Flosi1008Canada2024-04-21
Julie I Caldarera1009France2024-04-18
Jefferson S Tollner1010France2024-04-13
Ivar B Royster1011Argentina2024-04-05
Aditya W Malet1012Japan2024-04-07
Clifford Q Garufi1013Russia2024-03-30
Ricardo F Glick1014Brazil2024-04-15
Munro Y Venere1015India2024-04-23
Misaki E Amigon1016Canada2024-04-09
Ashley L Chui1017Spain2024-03-28
Johnson D Morasca1018France2024-04-24
Izzy H Marrier1019France2024-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Darci H BriddickAustraliaAmy Elsner PROPOSAL
Rodrigues L WaycottJapanIvan Magalhaes UNQUALIFIED
Aruna V FigeroaSpainAsiya Javayant NEGOTIATION
Maria E CaudyItalyAsiya Javayant NEW
Ivar U WhobreyAustraliaAnna Fali NEGOTIATION
David E GauchoUnited KingdomAmy Elsner PROPOSAL
Ricardo A CaldareraArgentinaAsiya Javayant NEW
Murillo Z MaletFranceIoni Bowcher NEGOTIATION
Nicolas R BowleyRussiaAsiya Javayant QUALIFIED
Darci I ButtUnited KingdomAmy Elsner RENEWAL
Clifford S RimIndiaIvan Magalhaes QUALIFIED
Kaitlin L GillianJapanIvan Magalhaes PROPOSAL
Isabel W KolmetzJapanOnyama Limba PROPOSAL
Morrow X OstroskyCanadaStephen Shaw UNQUALIFIED
Aditya U RulapaughSpainAnna Fali RENEWAL
Nicolas C SaylorsFranceElwin Sharvill QUALIFIED
Jefferson H NestleUnited KingdomAmy Elsner UNQUALIFIED
Cody G WhobreyItalyIoni Bowcher PROPOSAL
Arvin Y MarrierItalyElwin Sharvill QUALIFIED
Isabel K DoeSpainAsiya Javayant NEGOTIATION
Julie K RutaRussiaStephen Shaw QUALIFIED
Darci T CaldareraArgentinaOnyama Limba UNQUALIFIED
Leja L VocelkaIndiaOnyama Limba QUALIFIED
Ashley A FerenczGermanyIoni Bowcher QUALIFIED
Juan T CampainFranceStephen Shaw QUALIFIED
Maria T InouyeRussiaXuxue Feng NEW
Maisha O NickaArgentinaAmy Elsner PROPOSAL
Sinclair N WaycottUnited KingdomAsiya Javayant NEGOTIATION
Jones P AlbaresItalyStephen Shaw NEW
Leja E GillianSpainXuxue Feng RENEWAL
Silvio A DarakjyItalyAsiya Javayant QUALIFIED
Alejandro V BowleyUnited KingdomBernardo Dominic UNQUALIFIED
Faith H PerinBrazilOnyama Limba QUALIFIED
James Q FollerAustraliaBernardo Dominic PROPOSAL
Maisha H NickaArgentinaBernardo Dominic PROPOSAL
Aditya O SergiBrazilElwin Sharvill NEW
Leon A WieserFranceAnna Fali NEGOTIATION
Isabel Q StockhamCanadaAsiya Javayant NEW
Salvatore U MacleadGermanyAsiya Javayant RENEWAL
Morrow V ShinkoFranceStephen Shaw NEGOTIATION

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