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
Francesco K IturbideIndiaXuxue Feng QUALIFIED
Faith Q TollnerBrazilOnyama Limba NEW
Faith I FollerCanadaAsiya Javayant RENEWAL
Deepesh I MaletUnited KingdomOnyama Limba NEGOTIATION
Adams W CaldareraAustraliaOnyama Limba PROPOSAL
Stacey D GillianFranceOnyama Limba QUALIFIED
Aika T RulapaughGermanyIvan Magalhaes QUALIFIED
Jones L GarufiCanadaBernardo Dominic NEW
Darci Q ShinkoSpainStephen Shaw QUALIFIED
Ricardo W GarufiJapanIoni Bowcher RENEWAL
Faith C TollnerBrazilAmy Elsner RENEWAL
Leja F GillianCanadaXuxue Feng QUALIFIED
Adams P GarufiGermanyAmy Elsner RENEWAL
Greenwood E MarrierBrazilElwin Sharvill UNQUALIFIED
Smith W MaletIndiaXuxue Feng RENEWAL
Murillo I RoysterItalyOnyama Limba NEGOTIATION
Antonio S FigeroaArgentinaOnyama Limba NEW
Isabel V WhobreyGermanyAmy Elsner PROPOSAL
Jeanfrancois K NickaRussiaBernardo Dominic NEGOTIATION
Leja S NestleFranceStephen Shaw RENEWAL
Kadeem T PerinArgentinaAnna Fali NEGOTIATION
Francesco E MaletJapanIvan Magalhaes RENEWAL
Claire R MaletCanadaOnyama Limba PROPOSAL
Julie X StockhamRussiaIvan Magalhaes NEGOTIATION
Leon F FollerCanadaBernardo Dominic RENEWAL
Salvatore C DarakjyJapanOnyama Limba NEGOTIATION
Aditya N DoeJapanXuxue Feng QUALIFIED
Kaitlin E StockhamAustraliaAnna Fali NEGOTIATION
Misaki Z MaletSpainBernardo Dominic UNQUALIFIED
Salvatore T BologniaBrazilXuxue Feng NEW
James B ButtBrazilIoni Bowcher NEW
Jones P RoysterCanadaBernardo Dominic QUALIFIED
Aditya J PerinCanadaAsiya Javayant QUALIFIED
Murillo P InouyeGermanyAnna Fali RENEWAL
Jefferson U SaylorsAustraliaAsiya Javayant NEW
Faith J AlbaresFranceIoni Bowcher QUALIFIED
Nicolas V RimItalyBernardo Dominic QUALIFIED
Morrow I TollnerArgentinaAmy Elsner NEW
Octavia L NickaSpainElwin Sharvill PROPOSAL
Juan W DilliardAustraliaIvan Magalhaes NEGOTIATION
Darci F SchemmerBrazilOnyama Limba RENEWAL
Jefferson R VocelkaFranceAsiya Javayant QUALIFIED
Adams P NickaBrazilOnyama Limba PROPOSAL
Maria Z AlbaresIndiaAnna Fali RENEWAL
Maisha N RutaUnited KingdomOnyama Limba UNQUALIFIED
Jefferson Y WaycottIndiaIoni Bowcher NEGOTIATION
Murillo Q FerenczRussiaAsiya Javayant NEW
Kaitlin L TollnerItalyAsiya Javayant QUALIFIED
Ivar V FollerJapanAnna Fali UNQUALIFIED
Arvin H FigeroaSpainAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Nicolas C DoeFranceOnyama Limba UNQUALIFIED
Adams Q MarrierGermanyAmy Elsner NEW
Emily P CaldareraArgentinaAnna Fali RENEWAL
Kaitlin X FlosiArgentinaIoni Bowcher NEW
Jones A FerenczGermanyAsiya Javayant QUALIFIED
Kadeem K ChuiUnited KingdomOnyama Limba UNQUALIFIED
Juan W PoquetteRussiaIvan Magalhaes NEW
Aruna B ButtUnited KingdomBernardo Dominic NEW
Alejandro M PerinUnited KingdomOnyama Limba QUALIFIED
Mayumi Z MorascaJapanStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey K GlickRussia2024-04-19Buckley Miller Wright RENEWAL82Asiya Javayant
1001Clifford Q MaletItaly2024-04-01Buckley Miller Wright QUALIFIED25Ioni Bowcher
1002Ashley F FollerSpain2024-04-07Commercial Press UNQUALIFIED87Anna Fali
1003Jeanfrancois F WhobreyRussia2024-04-01Truhlar And Truhlar Attys UNQUALIFIED99Bernardo Dominic
1004Chavez G PoquetteJapan2024-04-22Chapman, Ross E Esq UNQUALIFIED69Amy Elsner
1005Wickens U RoysterArgentina2024-04-04Feltz Printing Service PROPOSAL51Elwin Sharvill
1006Chavez U AmigonArgentina2024-04-06Truhlar And Truhlar Attys RENEWAL74Asiya Javayant
1007Salvatore V PoquetteAustralia2024-04-14Rangoni Of Florence QUALIFIED20Bernardo Dominic
1008Ivar Q TollnerBrazil2024-04-11Chanay, Jeffrey A Esq QUALIFIED37Onyama Limba
1009Faith P GlickItaly2024-04-08Truhlar And Truhlar Attys QUALIFIED47Xuxue Feng
1010Cody F SaylorsRussia2024-03-30Rangoni Of Florence UNQUALIFIED31Bernardo Dominic
1011Faith I FerenczUnited Kingdom2024-04-03Rousseaux, Michael Esq UNQUALIFIED2Anna Fali
1012Sinclair X MaletJapan2024-04-03Commercial Press UNQUALIFIED71Amy Elsner
1013Faith H RimSpain2024-04-26King, Christopher A Esq UNQUALIFIED99Amy Elsner
1014Morrow W NickaItaly2024-04-21Buckley Miller Wright NEGOTIATION88Amy Elsner
1015Adams A DoeIndia2024-04-04Buckley Miller Wright NEW8Amy Elsner
1016Leon P OldroydRussia2024-04-14Chanay, Jeffrey A Esq NEGOTIATION73Stephen Shaw
1017Claire Y RulapaughAustralia2024-04-23Chemel, James L Cpa PROPOSAL54Ioni Bowcher
1018Octavia A ChuiAustralia2024-03-31Feltz Printing Service UNQUALIFIED2Amy Elsner
1019Kadeem I DarakjyBrazil2024-04-14Commercial Press NEGOTIATION64Ivan Magalhaes
1020Izzy E SchemmerJapan2024-04-03Commercial Press NEGOTIATION73Onyama Limba
1021Julie X GauchoJapan2024-04-15Morlong Associates NEW8Ivan Magalhaes
1022Aruna D MaletArgentina2024-04-07Rangoni Of Florence QUALIFIED61Bernardo Dominic
1023Ricardo S WieserBrazil2024-03-31Commercial Press RENEWAL72Ioni Bowcher
1024Leja F DilliardIndia2024-04-26Chemel, James L Cpa QUALIFIED2Amy Elsner
1025Morrow P VenereBrazil2024-04-21Rousseaux, Michael Esq QUALIFIED96Elwin Sharvill
1026Ashley P RoysterJapan2024-04-26Truhlar And Truhlar Attys QUALIFIED91Ioni Bowcher
1027Adams Y FigeroaBrazil2024-04-07Feltz Printing Service QUALIFIED59Anna Fali
1028Maria J WieserIndia2024-04-25Benton, John B Jr QUALIFIED54Stephen Shaw
1029Faith H VocelkaIndia2024-04-19Chemel, James L Cpa RENEWAL31Xuxue Feng
1030Munro X GillianRussia2024-04-13Feiner Bros QUALIFIED65Bernardo Dominic
1031Clifford H DilliardGermany2024-03-29Buckley Miller Wright PROPOSAL86Anna Fali
1032Chavez H WieserFrance2024-03-29Feltz Printing Service QUALIFIED30Anna Fali
1033Izzy N ShinkoUnited Kingdom2024-04-20Printing Dimensions RENEWAL74Ioni Bowcher
1034Deepesh L RimUnited Kingdom2024-04-01Feiner Bros UNQUALIFIED57Amy Elsner
1035Chavez T FlosiAustralia2024-04-10Benton, John B Jr NEGOTIATION24Bernardo Dominic
1036Nicolas Y WaycottGermany2024-04-24Commercial Press RENEWAL93Ivan Magalhaes
1037Rodrigues Y PerinJapan2024-04-10Rangoni Of Florence RENEWAL13Anna Fali
1038Octavia L WieserBrazil2024-04-05Feiner Bros NEW85Ioni Bowcher
1039Maria E RulapaughGermany2024-04-04King, Christopher A Esq PROPOSAL34Xuxue Feng
1040Ivar M SergiJapan2024-04-03Feiner Bros NEGOTIATION6Elwin Sharvill
1041Ashley V VenereCanada2024-04-13Buckley Miller Wright UNQUALIFIED69Ioni Bowcher
1042Julie D PerinItaly2024-04-22Printing Dimensions PROPOSAL30Onyama Limba
1043Alejandro X RutaFrance2024-04-13Dorl, James J Esq UNQUALIFIED12Elwin Sharvill
1044Tony O SchemmerItaly2024-04-26Commercial Press QUALIFIED36Elwin Sharvill
1045Deepesh E MaletCanada2024-03-29Printing Dimensions PROPOSAL27Bernardo Dominic
1046Ashley L RulapaughBrazil2024-04-11Printing Dimensions RENEWAL17Ivan Magalhaes
1047Munro G RimItaly2024-04-17Dorl, James J Esq PROPOSAL71Xuxue Feng
1048Isabel Z FigeroaItaly2024-04-12Rangoni Of Florence RENEWAL41Amy Elsner
1049Nicolas T MarrierRussia2024-03-30Feiner Bros NEGOTIATION97Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Ricardo F StensethIndiaAmy Elsner PROPOSAL
Adams B InouyeIndiaOnyama Limba QUALIFIED
Smith P NickaSpainXuxue Feng PROPOSAL
Rodrigues Z DilliardUnited KingdomElwin Sharvill RENEWAL
Isabel R AlbaresItalyAsiya Javayant NEW
Ashley G SchemmerRussiaIvan Magalhaes RENEWAL
Cody F MacleadIndiaAmy Elsner QUALIFIED
Arvin Z KuskoArgentinaXuxue Feng QUALIFIED
Faith R FollerItalyIvan Magalhaes UNQUALIFIED
Deepesh O InouyeBrazilElwin Sharvill PROPOSAL
James I GarufiSpainAsiya Javayant PROPOSAL
Smith J NickaArgentinaStephen Shaw RENEWAL
James N NickaArgentinaIoni Bowcher UNQUALIFIED
Leja P NestleAustraliaIvan Magalhaes QUALIFIED
James M RulapaughSpainAnna Fali UNQUALIFIED
Misaki R BologniaAustraliaAnna Fali PROPOSAL
Aika L KolmetzFranceIvan Magalhaes RENEWAL
Stacey P NickaGermanyBernardo Dominic UNQUALIFIED
James M MaletItalyElwin Sharvill NEW
Ivar K CaudyGermanyAmy Elsner NEW
Munro L MaletItalyIvan Magalhaes UNQUALIFIED
Darci C DarakjyArgentinaElwin Sharvill UNQUALIFIED
Kaitlin V PerinGermanyOnyama Limba RENEWAL
Octavia G VenereArgentinaStephen Shaw NEGOTIATION
Ivar Q SchemmerJapanAsiya Javayant RENEWAL
Jennifer Y WieserRussiaAsiya Javayant UNQUALIFIED
Alejandro O OstroskyArgentinaElwin Sharvill RENEWAL
Deepesh P IturbideAustraliaOnyama Limba RENEWAL
Tony D FigeroaItalyAmy Elsner NEGOTIATION
Kadeem E MorascaSpainStephen Shaw NEGOTIATION
Tony E DarakjyGermanyBernardo Dominic QUALIFIED
Salvatore I BologniaCanadaAnna Fali RENEWAL
Stacey Q OstroskyItalyAsiya Javayant RENEWAL
Salvatore C IturbideUnited KingdomStephen Shaw PROPOSAL
Misaki G NestleGermanyOnyama Limba UNQUALIFIED
David R CaldareraAustraliaBernardo Dominic NEW
Kadeem O WhobreyAustraliaOnyama Limba QUALIFIED
Cody A GarufiArgentinaStephen Shaw UNQUALIFIED
Izzy A FerenczUnited KingdomAmy Elsner UNQUALIFIED
Isabel N MarrierAustraliaIoni Bowcher NEGOTIATION
Clifford T CampainBrazilXuxue Feng UNQUALIFIED
Murillo R FerenczItalyOnyama Limba NEGOTIATION
Greenwood Q NestleJapanAsiya Javayant QUALIFIED
Claire J FollerIndiaAsiya Javayant RENEWAL
James W SaylorsFranceOnyama Limba UNQUALIFIED
Emily W DarakjyArgentinaElwin Sharvill UNQUALIFIED
Cody Z DilliardCanadaElwin Sharvill PROPOSAL
David B ButtBrazilXuxue Feng UNQUALIFIED
Faith C RoysterSpainOnyama Limba NEGOTIATION
Costa D SergiUnited KingdomAmy Elsner QUALIFIED
Frozen Columns
Name
James W Saylors
Aditya M Waycott
Greenwood O Schemmer
Silvio L Malet
Mayumi X Figeroa
Smith A Slusarski
Jones L Garufi
Arvin I Ostrosky
Mujtaba P Malet
Chavez Y Paprocki
Antonio G Marrier
Murillo J Garufi
Maisha I Campain
Aditya E Amigon
Aruna L Butt
Tony H Kolmetz
David X Perin
Nicolas O Caldarera
James I Butt
Salvatore L Campain
Jeanfrancois I Glick
Octavia W Maclead
Darci S Marrier
Mujtaba O Morasca
Leja Y Waycott
Sinclair F Caldarera
Emily A Gaucho
Mayumi I Stenseth
Costa Z Briddick
Darci F Kusko
Alejandro P Doe
Faith A Shinko
Nicolas U Venere
Tony R Caudy
Misaki I Darakjy
Mujtaba Y Paprocki
Darci D Albares
Sinclair Q Sergi
Kaitlin X Amigon
Alejandro T Sergi
Isabel F Ruta
Jennifer L Perin
Alejandro U Malet
Greenwood F Garufi
Costa R Flosi
Julie T Garufi
James R Paprocki
Claire Y Royster
Leon R Ferencz
Nicolas V Briddick
IdCountryDate
1000Spain2024-04-22
1001Brazil2024-04-10
1002United Kingdom2024-04-16
1003Germany2024-04-18
1004Argentina2024-04-23
1005India2024-04-09
1006Russia2024-04-06
1007Argentina2024-04-14
1008Spain2024-03-30
1009Spain2024-04-03
1010India2024-04-22
1011India2024-04-03
1012Brazil2024-04-04
1013Australia2024-04-13
1014France2024-04-05
1015Japan2024-04-23
1016United Kingdom2024-04-15
1017Russia2024-04-09
1018Australia2024-04-25
1019Japan2024-04-22
1020Italy2024-04-22
1021Italy2024-04-21
1022Russia2024-04-14
1023Japan2024-03-29
1024Argentina2024-04-09
1025Germany2024-04-08
1026Canada2024-03-30
1027France2024-04-11
1028United Kingdom2024-04-16
1029Australia2024-04-25
1030France2024-04-09
1031France2024-03-31
1032France2024-04-18
1033France2024-04-15
1034Spain2024-04-13
1035Canada2024-04-02
1036India2024-03-31
1037Spain2024-04-25
1038Germany2024-04-04
1039Italy2024-04-19
1040Italy2024-04-09
1041Argentina2024-04-27
1042Canada2024-04-21
1043Russia2024-04-19
1044Australia2024-04-12
1045India2024-04-04
1046Spain2024-04-02
1047United Kingdom2024-04-26
1048France2024-04-11
1049Spain2024-04-22

On-Demand Data

NameIdCountryDate
Nicolas M Tollner1000Germany2024-04-04
Tony T Dilliard1001Italy2024-04-14
Cody E Briddick1002Argentina2024-04-16
Izzy G Flosi1003Germany2024-04-07
Octavia X Waycott1004Canada2024-04-12
Leja Z Paprocki1005Australia2024-04-05
Maria S Malet1006Russia2024-04-16
David B Malet1007Italy2024-04-23
Nicolas X Wieser1008Brazil2024-04-18
Maria L Kolmetz1009Russia2024-04-04
Jefferson E Wieser1010Russia2024-04-23
Clifford K Rulapaugh1011Japan2024-04-22
Nicolas W Flosi1012Italy2024-04-25
Aruna M Royster1013India2024-04-26
Antonio D Malet1014India2024-04-08
Adams V Ferencz1015Russia2024-04-11
Ashley B Caudy1016India2024-04-13
Greenwood K Rulapaugh1017United Kingdom2024-04-01
James Y Gillian1018Canada2024-04-17
Ashley V Stenseth1019Argentina2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair Y GillianUnited KingdomOnyama Limba NEGOTIATION
Cody B ShinkoArgentinaXuxue Feng NEW
Sinclair W SchemmerJapanAsiya Javayant QUALIFIED
Jennifer I RoysterUnited KingdomAnna Fali RENEWAL
Ashley X KolmetzFranceElwin Sharvill UNQUALIFIED
Kaitlin Y PoquetteItalyIvan Magalhaes QUALIFIED
Jefferson V AmigonItalyIoni Bowcher NEW
Munro Q FerenczSpainBernardo Dominic RENEWAL
Juan O PoquetteAustraliaIoni Bowcher NEGOTIATION
Johnson Z WhobreyArgentinaBernardo Dominic NEGOTIATION
Antonio S BriddickFranceAmy Elsner NEW
David J MacleadItalyXuxue Feng QUALIFIED
Murillo W DilliardIndiaIoni Bowcher RENEWAL
Darci R FollerArgentinaAsiya Javayant NEW
David V VenereBrazilXuxue Feng NEGOTIATION
Leja M SergiIndiaIvan Magalhaes PROPOSAL
Murillo Y RoysterAustraliaElwin Sharvill UNQUALIFIED
Johnson G WaycottAustraliaElwin Sharvill NEGOTIATION
James Q MaletJapanAnna Fali PROPOSAL
Julie O PerinUnited KingdomElwin Sharvill PROPOSAL
Rodrigues H FigeroaIndiaOnyama Limba NEW
Greenwood I OldroydJapanBernardo Dominic RENEWAL
Mayumi S BriddickAustraliaStephen Shaw PROPOSAL
Cody H FigeroaUnited KingdomAsiya Javayant QUALIFIED
Stacey X InouyeIndiaOnyama Limba NEW
Silvio L InouyeAustraliaAsiya Javayant RENEWAL
Julie A RoysterIndiaOnyama Limba PROPOSAL
James Z GillianRussiaXuxue Feng QUALIFIED
Aika P RoysterJapanIoni Bowcher PROPOSAL
Ashley C DarakjyRussiaIoni Bowcher NEGOTIATION
Leja F GlickCanadaOnyama Limba NEGOTIATION
Alejandro K WhobreyItalyIoni Bowcher NEGOTIATION
Ashley N KuskoSpainOnyama Limba NEGOTIATION
Jones D RoysterGermanyOnyama Limba NEGOTIATION
Ivar O ShinkoUnited KingdomAnna Fali NEGOTIATION
Wickens O RoysterBrazilBernardo Dominic QUALIFIED
Leon Y WaycottRussiaIoni Bowcher PROPOSAL
Wickens W PoquetteIndiaIvan Magalhaes NEW
Morrow O WhobreyBrazilAmy Elsner NEW
Leon D IturbideIndiaBernardo Dominic 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>