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
Smith H DilliardIndiaAnna Fali QUALIFIED
Munro N BowleyArgentinaBernardo Dominic RENEWAL
Nicolas K CampainJapanOnyama Limba QUALIFIED
Ashley S OldroydItalyElwin Sharvill QUALIFIED
Isabel O DilliardItalyBernardo Dominic RENEWAL
Maisha Z SlusarskiBrazilIoni Bowcher NEW
Izzy N RimArgentinaIoni Bowcher RENEWAL
Deepesh P TollnerUnited KingdomElwin Sharvill NEGOTIATION
Julie K GlickArgentinaElwin Sharvill QUALIFIED
Izzy T SlusarskiJapanXuxue Feng UNQUALIFIED
Stacey R GauchoBrazilAmy Elsner NEGOTIATION
Maisha B StockhamFranceOnyama Limba RENEWAL
Arvin T InouyeUnited KingdomElwin Sharvill NEGOTIATION
Leja Z BologniaSpainOnyama Limba RENEWAL
Salvatore Y RulapaughSpainXuxue Feng UNQUALIFIED
Faith R PaprockiUnited KingdomOnyama Limba NEW
Johnson Q CaldareraJapanElwin Sharvill QUALIFIED
Deepesh V OstroskyJapanElwin Sharvill RENEWAL
Antonio E CaudyGermanyOnyama Limba QUALIFIED
Jennifer O NestleBrazilIoni Bowcher UNQUALIFIED
Julie D BowleyIndiaAnna Fali NEW
Jones Y WaycottJapanStephen Shaw QUALIFIED
Deepesh R ShinkoUnited KingdomAsiya Javayant UNQUALIFIED
Munro Z VocelkaItalyBernardo Dominic NEW
Alejandro W MarrierJapanIvan Magalhaes NEW
Faith D MorascaArgentinaBernardo Dominic RENEWAL
Salvatore L MaletCanadaAsiya Javayant UNQUALIFIED
Darci Y FigeroaBrazilIvan Magalhaes NEW
Costa R TollnerCanadaOnyama Limba QUALIFIED
Jefferson T CampainSpainIoni Bowcher PROPOSAL
Murillo M GillianArgentinaOnyama Limba QUALIFIED
Jefferson X VenereBrazilBernardo Dominic QUALIFIED
David C TollnerUnited KingdomIoni Bowcher UNQUALIFIED
Leon X GauchoIndiaOnyama Limba UNQUALIFIED
Jones B RulapaughBrazilElwin Sharvill NEGOTIATION
Mujtaba U DilliardUnited KingdomStephen Shaw RENEWAL
Maria L GarufiJapanAmy Elsner QUALIFIED
James L ShinkoJapanAsiya Javayant RENEWAL
Murillo B PoquetteUnited KingdomStephen Shaw NEW
Chavez N CaudyIndiaXuxue Feng NEGOTIATION
Greenwood G RoysterUnited KingdomAmy Elsner UNQUALIFIED
Wickens M IturbideGermanyStephen Shaw QUALIFIED
Leon F RimBrazilIoni Bowcher QUALIFIED
Darci M RoysterCanadaStephen Shaw UNQUALIFIED
Adams S RutaItalyIvan Magalhaes NEW
Jones K ButtAustraliaAmy Elsner PROPOSAL
Chavez D FerenczJapanIvan Magalhaes QUALIFIED
Kadeem H RulapaughUnited KingdomStephen Shaw RENEWAL
Ashley F StockhamRussiaAnna Fali PROPOSAL
Ivar W SergiArgentinaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aika X CaldareraJapanStephen Shaw UNQUALIFIED
Cody I CaudyGermanyAsiya Javayant UNQUALIFIED
Maisha O WaycottArgentinaStephen Shaw RENEWAL
Misaki C OldroydRussiaXuxue Feng NEGOTIATION
Sinclair C GlickSpainAmy Elsner UNQUALIFIED
Leja G WieserCanadaAsiya Javayant RENEWAL
Wickens G FerenczItalyBernardo Dominic RENEWAL
Morrow V DilliardCanadaIvan Magalhaes NEW
Misaki S NestleIndiaElwin Sharvill UNQUALIFIED
Leja R IturbideUnited KingdomElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Francesco F KuskoIndia2024-04-12Buckley Miller Wright PROPOSAL49Amy Elsner
1001Greenwood C AmigonCanada2024-03-28Chapman, Ross E Esq RENEWAL36Bernardo Dominic
1002Alejandro N NestleBrazil2024-04-16Buckley Miller Wright PROPOSAL66Ioni Bowcher
1003Clifford P OldroydIndia2024-04-24Dorl, James J Esq QUALIFIED31Ivan Magalhaes
1004Jefferson C PoquetteRussia2024-04-08Chemel, James L Cpa RENEWAL77Elwin Sharvill
1005Adams D GillianAustralia2024-04-14Benton, John B Jr PROPOSAL28Asiya Javayant
1006Clifford A NestleItaly2024-04-15Commercial Press RENEWAL15Bernardo Dominic
1007Darci J KolmetzCanada2024-04-17Morlong Associates QUALIFIED17Anna Fali
1008Jennifer Q DilliardCanada2024-04-18Rousseaux, Michael Esq QUALIFIED86Amy Elsner
1009Faith W FerenczGermany2024-04-10Chapman, Ross E Esq UNQUALIFIED3Ivan Magalhaes
1010Mujtaba W GlickJapan2024-04-14Benton, John B Jr UNQUALIFIED19Xuxue Feng
1011Kadeem F RutaJapan2024-04-16Chapman, Ross E Esq PROPOSAL8Anna Fali
1012Julie E WhobreyAustralia2024-04-21Chapman, Ross E Esq RENEWAL31Amy Elsner
1013Juan X SlusarskiArgentina2024-04-10Chanay, Jeffrey A Esq UNQUALIFIED58Asiya Javayant
1014Rodrigues R ChuiAustralia2024-04-21Commercial Press NEW36Onyama Limba
1015Nicolas U MarrierAustralia2024-04-13Morlong Associates QUALIFIED94Onyama Limba
1016Munro H GauchoItaly2024-04-15Rousseaux, Michael Esq NEGOTIATION77Bernardo Dominic
1017James S WaycottJapan2024-04-03Feiner Bros NEW91Ivan Magalhaes
1018Claire F NestleArgentina2024-04-01Rangoni Of Florence PROPOSAL86Asiya Javayant
1019Deepesh Z CaudyUnited Kingdom2024-04-07Commercial Press QUALIFIED72Ioni Bowcher
1020Cody Y NickaSpain2024-04-22Dorl, James J Esq NEGOTIATION59Anna Fali
1021Tony E MorascaFrance2024-04-22Benton, John B Jr UNQUALIFIED35Onyama Limba
1022Aruna N MarrierRussia2024-03-28Chemel, James L Cpa QUALIFIED34Ioni Bowcher
1023Darci T GarufiRussia2024-04-12Feiner Bros UNQUALIFIED92Bernardo Dominic
1024Tony C StensethFrance2024-03-31Feiner Bros NEW0Amy Elsner
1025Leja L WhobreyIndia2024-04-24Printing Dimensions RENEWAL5Anna Fali
1026Aruna U WhobreyIndia2024-04-08Feiner Bros RENEWAL33Xuxue Feng
1027Ashley E PoquetteSpain2024-04-08Benton, John B Jr QUALIFIED44Bernardo Dominic
1028Jeanfrancois K MaletJapan2024-03-30Buckley Miller Wright NEW69Stephen Shaw
1029Claire F GarufiRussia2024-03-26Rousseaux, Michael Esq QUALIFIED28Elwin Sharvill
1030Leja N VenereGermany2024-04-08Buckley Miller Wright NEGOTIATION22Bernardo Dominic
1031Munro D CampainUnited Kingdom2024-04-19Rangoni Of Florence PROPOSAL44Xuxue Feng
1032Chavez T DarakjyFrance2024-04-21Feiner Bros QUALIFIED99Bernardo Dominic
1033Cody O DilliardItaly2024-04-21Chapman, Ross E Esq RENEWAL67Ivan Magalhaes
1034Ivar D KolmetzBrazil2024-03-30Buckley Miller Wright NEW3Xuxue Feng
1035Alejandro E WieserCanada2024-04-09Feltz Printing Service RENEWAL91Stephen Shaw
1036Jones K VenereAustralia2024-04-24Rousseaux, Michael Esq RENEWAL93Xuxue Feng
1037Claire S BologniaGermany2024-04-04Chanay, Jeffrey A Esq RENEWAL50Stephen Shaw
1038Nicolas O PoquetteCanada2024-04-06Dorl, James J Esq RENEWAL59Elwin Sharvill
1039Costa N InouyeFrance2024-04-07Commercial Press NEGOTIATION61Stephen Shaw
1040Julie V FerenczItaly2024-03-30Chemel, James L Cpa RENEWAL70Ioni Bowcher
1041Octavia Y AlbaresIndia2024-03-31Benton, John B Jr RENEWAL70Ioni Bowcher
1042Aruna X NestleGermany2024-03-30Chanay, Jeffrey A Esq QUALIFIED63Stephen Shaw
1043Izzy J NickaJapan2024-03-31Morlong Associates NEW15Ioni Bowcher
1044Greenwood J ShinkoSpain2024-04-09Rangoni Of Florence NEGOTIATION20Bernardo Dominic
1045Leja K WieserUnited Kingdom2024-04-24Dorl, James J Esq RENEWAL94Ioni Bowcher
1046Ivar D BowleyBrazil2024-04-13Buckley Miller Wright UNQUALIFIED12Asiya Javayant
1047Francesco X FerenczIndia2024-04-13Chemel, James L Cpa NEGOTIATION36Elwin Sharvill
1048Francesco H BologniaItaly2024-04-15Benton, John B Jr UNQUALIFIED30Stephen Shaw
1049Mujtaba F RimSpain2024-04-09Chapman, Ross E Esq NEGOTIATION45Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aruna U OldroydItalyAmy Elsner NEW
Emily Z GarufiFranceElwin Sharvill NEW
Nicolas B VenereJapanBernardo Dominic NEW
Adams P InouyeAustraliaAsiya Javayant QUALIFIED
Isabel E DoeItalyBernardo Dominic UNQUALIFIED
Antonio A FollerUnited KingdomElwin Sharvill NEW
Mujtaba J CampainJapanAnna Fali QUALIFIED
Wickens T VenereJapanIoni Bowcher NEGOTIATION
Rodrigues G MaletAustraliaBernardo Dominic QUALIFIED
Juan Y AmigonArgentinaBernardo Dominic NEW
Munro Y RutaAustraliaAsiya Javayant NEW
Kaitlin Z VenereBrazilAsiya Javayant PROPOSAL
Salvatore L NickaGermanyIoni Bowcher NEGOTIATION
Arvin J WieserGermanyElwin Sharvill RENEWAL
Aika C OstroskyRussiaOnyama Limba QUALIFIED
Salvatore L SergiBrazilBernardo Dominic QUALIFIED
Maria P CaudyCanadaElwin Sharvill QUALIFIED
Izzy J IturbideArgentinaXuxue Feng UNQUALIFIED
Kaitlin D KolmetzBrazilXuxue Feng PROPOSAL
Ricardo Y VenereAustraliaIvan Magalhaes NEW
Sinclair B InouyeIndiaIvan Magalhaes PROPOSAL
Aditya U KolmetzJapanIvan Magalhaes QUALIFIED
Alejandro L CaudyAustraliaAsiya Javayant NEGOTIATION
Chavez J StockhamGermanyOnyama Limba RENEWAL
Greenwood Q OldroydSpainElwin Sharvill PROPOSAL
Ricardo D DilliardJapanElwin Sharvill QUALIFIED
Greenwood V WaycottSpainBernardo Dominic PROPOSAL
Alejandro W BriddickAustraliaAnna Fali UNQUALIFIED
David B FollerRussiaBernardo Dominic QUALIFIED
Kaitlin X VocelkaItalyOnyama Limba RENEWAL
Arvin E ButtCanadaBernardo Dominic NEGOTIATION
Silvio C MaletAustraliaAnna Fali PROPOSAL
Isabel Y BowleyItalyIoni Bowcher NEW
Jones W MacleadFranceIvan Magalhaes NEGOTIATION
Morrow H OldroydIndiaXuxue Feng UNQUALIFIED
Faith U BriddickAustraliaAmy Elsner UNQUALIFIED
James G GauchoFranceStephen Shaw QUALIFIED
Morrow O VenereRussiaAsiya Javayant NEW
Claire M StensethItalyElwin Sharvill RENEWAL
Arvin J PoquetteRussiaAsiya Javayant RENEWAL
Smith Q RoysterGermanyIvan Magalhaes RENEWAL
Murillo Y FigeroaIndiaIvan Magalhaes NEGOTIATION
Arvin A DarakjyJapanElwin Sharvill NEW
Kadeem S MaletItalyXuxue Feng QUALIFIED
Izzy K SaylorsUnited KingdomIvan Magalhaes NEGOTIATION
Arvin D PoquetteIndiaXuxue Feng QUALIFIED
Darci R WaycottBrazilOnyama Limba PROPOSAL
Costa B CaldareraIndiaAmy Elsner NEGOTIATION
Francesco S AmigonCanadaBernardo Dominic NEW
Antonio B MaletCanadaOnyama Limba NEGOTIATION
Frozen Columns
Name
Ricardo U Amigon
Octavia J Chui
Arvin L Royster
Isabel N Chui
Izzy E Shinko
Jeanfrancois B Poquette
Francesco L Vocelka
Clifford G Saylors
Julie Q Kolmetz
Stacey I Paprocki
Johnson D Iturbide
Ivar E Glick
Morrow V Rim
Julie B Dilliard
Smith Z Bowley
Misaki H Slusarski
Maria V Darakjy
Emily Z Wieser
Francesco V Butt
Leon F Foller
Aika R Campain
Izzy I Malet
Faith N Glick
Munro W Whobrey
Mayumi J Maclead
Cody E Royster
Ivar S Gaucho
Maria I Gaucho
Maria L Ruta
Jeanfrancois I Bowley
Leja K Nestle
Mujtaba F Flosi
Claire O Caudy
Mayumi X Butt
Adams A Venere
Alejandro P Stenseth
Mujtaba Z Gaucho
Julie C Butt
Stacey T Stenseth
Sinclair W Flosi
Rodrigues A Rulapaugh
Leon W Ruta
Kaitlin X Perin
Salvatore E Perin
Kadeem C Amigon
Ivar J Iturbide
Antonio V Kusko
Tony A Amigon
Tony K Ostrosky
Darci P Malet
IdCountryDate
1000Argentina2024-03-29
1001Brazil2024-04-14
1002Brazil2024-04-23
1003Italy2024-03-27
1004Japan2024-03-27
1005India2024-04-14
1006Spain2024-04-06
1007Italy2024-04-07
1008France2024-04-21
1009Italy2024-04-11
1010Australia2024-04-05
1011Italy2024-03-30
1012Brazil2024-03-29
1013Brazil2024-03-31
1014Russia2024-04-07
1015India2024-03-31
1016United Kingdom2024-04-12
1017Brazil2024-03-29
1018Australia2024-04-24
1019Japan2024-04-03
1020India2024-03-27
1021Brazil2024-04-08
1022Japan2024-04-05
1023India2024-04-15
1024Italy2024-04-04
1025India2024-04-02
1026France2024-03-31
1027Russia2024-04-11
1028United Kingdom2024-04-14
1029Canada2024-04-14
1030Canada2024-04-02
1031Russia2024-03-31
1032Germany2024-04-02
1033Spain2024-03-31
1034France2024-04-15
1035India2024-03-27
1036United Kingdom2024-04-09
1037India2024-04-11
1038Argentina2024-03-27
1039Australia2024-04-16
1040Argentina2024-04-08
1041Argentina2024-04-02
1042France2024-04-24
1043Spain2024-04-23
1044Argentina2024-04-10
1045Brazil2024-04-14
1046Canada2024-03-28
1047Japan2024-03-27
1048India2024-03-31
1049Italy2024-04-09

On-Demand Data

NameIdCountryDate
Aruna S Briddick1000Spain2024-04-21
Chavez H Royster1001United Kingdom2024-04-18
Julie B Glick1002Japan2024-04-18
Maisha F Stenseth1003Japan2024-03-31
Leja A Shinko1004Argentina2024-04-07
Cody B Slusarski1005Spain2024-04-01
Jeanfrancois T Gillian1006Australia2024-03-29
Ashley K Paprocki1007United Kingdom2024-04-15
Johnson C Shinko1008Australia2024-04-06
Francesco R Ferencz1009India2024-03-29
Tony H Gaucho1010Spain2024-04-24
Maria S Caldarera1011France2024-04-04
Emily U Ferencz1012Italy2024-04-10
James C Oldroyd1013Argentina2024-04-07
Antonio Q Bolognia1014United Kingdom2024-04-03
Salvatore X Royster1015Canada2024-04-23
Julie K Caudy1016Australia2024-04-08
Ashley J Garufi1017Japan2024-04-18
Jennifer V Venere1018France2024-04-16
Faith P Garufi1019Germany2024-04-13
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba M FollerSpainAmy Elsner RENEWAL
Jefferson R RoysterAustraliaXuxue Feng NEW
Stacey Q FigeroaJapanXuxue Feng QUALIFIED
Costa N KolmetzAustraliaIoni Bowcher RENEWAL
Jennifer U StensethUnited KingdomAsiya Javayant RENEWAL
Izzy E FlosiUnited KingdomOnyama Limba QUALIFIED
Sinclair D FlosiAustraliaBernardo Dominic UNQUALIFIED
Chavez R PoquetteArgentinaIoni Bowcher NEW
Deepesh T KuskoFranceStephen Shaw UNQUALIFIED
Clifford Q FollerItalyAsiya Javayant UNQUALIFIED
Arvin W PaprockiArgentinaElwin Sharvill RENEWAL
Silvio I IturbideArgentinaBernardo Dominic QUALIFIED
Alejandro U ShinkoSpainXuxue Feng QUALIFIED
Mujtaba F CaldareraUnited KingdomBernardo Dominic QUALIFIED
Aika Z KolmetzIndiaAnna Fali QUALIFIED
Chavez N BowleyBrazilAnna Fali UNQUALIFIED
Smith I KolmetzCanadaAmy Elsner PROPOSAL
Mujtaba B AmigonIndiaAnna Fali RENEWAL
Emily U SaylorsSpainIoni Bowcher QUALIFIED
Francesco W MacleadAustraliaBernardo Dominic RENEWAL
Izzy A PaprockiFranceAnna Fali UNQUALIFIED
Emily I CampainJapanOnyama Limba NEW
Jefferson J NickaBrazilIoni Bowcher QUALIFIED
Izzy J BologniaIndiaAnna Fali NEGOTIATION
Rodrigues Z SlusarskiRussiaStephen Shaw UNQUALIFIED
Alejandro B BriddickGermanyAsiya Javayant UNQUALIFIED
Mayumi N GillianArgentinaStephen Shaw NEGOTIATION
Smith G VocelkaBrazilOnyama Limba NEW
Juan G ShinkoUnited KingdomAmy Elsner RENEWAL
Aika A OldroydArgentinaXuxue Feng UNQUALIFIED
Izzy B DoeItalyStephen Shaw NEGOTIATION
Emily N AmigonBrazilXuxue Feng NEW
Jeanfrancois W InouyeUnited KingdomOnyama Limba NEGOTIATION
Tony T GauchoAustraliaXuxue Feng RENEWAL
Emily V VocelkaArgentinaIvan Magalhaes PROPOSAL
Octavia C DilliardArgentinaIoni Bowcher RENEWAL
Nicolas R GauchoItalyElwin Sharvill NEW
Ashley O MaletFranceAsiya Javayant QUALIFIED
Greenwood U ShinkoIndiaAmy Elsner UNQUALIFIED
David B GauchoRussiaIoni Bowcher 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>