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
Octavia R RulapaughJapanIoni Bowcher RENEWAL
David P ButtIndiaXuxue Feng UNQUALIFIED
Tony U BowleyAustraliaStephen Shaw NEGOTIATION
Johnson A CampainCanadaElwin Sharvill NEW
Maria N SergiFranceIvan Magalhaes NEGOTIATION
Antonio R ButtIndiaXuxue Feng NEGOTIATION
Leja R DilliardAustraliaAnna Fali QUALIFIED
Darci K FlosiCanadaIvan Magalhaes PROPOSAL
Juan Q ButtBrazilIvan Magalhaes UNQUALIFIED
Deepesh E StensethAustraliaElwin Sharvill NEW
Leja C SergiGermanyXuxue Feng NEGOTIATION
Tony T NickaSpainIoni Bowcher RENEWAL
Claire C WieserAustraliaBernardo Dominic NEGOTIATION
Aika C RulapaughJapanBernardo Dominic QUALIFIED
Kadeem U MaletIndiaAnna Fali NEGOTIATION
Darci F InouyeArgentinaAnna Fali PROPOSAL
Emily A BowleyRussiaIoni Bowcher PROPOSAL
Johnson B ButtJapanBernardo Dominic PROPOSAL
Stacey X BriddickFranceIvan Magalhaes NEW
Sinclair D ChuiCanadaIoni Bowcher NEGOTIATION
Emily G PaprockiAustraliaBernardo Dominic QUALIFIED
James D ChuiRussiaAnna Fali NEW
Jeanfrancois W GlickAustraliaOnyama Limba RENEWAL
Mayumi R MarrierJapanAnna Fali UNQUALIFIED
Octavia N OstroskyRussiaElwin Sharvill PROPOSAL
Juan K WaycottSpainElwin Sharvill UNQUALIFIED
Jeanfrancois D GauchoUnited KingdomXuxue Feng PROPOSAL
Kaitlin R BowleySpainBernardo Dominic RENEWAL
Aruna I PoquetteGermanyIvan Magalhaes QUALIFIED
Juan R MarrierRussiaXuxue Feng UNQUALIFIED
Greenwood N KuskoArgentinaOnyama Limba PROPOSAL
Cody G OstroskyCanadaAsiya Javayant PROPOSAL
Smith E StockhamBrazilIvan Magalhaes NEGOTIATION
Mayumi O WhobreyJapanElwin Sharvill NEGOTIATION
Deepesh C FerenczFranceXuxue Feng NEW
Leja W InouyeAustraliaStephen Shaw QUALIFIED
Ashley B VenereUnited KingdomAmy Elsner RENEWAL
Silvio S GillianRussiaElwin Sharvill NEW
Rodrigues R GarufiArgentinaIoni Bowcher QUALIFIED
Rodrigues I NickaArgentinaXuxue Feng NEGOTIATION
Leon B ShinkoRussiaOnyama Limba NEW
Arvin F BowleyJapanIvan Magalhaes UNQUALIFIED
Julie W SergiUnited KingdomElwin Sharvill UNQUALIFIED
Stacey R WhobreySpainAsiya Javayant NEGOTIATION
Arvin E StensethRussiaIoni Bowcher PROPOSAL
Rodrigues O BologniaUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford B MarrierSpainAmy Elsner NEGOTIATION
Deepesh C GarufiJapanIvan Magalhaes NEW
Costa G BowleyJapanAnna Fali UNQUALIFIED
Kaitlin X DoeGermanyXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
David Q CaudyUnited KingdomAsiya Javayant PROPOSAL
Kaitlin X ShinkoJapanElwin Sharvill QUALIFIED
Arvin G KuskoAustraliaOnyama Limba UNQUALIFIED
Leon L AlbaresFranceOnyama Limba NEW
Costa B WieserItalyBernardo Dominic PROPOSAL
Ricardo P ShinkoUnited KingdomXuxue Feng PROPOSAL
Tony F FerenczJapanStephen Shaw UNQUALIFIED
Ashley Y OldroydCanadaElwin Sharvill PROPOSAL
Silvio T SergiBrazilIoni Bowcher PROPOSAL
Izzy Y SaylorsJapanAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas M OldroydSpain2024-04-12Chemel, James L Cpa UNQUALIFIED79Xuxue Feng
1001Silvio U GauchoUnited Kingdom2024-05-05Chemel, James L Cpa NEGOTIATION83Onyama Limba
1002Misaki H PaprockiFrance2024-04-16Chemel, James L Cpa QUALIFIED48Amy Elsner
1003Ricardo S GillianGermany2024-05-03Chemel, James L Cpa QUALIFIED31Ivan Magalhaes
1004James Q FigeroaCanada2024-05-06Rangoni Of Florence NEGOTIATION10Elwin Sharvill
1005Alejandro H RulapaughAustralia2024-04-11Morlong Associates RENEWAL30Anna Fali
1006Juan X MaletBrazil2024-04-15Dorl, James J Esq UNQUALIFIED47Xuxue Feng
1007Silvio C RimUnited Kingdom2024-04-19King, Christopher A Esq PROPOSAL98Amy Elsner
1008Ivar S MaletAustralia2024-05-04Printing Dimensions PROPOSAL80Anna Fali
1009Faith F KolmetzBrazil2024-04-11Commercial Press QUALIFIED26Ivan Magalhaes
1010Jeanfrancois X NickaArgentina2024-04-23Chapman, Ross E Esq RENEWAL29Onyama Limba
1011Costa M ShinkoJapan2024-05-09Chanay, Jeffrey A Esq UNQUALIFIED18Elwin Sharvill
1012Kadeem I MaletGermany2024-04-24Feiner Bros NEW62Xuxue Feng
1013Tony V MaletGermany2024-05-06Truhlar And Truhlar Attys NEW8Anna Fali
1014Antonio E PoquetteAustralia2024-05-10Morlong Associates NEW99Onyama Limba
1015Aruna I MaletSpain2024-04-14Printing Dimensions NEGOTIATION0Bernardo Dominic
1016Salvatore W KolmetzItaly2024-05-03Chanay, Jeffrey A Esq NEW79Elwin Sharvill
1017David K OldroydGermany2024-04-14Feiner Bros NEW64Xuxue Feng
1018Cody J MaletRussia2024-05-08Dorl, James J Esq QUALIFIED99Xuxue Feng
1019Aruna Q PoquetteItaly2024-04-19Buckley Miller Wright QUALIFIED14Bernardo Dominic
1020Greenwood Q OldroydItaly2024-04-24Feiner Bros NEGOTIATION40Ivan Magalhaes
1021Jefferson J PoquetteArgentina2024-05-07Truhlar And Truhlar Attys NEW40Xuxue Feng
1022Costa D ChuiItaly2024-04-13Printing Dimensions NEGOTIATION48Anna Fali
1023Salvatore C SchemmerUnited Kingdom2024-04-15Chemel, James L Cpa UNQUALIFIED76Bernardo Dominic
1024Jones X MaletGermany2024-04-25Rangoni Of Florence UNQUALIFIED22Ioni Bowcher
1025Maria I BriddickAustralia2024-04-20Chemel, James L Cpa PROPOSAL9Anna Fali
1026Mujtaba D KuskoUnited Kingdom2024-05-09Truhlar And Truhlar Attys RENEWAL83Anna Fali
1027Clifford R ChuiGermany2024-05-05Printing Dimensions RENEWAL71Bernardo Dominic
1028Izzy O RutaCanada2024-04-15Benton, John B Jr NEGOTIATION30Asiya Javayant
1029James M TollnerSpain2024-05-08Chanay, Jeffrey A Esq PROPOSAL92Ioni Bowcher
1030Jones Y WaycottItaly2024-04-24Printing Dimensions NEGOTIATION12Stephen Shaw
1031Stacey O VenereSpain2024-05-10Feltz Printing Service NEW54Anna Fali
1032James Y IturbideRussia2024-04-12Truhlar And Truhlar Attys RENEWAL0Elwin Sharvill
1033Costa O WaycottCanada2024-04-19Printing Dimensions QUALIFIED63Xuxue Feng
1034Kaitlin P GlickFrance2024-05-07Chemel, James L Cpa PROPOSAL74Bernardo Dominic
1035Juan M RutaItaly2024-04-14Feiner Bros RENEWAL71Xuxue Feng
1036Jennifer J RulapaughFrance2024-04-30Chemel, James L Cpa UNQUALIFIED21Ivan Magalhaes
1037Leja F PaprockiIndia2024-05-07King, Christopher A Esq RENEWAL6Stephen Shaw
1038Antonio Q MacleadCanada2024-04-12Feltz Printing Service PROPOSAL86Asiya Javayant
1039Cody V FlosiRussia2024-04-24Truhlar And Truhlar Attys PROPOSAL61Stephen Shaw
1040Ashley C KolmetzArgentina2024-04-22Feiner Bros NEW54Stephen Shaw
1041Arvin D RoysterItaly2024-05-02Chapman, Ross E Esq NEGOTIATION34Stephen Shaw
1042Misaki F GauchoUnited Kingdom2024-04-23Chapman, Ross E Esq RENEWAL99Amy Elsner
1043Ashley H FollerRussia2024-05-06King, Christopher A Esq QUALIFIED58Stephen Shaw
1044Nicolas N BriddickBrazil2024-04-18Dorl, James J Esq PROPOSAL50Elwin Sharvill
1045Aditya N RutaRussia2024-04-12Chapman, Ross E Esq RENEWAL68Ivan Magalhaes
1046Jefferson C WaycottUnited Kingdom2024-04-25Chemel, James L Cpa QUALIFIED96Stephen Shaw
1047Smith Z MaletIndia2024-05-04Benton, John B Jr NEGOTIATION43Onyama Limba
1048Aditya O MarrierRussia2024-04-21King, Christopher A Esq PROPOSAL67Elwin Sharvill
1049Emily J CaldareraArgentina2024-04-26Printing Dimensions NEW93Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Ricardo B StensethUnited KingdomIvan Magalhaes UNQUALIFIED
Aruna S FerenczRussiaAmy Elsner UNQUALIFIED
Isabel Z KolmetzCanadaAsiya Javayant PROPOSAL
Leja B FlosiUnited KingdomElwin Sharvill PROPOSAL
Adams W StensethUnited KingdomIvan Magalhaes NEW
Chavez F RimRussiaElwin Sharvill UNQUALIFIED
Darci A GillianJapanAsiya Javayant QUALIFIED
Cody R PoquetteBrazilAsiya Javayant PROPOSAL
James Q RimFranceAnna Fali UNQUALIFIED
Juan L KuskoItalyBernardo Dominic RENEWAL
Cody I BowleyArgentinaElwin Sharvill NEGOTIATION
Juan Z IturbideAustraliaAmy Elsner UNQUALIFIED
Stacey W InouyeGermanyIoni Bowcher PROPOSAL
Cody A FigeroaCanadaIoni Bowcher UNQUALIFIED
Izzy Z GauchoJapanAmy Elsner PROPOSAL
David H MaletRussiaOnyama Limba QUALIFIED
Aruna H PerinBrazilXuxue Feng QUALIFIED
Kadeem B KuskoRussiaAsiya Javayant QUALIFIED
Maisha U ShinkoCanadaStephen Shaw RENEWAL
Emily T VocelkaJapanXuxue Feng UNQUALIFIED
Ivar P DarakjyAustraliaAnna Fali QUALIFIED
Wickens J AlbaresAustraliaIoni Bowcher NEGOTIATION
Ricardo I WhobreyAustraliaIvan Magalhaes NEW
Claire B InouyeFranceXuxue Feng NEW
Jeanfrancois Y SergiBrazilXuxue Feng NEGOTIATION
Jennifer W WieserJapanAsiya Javayant PROPOSAL
Ivar O WieserArgentinaIoni Bowcher NEW
Kadeem K PoquetteJapanElwin Sharvill UNQUALIFIED
Francesco L NestleFranceOnyama Limba PROPOSAL
Smith B FollerItalyBernardo Dominic PROPOSAL
Jeanfrancois P KuskoCanadaOnyama Limba RENEWAL
Arvin E NickaGermanyAnna Fali QUALIFIED
Costa H IturbideGermanyXuxue Feng NEW
Antonio V MacleadJapanXuxue Feng NEW
Antonio T PerinUnited KingdomOnyama Limba QUALIFIED
Tony J DarakjySpainStephen Shaw RENEWAL
Mayumi X ShinkoFranceAmy Elsner PROPOSAL
Kaitlin H GarufiGermanyIvan Magalhaes RENEWAL
Jeanfrancois G SchemmerRussiaAsiya Javayant NEW
Antonio F PerinRussiaIoni Bowcher NEW
Clifford N StensethRussiaXuxue Feng RENEWAL
Costa E WhobreyItalyStephen Shaw RENEWAL
Izzy W VocelkaJapanAmy Elsner NEGOTIATION
Maria A ShinkoAustraliaAsiya Javayant UNQUALIFIED
Ricardo B GlickJapanIoni Bowcher PROPOSAL
Izzy Q BriddickCanadaBernardo Dominic RENEWAL
Nicolas C MacleadJapanXuxue Feng QUALIFIED
Ashley Q MaletSpainXuxue Feng QUALIFIED
Alejandro L NestleAustraliaBernardo Dominic UNQUALIFIED
Sinclair H BowleyGermanyXuxue Feng NEGOTIATION
Frozen Columns
Name
Mujtaba E Malet
Claire U Figeroa
Misaki N Flosi
Silvio F Stockham
Alejandro V Glick
Misaki Y Schemmer
Julie G Nicka
Costa B Marrier
Mujtaba X Wieser
Isabel Z Sergi
Mujtaba D Vocelka
Leja Y Inouye
Sinclair S Ostrosky
Aika K Marrier
Deepesh H Royster
Julie A Stockham
David C Foller
Alejandro B Rulapaugh
Julie B Saylors
Tony L Chui
Jeanfrancois V Inouye
Cody W Marrier
Maria S Flosi
Aditya W Venere
Salvatore H Nestle
Smith Z Ruta
Misaki X Gaucho
Maria T Nestle
Murillo N Albares
Wickens W Royster
Aditya H Chui
Faith L Slusarski
Mujtaba N Nestle
Mujtaba F Morasca
Aditya F Glick
Murillo X Albares
Julie C Vocelka
Johnson Y Caldarera
Arvin T Caldarera
Juan I Saylors
Cody F Tollner
Aditya U Flosi
Jennifer R Rim
Izzy H Dilliard
Munro P Marrier
Tony A Dilliard
Smith D Butt
Rodrigues I Garufi
Faith W Bolognia
Julie N Rulapaugh
IdCountryDate
1000Brazil2024-04-28
1001Italy2024-05-06
1002Spain2024-04-29
1003Canada2024-04-19
1004Canada2024-04-21
1005Canada2024-05-09
1006Germany2024-04-24
1007Italy2024-04-17
1008Germany2024-04-19
1009Italy2024-04-26
1010Germany2024-05-08
1011Russia2024-04-24
1012Australia2024-04-18
1013United Kingdom2024-05-02
1014Japan2024-04-13
1015Canada2024-05-05
1016Canada2024-05-09
1017Brazil2024-04-28
1018Canada2024-05-09
1019India2024-04-24
1020Canada2024-04-22
1021Russia2024-05-10
1022Argentina2024-04-16
1023Canada2024-05-06
1024France2024-04-28
1025Argentina2024-05-09
1026Argentina2024-05-02
1027Australia2024-04-30
1028Russia2024-05-05
1029Australia2024-05-07
1030Germany2024-04-26
1031Spain2024-04-20
1032United Kingdom2024-04-16
1033Germany2024-05-01
1034Italy2024-04-15
1035France2024-04-17
1036Spain2024-05-07
1037Australia2024-04-24
1038Germany2024-05-08
1039Japan2024-04-28
1040Canada2024-04-24
1041Brazil2024-05-02
1042France2024-05-06
1043United Kingdom2024-04-12
1044Australia2024-05-09
1045Italy2024-05-05
1046Germany2024-04-15
1047Russia2024-05-05
1048Brazil2024-05-09
1049Spain2024-04-25

On-Demand Data

NameIdCountryDate
Leja T Darakjy1000Japan2024-04-12
Maria A Ferencz1001India2024-04-18
Nicolas I Royster1002Russia2024-04-21
Ricardo Q Glick1003United Kingdom2024-04-23
Morrow D Schemmer1004Italy2024-04-13
Ashley M Schemmer1005Germany2024-04-30
Smith I Caudy1006Germany2024-04-22
David J Kolmetz1007Russia2024-04-19
Stacey Z Marrier1008France2024-04-27
Morrow O Shinko1009Japan2024-05-04
Aruna V Paprocki1010Brazil2024-05-06
Aditya H Whobrey1011Australia2024-05-10
Tony H Gaucho1012Germany2024-04-12
Ashley E Nicka1013Japan2024-05-06
Ivar Z Dilliard1014Germany2024-04-13
Jefferson I Garufi1015Japan2024-04-18
Aditya N Morasca1016United Kingdom2024-04-27
Julie I Waycott1017Canada2024-04-13
Francesco C Albares1018Germany2024-04-14
Clifford C Gillian1019France2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore H CaldareraAustraliaBernardo Dominic NEW
Ashley I AmigonSpainAsiya Javayant NEW
Stacey F IturbideUnited KingdomStephen Shaw RENEWAL
Maria N KolmetzSpainElwin Sharvill NEW
Morrow G MarrierAustraliaAsiya Javayant UNQUALIFIED
Johnson J SchemmerIndiaOnyama Limba UNQUALIFIED
David M MaletIndiaIvan Magalhaes PROPOSAL
Adams K ShinkoUnited KingdomOnyama Limba RENEWAL
Clifford P PaprockiArgentinaIoni Bowcher RENEWAL
Mayumi V MarrierArgentinaIoni Bowcher NEW
Arvin M AmigonGermanyIvan Magalhaes NEGOTIATION
Misaki R WieserRussiaBernardo Dominic QUALIFIED
Chavez B StensethCanadaXuxue Feng UNQUALIFIED
Ashley J SergiBrazilOnyama Limba NEW
Adams M MaletItalyElwin Sharvill PROPOSAL
Misaki Z StockhamSpainAmy Elsner NEW
Munro S StensethGermanyElwin Sharvill NEGOTIATION
Faith J MacleadRussiaAnna Fali UNQUALIFIED
Leon P AlbaresIndiaAnna Fali QUALIFIED
Jefferson F DilliardFranceElwin Sharvill UNQUALIFIED
Johnson U StensethIndiaIvan Magalhaes QUALIFIED
Darci K FlosiFranceIoni Bowcher RENEWAL
Adams A RoysterRussiaElwin Sharvill RENEWAL
Misaki H PoquetteSpainBernardo Dominic QUALIFIED
Smith V MaletJapanAnna Fali UNQUALIFIED
Greenwood V PoquetteBrazilStephen Shaw UNQUALIFIED
Aika A MaletUnited KingdomIvan Magalhaes RENEWAL
Faith R DoeItalyStephen Shaw NEGOTIATION
Stacey Y DoeGermanyOnyama Limba PROPOSAL
Adams E DoeRussiaAmy Elsner NEW
Mujtaba C GillianRussiaAmy Elsner UNQUALIFIED
Stacey Z MaletBrazilAmy Elsner UNQUALIFIED
Faith P MaletJapanAmy Elsner QUALIFIED
Greenwood X BowleyRussiaAsiya Javayant NEW
Alejandro M GauchoSpainElwin Sharvill PROPOSAL
Alejandro M KuskoArgentinaAsiya Javayant QUALIFIED
Silvio X CampainRussiaAmy Elsner NEW
Adams I StensethBrazilAnna Fali UNQUALIFIED
Murillo R FigeroaFranceIoni Bowcher RENEWAL
Juan G InouyeBrazilAnna Fali PROPOSAL

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