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 X GarufiGermanyElwin Sharvill PROPOSAL
Julie G BowleyCanadaAnna Fali NEGOTIATION
Sinclair I WhobreyBrazilIvan Magalhaes QUALIFIED
Jennifer E NestleItalyStephen Shaw QUALIFIED
Claire X ButtSpainAsiya Javayant RENEWAL
Murillo Q SaylorsSpainAsiya Javayant PROPOSAL
Aruna Q DarakjyAustraliaOnyama Limba PROPOSAL
Murillo C OldroydFranceBernardo Dominic RENEWAL
Deepesh A OldroydGermanyBernardo Dominic UNQUALIFIED
Silvio P VocelkaFranceBernardo Dominic NEW
Costa A OstroskyCanadaIvan Magalhaes NEGOTIATION
Arvin P GarufiCanadaAnna Fali RENEWAL
Alejandro E MorascaFranceElwin Sharvill UNQUALIFIED
Juan H MarrierJapanIoni Bowcher UNQUALIFIED
Kaitlin Y TollnerRussiaAsiya Javayant NEGOTIATION
Julie S OstroskyArgentinaIvan Magalhaes UNQUALIFIED
Costa I BriddickBrazilAsiya Javayant RENEWAL
Ashley J DilliardItalyElwin Sharvill RENEWAL
Ivar O SergiArgentinaStephen Shaw UNQUALIFIED
David R OldroydGermanyIvan Magalhaes RENEWAL
Ashley H MacleadGermanyAnna Fali UNQUALIFIED
Jennifer M WhobreySpainElwin Sharvill RENEWAL
Adams P CaldareraArgentinaStephen Shaw NEW
Chavez Q AmigonIndiaAsiya Javayant PROPOSAL
Johnson R StockhamRussiaAnna Fali NEW
Maisha J SergiCanadaStephen Shaw NEW
Mujtaba U MorascaCanadaAsiya Javayant PROPOSAL
Rodrigues W MaletSpainBernardo Dominic NEGOTIATION
Leon Z CaldareraCanadaAsiya Javayant RENEWAL
Salvatore T MacleadAustraliaAsiya Javayant NEW
Mayumi Y CampainAustraliaBernardo Dominic QUALIFIED
Smith S GlickArgentinaAnna Fali PROPOSAL
Antonio W StensethFranceOnyama Limba NEW
Adams J IturbideSpainOnyama Limba RENEWAL
Antonio G GillianGermanyBernardo Dominic RENEWAL
Kadeem D FollerArgentinaIoni Bowcher RENEWAL
Mayumi M RulapaughJapanOnyama Limba UNQUALIFIED
Sinclair O ShinkoCanadaIoni Bowcher UNQUALIFIED
Alejandro Q CampainUnited KingdomStephen Shaw NEGOTIATION
Cody G ShinkoGermanyAmy Elsner RENEWAL
Kadeem V GillianRussiaAnna Fali UNQUALIFIED
Jeanfrancois I FollerAustraliaOnyama Limba QUALIFIED
David F FigeroaItalyIoni Bowcher PROPOSAL
Emily T ChuiArgentinaXuxue Feng NEW
Clifford I InouyeCanadaAmy Elsner NEW
Maria Q CaudyJapanBernardo Dominic NEW
Emily F OstroskyBrazilIvan Magalhaes NEGOTIATION
Juan V RoysterArgentinaAnna Fali PROPOSAL
Jefferson W MorascaCanadaIoni Bowcher PROPOSAL
Aruna K BriddickGermanyAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois X RimGermanyBernardo Dominic RENEWAL
Greenwood M VenereRussiaIoni Bowcher PROPOSAL
Morrow Q FollerJapanAnna Fali NEW
Nicolas S RulapaughArgentinaBernardo Dominic PROPOSAL
Darci X MaletBrazilIvan Magalhaes QUALIFIED
Arvin J StensethAustraliaOnyama Limba NEGOTIATION
Julie U GillianUnited KingdomAsiya Javayant UNQUALIFIED
Morrow P RoysterSpainAsiya Javayant RENEWAL
Rodrigues Y OldroydSpainOnyama Limba NEW
Costa B StockhamJapanAnna Fali PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika Y SlusarskiSpain2024-04-19Chanay, Jeffrey A Esq QUALIFIED9Xuxue Feng
1001Adams F StockhamSpain2024-04-13Rangoni Of Florence UNQUALIFIED74Ioni Bowcher
1002Tony H KolmetzFrance2024-04-24Buckley Miller Wright QUALIFIED21Amy Elsner
1003Wickens U FollerSpain2024-04-01Chemel, James L Cpa PROPOSAL35Bernardo Dominic
1004Johnson M DarakjyFrance2024-04-18Rangoni Of Florence NEW24Onyama Limba
1005Tony D RulapaughAustralia2024-04-26Chemel, James L Cpa PROPOSAL34Xuxue Feng
1006Octavia R IturbideFrance2024-04-20Chemel, James L Cpa NEGOTIATION74Asiya Javayant
1007Munro Y GlickIndia2024-04-27Feltz Printing Service UNQUALIFIED10Ivan Magalhaes
1008David G SchemmerUnited Kingdom2024-04-22Commercial Press UNQUALIFIED47Ivan Magalhaes
1009Francesco B GillianBrazil2024-04-18Commercial Press UNQUALIFIED97Stephen Shaw
1010Nicolas C OstroskyJapan2024-04-07Rangoni Of Florence RENEWAL76Onyama Limba
1011Arvin W FollerFrance2024-04-20Rousseaux, Michael Esq UNQUALIFIED60Stephen Shaw
1012Wickens W MaletJapan2024-04-27Printing Dimensions NEGOTIATION40Anna Fali
1013Salvatore D GillianItaly2024-04-22Chapman, Ross E Esq NEGOTIATION54Asiya Javayant
1014Adams V GarufiUnited Kingdom2024-04-14Dorl, James J Esq RENEWAL4Stephen Shaw
1015Kaitlin Y NestleJapan2024-04-19King, Christopher A Esq NEGOTIATION23Anna Fali
1016Sinclair Z GlickArgentina2024-04-23Rangoni Of Florence RENEWAL11Elwin Sharvill
1017Arvin S SlusarskiUnited Kingdom2024-03-31Commercial Press UNQUALIFIED2Stephen Shaw
1018Maisha B KuskoItaly2024-04-22Chanay, Jeffrey A Esq RENEWAL22Asiya Javayant
1019Ashley J RulapaughGermany2024-04-18Truhlar And Truhlar Attys NEGOTIATION87Stephen Shaw
1020Greenwood B MorascaArgentina2024-04-18King, Christopher A Esq QUALIFIED14Xuxue Feng
1021Antonio T MaletArgentina2024-04-15Morlong Associates RENEWAL63Ioni Bowcher
1022Munro Z FlosiRussia2024-04-11Feiner Bros NEGOTIATION18Bernardo Dominic
1023Arvin F BriddickAustralia2024-04-05Commercial Press RENEWAL33Ioni Bowcher
1024Nicolas O OstroskyBrazil2024-04-24Dorl, James J Esq NEGOTIATION32Amy Elsner
1025Aika N NickaAustralia2024-04-12Morlong Associates NEGOTIATION39Amy Elsner
1026Ivar F OldroydAustralia2024-04-18Chapman, Ross E Esq QUALIFIED39Elwin Sharvill
1027Silvio A DilliardUnited Kingdom2024-04-21Buckley Miller Wright PROPOSAL45Anna Fali
1028Wickens P OldroydSpain2024-04-07Morlong Associates QUALIFIED47Amy Elsner
1029Jeanfrancois B RimJapan2024-04-13Commercial Press QUALIFIED12Ivan Magalhaes
1030Johnson Y DoeFrance2024-04-09Benton, John B Jr NEW75Anna Fali
1031Arvin S RimIndia2024-04-04Benton, John B Jr NEGOTIATION18Ioni Bowcher
1032Jennifer S SlusarskiFrance2024-04-25Benton, John B Jr UNQUALIFIED28Onyama Limba
1033Wickens O MaletFrance2024-04-25King, Christopher A Esq UNQUALIFIED18Anna Fali
1034Leja D TollnerCanada2024-04-26Dorl, James J Esq QUALIFIED17Onyama Limba
1035Munro N FigeroaArgentina2024-04-23Rangoni Of Florence RENEWAL87Xuxue Feng
1036Claire B CampainItaly2024-04-16Commercial Press RENEWAL73Ioni Bowcher
1037David E DoeItaly2024-04-26Chanay, Jeffrey A Esq PROPOSAL17Elwin Sharvill
1038Juan I IturbideAustralia2024-04-17Morlong Associates UNQUALIFIED30Ioni Bowcher
1039Ivar O BriddickUnited Kingdom2024-04-07Dorl, James J Esq RENEWAL46Ivan Magalhaes
1040Salvatore P SchemmerAustralia2024-04-18Printing Dimensions PROPOSAL5Onyama Limba
1041Mayumi F AmigonFrance2024-04-16Chanay, Jeffrey A Esq UNQUALIFIED55Ioni Bowcher
1042Tony R NestleBrazil2024-04-01Commercial Press PROPOSAL58Elwin Sharvill
1043Smith B OstroskyCanada2024-04-06Feltz Printing Service QUALIFIED93Elwin Sharvill
1044Mujtaba D ShinkoCanada2024-04-26Feltz Printing Service QUALIFIED80Onyama Limba
1045Wickens K CaudyUnited Kingdom2024-04-17Dorl, James J Esq UNQUALIFIED22Stephen Shaw
1046Munro O RulapaughItaly2024-04-01King, Christopher A Esq RENEWAL70Elwin Sharvill
1047Octavia B MacleadRussia2024-04-07Chapman, Ross E Esq NEGOTIATION10Ioni Bowcher
1048Silvio H NickaIndia2024-04-26Printing Dimensions NEGOTIATION66Onyama Limba
1049Deepesh S RulapaughAustralia2024-03-30Commercial Press NEGOTIATION4Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Antonio W GarufiBrazilIvan Magalhaes UNQUALIFIED
Nicolas M RutaBrazilXuxue Feng NEW
Aditya O PerinRussiaElwin Sharvill UNQUALIFIED
Aditya B MaletItalyAsiya Javayant NEGOTIATION
Clifford H PaprockiFranceIvan Magalhaes RENEWAL
Kadeem Q VenereAustraliaBernardo Dominic PROPOSAL
Johnson H CaldareraCanadaXuxue Feng NEGOTIATION
Arvin I ShinkoRussiaBernardo Dominic NEGOTIATION
Maria F FigeroaSpainIvan Magalhaes NEW
Arvin S GarufiCanadaStephen Shaw QUALIFIED
Silvio S StockhamIndiaElwin Sharvill NEGOTIATION
Aditya X NestleIndiaAsiya Javayant QUALIFIED
Clifford C PaprockiSpainXuxue Feng PROPOSAL
Leon A FerenczAustraliaAsiya Javayant RENEWAL
Faith I KuskoRussiaOnyama Limba QUALIFIED
Morrow X StensethCanadaAnna Fali RENEWAL
Octavia J BriddickItalyAmy Elsner NEW
Smith G PerinBrazilOnyama Limba RENEWAL
Murillo F MorascaIndiaAnna Fali NEGOTIATION
Ivar J SchemmerItalyXuxue Feng RENEWAL
Misaki V ButtArgentinaAnna Fali RENEWAL
Cody H FlosiSpainIoni Bowcher RENEWAL
James Y GarufiGermanyAmy Elsner NEW
Aditya J FerenczSpainXuxue Feng QUALIFIED
Smith A AlbaresBrazilAnna Fali NEW
Kaitlin K WieserAustraliaStephen Shaw UNQUALIFIED
Aruna I GillianBrazilBernardo Dominic PROPOSAL
Jefferson Z TollnerGermanyAnna Fali QUALIFIED
Morrow V WaycottGermanyIoni Bowcher NEGOTIATION
Isabel D KuskoSpainOnyama Limba RENEWAL
Octavia G OldroydFranceIoni Bowcher PROPOSAL
Stacey L BriddickUnited KingdomIvan Magalhaes PROPOSAL
Aika T TollnerIndiaStephen Shaw NEW
Isabel A MarrierGermanyElwin Sharvill NEW
Juan M BologniaCanadaIoni Bowcher NEW
Maisha J StockhamGermanyAsiya Javayant QUALIFIED
Leon S KolmetzUnited KingdomIvan Magalhaes UNQUALIFIED
Arvin Q RutaCanadaElwin Sharvill NEGOTIATION
Tony Z RimSpainBernardo Dominic NEW
Antonio Z NestleRussiaBernardo Dominic QUALIFIED
Deepesh S KolmetzFranceXuxue Feng UNQUALIFIED
Jennifer X WieserBrazilAsiya Javayant QUALIFIED
Wickens L MaletJapanIvan Magalhaes UNQUALIFIED
Julie X BologniaSpainStephen Shaw QUALIFIED
Aika U SchemmerItalyOnyama Limba RENEWAL
Sinclair E GlickBrazilAmy Elsner UNQUALIFIED
Francesco W WieserCanadaXuxue Feng NEW
Claire P RulapaughJapanXuxue Feng QUALIFIED
Isabel R AlbaresUnited KingdomIoni Bowcher PROPOSAL
Adams U NickaIndiaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Sinclair P Sergi
Alejandro B Whobrey
Chavez Z Foller
Maria X Slusarski
Jennifer I Ferencz
Arvin O Albares
Isabel M Nicka
Emily N Vocelka
Octavia P Flosi
Tony Z Rim
Misaki M Maclead
Faith Y Stenseth
Deepesh Q Whobrey
Maria Q Albares
Antonio P Venere
Stacey R Malet
Chavez Z Chui
Tony V Figeroa
Antonio J Ostrosky
Jeanfrancois Y Caldarera
Murillo T Ostrosky
Jefferson S Whobrey
Alejandro E Glick
Alejandro E Amigon
Clifford H Ruta
Mayumi S Paprocki
Aika J Morasca
James R Nicka
Alejandro Z Morasca
Ivar T Vocelka
Kadeem A Albares
Greenwood K Gaucho
Leja L Morasca
Aika M Rim
Jefferson V Caldarera
Salvatore B Waycott
Sinclair J Garufi
Leon S Malet
Smith C Briddick
Aika V Nicka
Jefferson T Poquette
Morrow I Butt
Kaitlin J Chui
Jefferson P Dilliard
Tony U Marrier
Emily Z Shinko
Ivar C Albares
Aika B Flosi
Kadeem F Nicka
Misaki W Venere
IdCountryDate
1000Germany2024-04-23
1001Canada2024-04-21
1002India2024-04-13
1003United Kingdom2024-04-19
1004Canada2024-04-28
1005Spain2024-04-07
1006Russia2024-04-01
1007Australia2024-04-04
1008Australia2024-04-11
1009Brazil2024-04-08
1010Brazil2024-04-24
1011United Kingdom2024-04-01
1012India2024-04-09
1013United Kingdom2024-04-22
1014Australia2024-04-10
1015Russia2024-04-16
1016Spain2024-03-31
1017India2024-04-08
1018United Kingdom2024-04-27
1019Italy2024-04-16
1020United Kingdom2024-04-15
1021Italy2024-04-20
1022Brazil2024-04-20
1023United Kingdom2024-04-06
1024Germany2024-04-12
1025Canada2024-04-12
1026Russia2024-04-20
1027Italy2024-04-27
1028France2024-04-07
1029Germany2024-04-04
1030India2024-04-10
1031Japan2024-04-02
1032Argentina2024-04-04
1033Italy2024-04-03
1034Russia2024-04-27
1035Japan2024-04-02
1036Canada2024-04-27
1037France2024-04-16
1038India2024-04-10
1039Russia2024-04-08
1040France2024-04-19
1041Spain2024-04-10
1042India2024-03-31
1043Italy2024-04-20
1044Russia2024-04-23
1045Japan2024-04-04
1046Russia2024-04-02
1047India2024-04-23
1048Argentina2024-04-12
1049Australia2024-04-12

On-Demand Data

NameIdCountryDate
Jones U Ferencz1000Russia2024-04-08
Sinclair S Marrier1001Brazil2024-04-11
Wickens P Gillian1002France2024-04-26
Ricardo T Vocelka1003Spain2024-03-30
Tony C Perin1004Canada2024-04-11
James A Vocelka1005India2024-04-18
David K Royster1006Argentina2024-04-17
Leja Q Ostrosky1007Spain2024-04-12
Francesco L Albares1008Argentina2024-04-14
Stacey W Chui1009Argentina2024-04-28
Kadeem L Schemmer1010Canada2024-04-27
Rodrigues L Figeroa1011Spain2024-04-03
Cody P Rim1012India2024-04-25
Salvatore K Caldarera1013Russia2024-04-23
Aruna R Inouye1014Japan2024-04-26
Aditya R Stockham1015Germany2024-04-16
Adams U Ostrosky1016France2024-04-24
Tony Z Figeroa1017Argentina2024-04-04
Claire Y Saylors1018India2024-04-14
Kaitlin N Bowley1019Germany2024-04-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson P SlusarskiRussiaAsiya Javayant PROPOSAL
Sinclair G RulapaughBrazilAsiya Javayant RENEWAL
Juan L DilliardAustraliaBernardo Dominic QUALIFIED
James W PoquetteFranceAsiya Javayant UNQUALIFIED
Aditya R FigeroaCanadaXuxue Feng PROPOSAL
Arvin W BologniaAustraliaAnna Fali NEGOTIATION
James F StensethJapanAnna Fali UNQUALIFIED
Claire I CaldareraBrazilBernardo Dominic QUALIFIED
Clifford Z TollnerGermanyOnyama Limba PROPOSAL
Maisha J ButtUnited KingdomIoni Bowcher NEGOTIATION
Alejandro O MaletJapanStephen Shaw QUALIFIED
Jennifer X NestleItalyAmy Elsner NEW
Maria N DoeItalyAsiya Javayant PROPOSAL
Chavez C VenereCanadaOnyama Limba RENEWAL
Mayumi V DarakjyCanadaAsiya Javayant NEW
Costa F VocelkaCanadaAnna Fali QUALIFIED
Rodrigues S AlbaresArgentinaXuxue Feng UNQUALIFIED
Kadeem Y PaprockiRussiaIoni Bowcher RENEWAL
Smith J WieserRussiaElwin Sharvill UNQUALIFIED
Ivar A CaldareraCanadaIoni Bowcher PROPOSAL
Munro Y GillianCanadaStephen Shaw QUALIFIED
Emily N FlosiGermanyAsiya Javayant UNQUALIFIED
Murillo Z NickaFranceXuxue Feng UNQUALIFIED
Claire I NickaUnited KingdomIvan Magalhaes PROPOSAL
James W RoysterUnited KingdomElwin Sharvill RENEWAL
Octavia A BriddickSpainStephen Shaw NEGOTIATION
Tony M IturbideRussiaElwin Sharvill NEGOTIATION
Tony V MorascaFranceElwin Sharvill PROPOSAL
Mujtaba J IturbideFranceXuxue Feng NEW
Mayumi T NestleItalyAnna Fali UNQUALIFIED
Juan O ChuiBrazilOnyama Limba UNQUALIFIED
Faith J KuskoBrazilElwin Sharvill QUALIFIED
Munro U VenereSpainAsiya Javayant QUALIFIED
Greenwood K FigeroaRussiaAsiya Javayant NEW
Isabel I OldroydBrazilBernardo Dominic NEGOTIATION
Alejandro V GillianAustraliaXuxue Feng UNQUALIFIED
Jefferson U FlosiRussiaIvan Magalhaes NEGOTIATION
Sinclair E ChuiAustraliaStephen Shaw QUALIFIED
Jeanfrancois T PaprockiCanadaAsiya Javayant RENEWAL
Wickens C GauchoCanadaIoni Bowcher 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>