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
Morrow H SergiItalyAmy Elsner QUALIFIED
Misaki K MaletFranceStephen Shaw NEW
Salvatore N GlickCanadaXuxue Feng PROPOSAL
Alejandro O FollerItalyIvan Magalhaes QUALIFIED
Julie V WieserFranceBernardo Dominic NEW
Darci K KuskoAustraliaStephen Shaw NEGOTIATION
David T SergiItalyOnyama Limba RENEWAL
Leja S FigeroaItalyStephen Shaw NEGOTIATION
Deepesh E WieserSpainAsiya Javayant UNQUALIFIED
Maria U SergiCanadaIoni Bowcher NEW
Claire Y PerinFranceAmy Elsner UNQUALIFIED
Leja D IturbideBrazilAsiya Javayant PROPOSAL
Chavez P FlosiArgentinaAnna Fali QUALIFIED
Ashley Y PoquetteRussiaStephen Shaw UNQUALIFIED
Claire F GlickCanadaStephen Shaw RENEWAL
Chavez U ChuiJapanBernardo Dominic RENEWAL
Greenwood A CaudyGermanyElwin Sharvill NEW
Jefferson W GauchoUnited KingdomBernardo Dominic NEW
Rodrigues M RulapaughCanadaXuxue Feng RENEWAL
Maisha U GarufiGermanyAmy Elsner QUALIFIED
Chavez M WieserRussiaIoni Bowcher NEW
Claire O MaletJapanElwin Sharvill PROPOSAL
David C DoeJapanOnyama Limba UNQUALIFIED
Darci G GauchoBrazilStephen Shaw QUALIFIED
Mayumi G SaylorsBrazilXuxue Feng PROPOSAL
Munro C FlosiAustraliaBernardo Dominic RENEWAL
Mayumi E BologniaArgentinaAsiya Javayant RENEWAL
Stacey Q VocelkaSpainIvan Magalhaes UNQUALIFIED
Ricardo T PaprockiJapanAsiya Javayant QUALIFIED
Faith R BriddickUnited KingdomAsiya Javayant UNQUALIFIED
Antonio W KolmetzUnited KingdomAnna Fali UNQUALIFIED
Arvin X StensethUnited KingdomAsiya Javayant NEGOTIATION
Maisha Q PerinIndiaElwin Sharvill UNQUALIFIED
Nicolas N KuskoArgentinaIoni Bowcher NEW
Kadeem X FigeroaRussiaIoni Bowcher QUALIFIED
Antonio A KuskoGermanyOnyama Limba RENEWAL
Wickens P RimCanadaElwin Sharvill PROPOSAL
Arvin F StockhamFranceElwin Sharvill RENEWAL
Maisha H CampainRussiaXuxue Feng RENEWAL
Ricardo U NestleFranceIvan Magalhaes UNQUALIFIED
Leja V MaletArgentinaXuxue Feng RENEWAL
Maisha S IturbideAustraliaElwin Sharvill NEGOTIATION
Jones Q WaycottBrazilAmy Elsner NEGOTIATION
Ivar Z KuskoAustraliaXuxue Feng UNQUALIFIED
Misaki C FlosiArgentinaAmy Elsner NEW
Costa R BowleyGermanyOnyama Limba QUALIFIED
Wickens V BologniaBrazilStephen Shaw NEGOTIATION
Ricardo A InouyeUnited KingdomAmy Elsner RENEWAL
Kadeem C PerinGermanyStephen Shaw RENEWAL
Kaitlin P PerinCanadaElwin Sharvill QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mayumi B SaylorsCanadaAmy Elsner NEW
Silvio S InouyeRussiaElwin Sharvill NEGOTIATION
Jones E RimItalyElwin Sharvill NEW
Ivar N FigeroaAustraliaElwin Sharvill PROPOSAL
Murillo X VocelkaUnited KingdomAsiya Javayant NEW
Claire K FerenczIndiaElwin Sharvill NEGOTIATION
Aruna X FollerGermanyIoni Bowcher PROPOSAL
Murillo L RulapaughCanadaBernardo Dominic NEW
Maisha U GlickUnited KingdomStephen Shaw RENEWAL
David E OldroydFranceIoni Bowcher RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois R DoeArgentina2024-05-01Rangoni Of Florence NEGOTIATION68Xuxue Feng
1001Leon S GarufiFrance2024-04-26Chanay, Jeffrey A Esq PROPOSAL8Ivan Magalhaes
1002Nicolas O PerinBrazil2024-04-25Printing Dimensions PROPOSAL42Asiya Javayant
1003Jefferson U GarufiJapan2024-04-07Feiner Bros QUALIFIED3Elwin Sharvill
1004Jeanfrancois H StensethJapan2024-04-30Morlong Associates NEW29Anna Fali
1005Leon H KuskoIndia2024-04-26Chemel, James L Cpa QUALIFIED25Elwin Sharvill
1006Salvatore X AmigonAustralia2024-04-18Feiner Bros NEGOTIATION65Onyama Limba
1007Cody J GlickArgentina2024-04-10Buckley Miller Wright UNQUALIFIED92Onyama Limba
1008Greenwood R ShinkoJapan2024-04-27Benton, John B Jr QUALIFIED0Asiya Javayant
1009Murillo R CampainAustralia2024-04-14Rangoni Of Florence QUALIFIED34Anna Fali
1010Arvin B MacleadUnited Kingdom2024-04-09Rangoni Of Florence UNQUALIFIED90Asiya Javayant
1011Arvin L SchemmerCanada2024-04-06Feltz Printing Service UNQUALIFIED97Bernardo Dominic
1012Johnson U DarakjyUnited Kingdom2024-04-22Feltz Printing Service NEGOTIATION21Xuxue Feng
1013Maria V KuskoJapan2024-04-21Rangoni Of Florence PROPOSAL2Onyama Limba
1014Darci B FerenczArgentina2024-04-05Chemel, James L Cpa UNQUALIFIED33Elwin Sharvill
1015Munro C FollerAustralia2024-04-25Benton, John B Jr PROPOSAL13Stephen Shaw
1016Costa J MaletFrance2024-04-17Commercial Press PROPOSAL24Onyama Limba
1017Silvio L InouyeArgentina2024-04-08Chapman, Ross E Esq NEW18Asiya Javayant
1018Ivar D GillianArgentina2024-04-05Dorl, James J Esq NEGOTIATION85Amy Elsner
1019Aditya E PaprockiSpain2024-04-18Chemel, James L Cpa QUALIFIED99Stephen Shaw
1020Francesco Z MarrierItaly2024-04-11King, Christopher A Esq PROPOSAL31Elwin Sharvill
1021Octavia T DoeFrance2024-05-01Printing Dimensions UNQUALIFIED11Bernardo Dominic
1022Arvin Y PerinUnited Kingdom2024-04-16Rangoni Of Florence NEGOTIATION43Stephen Shaw
1023Julie O MarrierCanada2024-04-10Truhlar And Truhlar Attys NEW54Onyama Limba
1024Ivar F GauchoItaly2024-05-02Rousseaux, Michael Esq PROPOSAL24Onyama Limba
1025Arvin U AmigonJapan2024-04-13Morlong Associates NEGOTIATION82Ioni Bowcher
1026Ricardo B ChuiIndia2024-04-19Chanay, Jeffrey A Esq PROPOSAL49Amy Elsner
1027Adams X IturbideIndia2024-04-15Morlong Associates RENEWAL70Ioni Bowcher
1028Cody A MacleadGermany2024-04-30King, Christopher A Esq PROPOSAL10Amy Elsner
1029Costa O MacleadBrazil2024-04-08Printing Dimensions QUALIFIED72Ivan Magalhaes
1030Jones V FigeroaUnited Kingdom2024-04-28Truhlar And Truhlar Attys UNQUALIFIED57Stephen Shaw
1031Morrow C ChuiJapan2024-04-19Chapman, Ross E Esq UNQUALIFIED31Stephen Shaw
1032Octavia I GlickAustralia2024-04-21Commercial Press PROPOSAL72Onyama Limba
1033Kadeem R TollnerCanada2024-04-08Printing Dimensions RENEWAL52Ioni Bowcher
1034Sinclair E IturbideCanada2024-04-24Feiner Bros UNQUALIFIED13Ivan Magalhaes
1035Sinclair S MaletGermany2024-05-01King, Christopher A Esq PROPOSAL93Onyama Limba
1036Jeanfrancois B SlusarskiRussia2024-04-20Dorl, James J Esq QUALIFIED96Bernardo Dominic
1037Aruna R TollnerUnited Kingdom2024-04-13Benton, John B Jr QUALIFIED84Ioni Bowcher
1038Maisha I RutaGermany2024-04-07Morlong Associates NEGOTIATION33Amy Elsner
1039Wickens R CaldareraArgentina2024-05-01Commercial Press NEGOTIATION39Anna Fali
1040Greenwood J OldroydFrance2024-05-04Feiner Bros NEGOTIATION97Onyama Limba
1041Antonio V WieserAustralia2024-04-12Buckley Miller Wright RENEWAL23Ivan Magalhaes
1042Clifford Z CaldareraItaly2024-04-21Rangoni Of Florence PROPOSAL46Anna Fali
1043Maria E VenereJapan2024-05-04Morlong Associates UNQUALIFIED31Stephen Shaw
1044Clifford U RutaItaly2024-04-20Benton, John B Jr NEGOTIATION30Onyama Limba
1045Claire T BologniaBrazil2024-04-17Chapman, Ross E Esq NEGOTIATION12Elwin Sharvill
1046Silvio I WaycottAustralia2024-04-27Chanay, Jeffrey A Esq UNQUALIFIED13Ivan Magalhaes
1047Murillo P CaldareraAustralia2024-04-10Feltz Printing Service NEGOTIATION39Elwin Sharvill
1048Clifford O TollnerArgentina2024-04-27Chemel, James L Cpa UNQUALIFIED30Xuxue Feng
1049Aditya J WieserIndia2024-04-19Printing Dimensions PROPOSAL56Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Juan T FollerItalyElwin Sharvill QUALIFIED
Chavez G CaldareraItalyAsiya Javayant QUALIFIED
Izzy S RoysterAustraliaAnna Fali NEW
Adams R OstroskyAustraliaIoni Bowcher NEGOTIATION
Ashley D PerinBrazilAsiya Javayant QUALIFIED
Ashley N DoeAustraliaIvan Magalhaes NEW
Rodrigues R InouyeFranceElwin Sharvill QUALIFIED
Jefferson S ShinkoFranceAnna Fali UNQUALIFIED
Aditya K GillianBrazilAmy Elsner NEW
Kaitlin V SaylorsRussiaXuxue Feng PROPOSAL
Greenwood B ShinkoCanadaElwin Sharvill QUALIFIED
Alejandro K GlickIndiaAmy Elsner QUALIFIED
Chavez N KuskoCanadaBernardo Dominic NEGOTIATION
Salvatore H FerenczCanadaIoni Bowcher QUALIFIED
Costa W MaletBrazilIoni Bowcher NEW
Antonio F FigeroaIndiaIoni Bowcher RENEWAL
Francesco E WhobreyJapanIvan Magalhaes QUALIFIED
Juan C StockhamCanadaOnyama Limba RENEWAL
Cody X NestleArgentinaElwin Sharvill NEGOTIATION
Smith V GauchoArgentinaBernardo Dominic NEW
Darci T GillianUnited KingdomStephen Shaw NEGOTIATION
Silvio W ChuiCanadaElwin Sharvill NEGOTIATION
Silvio U GillianGermanyXuxue Feng PROPOSAL
Smith S InouyeIndiaStephen Shaw PROPOSAL
Clifford U GlickItalyXuxue Feng NEW
Chavez U OstroskyIndiaAmy Elsner RENEWAL
Maria L WhobreyFranceAsiya Javayant NEW
Mujtaba G BriddickJapanAsiya Javayant PROPOSAL
Julie W FollerCanadaAsiya Javayant NEW
Isabel J GarufiRussiaIoni Bowcher PROPOSAL
David I GillianFranceElwin Sharvill NEGOTIATION
Costa J RutaItalyBernardo Dominic QUALIFIED
Alejandro N CaldareraJapanOnyama Limba NEGOTIATION
Misaki Y MacleadGermanyAnna Fali QUALIFIED
Ricardo H ShinkoArgentinaAsiya Javayant NEW
Ricardo D PaprockiSpainXuxue Feng RENEWAL
Aika A PerinJapanAnna Fali QUALIFIED
Munro U KolmetzAustraliaOnyama Limba UNQUALIFIED
Wickens P OldroydFranceBernardo Dominic QUALIFIED
Leon V OstroskyAustraliaIoni Bowcher RENEWAL
Silvio R CampainCanadaBernardo Dominic RENEWAL
Alejandro S WaycottRussiaXuxue Feng QUALIFIED
Kaitlin H VenereArgentinaStephen Shaw NEW
Leon K InouyeItalyIvan Magalhaes NEW
Stacey J FigeroaItalyIvan Magalhaes PROPOSAL
Arvin X RimBrazilElwin Sharvill QUALIFIED
Nicolas R SchemmerGermanyAmy Elsner RENEWAL
Morrow C RimRussiaIoni Bowcher NEW
Antonio T SaylorsJapanIoni Bowcher QUALIFIED
Leja R PerinGermanyBernardo Dominic NEW
Frozen Columns
Name
Claire L Nicka
Leon U Poquette
Misaki Y Waycott
Alejandro P Ruta
Greenwood M Morasca
Faith G Glick
Kadeem Z Glick
Jeanfrancois M Caudy
David N Foller
Clifford V Maclead
Mayumi R Wieser
Ashley C Iturbide
Salvatore U Foller
Isabel Z Nicka
Adams S Slusarski
Aditya N Albares
Aruna Z Malet
Jennifer V Ruta
Clifford M Garufi
Smith W Amigon
Faith I Kusko
Aditya P Amigon
Ashley E Campain
Mujtaba D Marrier
Isabel U Butt
Munro E Ostrosky
Izzy I Stenseth
Octavia X Oldroyd
Darci J Rim
Munro Z Royster
Darci H Foller
Leja N Darakjy
Morrow V Oldroyd
Kadeem C Oldroyd
Tony X Gaucho
Octavia X Iturbide
Darci J Caudy
Izzy T Dilliard
Deepesh O Tollner
Cody R Nicka
Arvin Q Malet
Jennifer X Whobrey
Morrow W Rulapaugh
Sinclair N Stockham
Clifford L Nestle
Jones H Rulapaugh
Sinclair M Amigon
Kadeem H Inouye
Jefferson E Kusko
Rodrigues Y Inouye
IdCountryDate
1000Russia2024-04-08
1001Italy2024-04-08
1002Brazil2024-05-02
1003France2024-04-10
1004Canada2024-04-17
1005Germany2024-04-29
1006United Kingdom2024-04-09
1007Canada2024-04-21
1008Spain2024-04-15
1009Brazil2024-04-06
1010Australia2024-04-07
1011Germany2024-04-24
1012Brazil2024-05-01
1013Spain2024-04-07
1014Australia2024-04-27
1015Spain2024-05-04
1016India2024-05-01
1017United Kingdom2024-04-15
1018India2024-05-04
1019Brazil2024-04-18
1020Italy2024-05-01
1021Germany2024-05-02
1022Spain2024-04-12
1023Spain2024-04-07
1024Spain2024-04-11
1025Japan2024-04-19
1026Argentina2024-04-19
1027Spain2024-04-10
1028Russia2024-05-04
1029India2024-04-08
1030Japan2024-05-04
1031Italy2024-04-15
1032Canada2024-04-28
1033Argentina2024-04-20
1034Australia2024-04-20
1035Italy2024-04-06
1036India2024-04-25
1037India2024-04-22
1038Australia2024-04-23
1039India2024-05-01
1040Japan2024-05-04
1041Germany2024-04-12
1042France2024-04-21
1043Argentina2024-04-05
1044Germany2024-04-26
1045France2024-04-07
1046Germany2024-05-04
1047Argentina2024-05-04
1048Italy2024-04-20
1049India2024-04-07

On-Demand Data

NameIdCountryDate
Adams R Rim1000Spain2024-05-04
Salvatore K Briddick1001United Kingdom2024-04-30
Darci E Oldroyd1002Russia2024-04-13
Jones Z Dilliard1003France2024-04-25
Aditya W Inouye1004Germany2024-04-18
Izzy J Iturbide1005Canada2024-04-21
David Y Stenseth1006Germany2024-04-21
James C Perin1007Russia2024-04-29
Sinclair C Shinko1008Japan2024-04-25
Julie I Schemmer1009Italy2024-04-22
Emily A Gillian1010Japan2024-04-25
Tony O Rulapaugh1011United Kingdom2024-04-24
Ricardo A Doe1012Argentina2024-05-02
James D Stenseth1013Spain2024-04-13
Octavia A Foller1014Italy2024-04-12
Jefferson K Gaucho1015Italy2024-04-27
Mujtaba L Bolognia1016Australia2024-04-10
Johnson O Darakjy1017Spain2024-04-28
Aruna J Bowley1018United Kingdom2024-04-28
Wickens P Gillian1019Spain2024-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair L GlickUnited KingdomElwin Sharvill NEGOTIATION
Aditya G GauchoUnited KingdomAnna Fali UNQUALIFIED
Claire C MarrierGermanyIvan Magalhaes UNQUALIFIED
Murillo A AmigonArgentinaIoni Bowcher QUALIFIED
Juan G BologniaIndiaOnyama Limba QUALIFIED
Kaitlin T RutaSpainXuxue Feng NEW
Rodrigues M ChuiJapanIvan Magalhaes NEGOTIATION
Kaitlin Z ChuiItalyElwin Sharvill NEGOTIATION
Juan V InouyeRussiaAmy Elsner QUALIFIED
Sinclair K FerenczUnited KingdomIoni Bowcher NEW
Antonio N MacleadRussiaElwin Sharvill RENEWAL
Costa G BriddickBrazilOnyama Limba NEGOTIATION
Izzy U NestleSpainElwin Sharvill NEW
Chavez V PoquetteIndiaOnyama Limba RENEWAL
Aruna B PaprockiArgentinaBernardo Dominic NEW
Octavia D BriddickBrazilAmy Elsner NEW
Mujtaba U FollerSpainBernardo Dominic UNQUALIFIED
Leja M BologniaIndiaElwin Sharvill PROPOSAL
Wickens D MarrierItalyAmy Elsner QUALIFIED
Silvio V TollnerItalyIoni Bowcher UNQUALIFIED
Antonio M AlbaresItalyBernardo Dominic PROPOSAL
Deepesh I StockhamGermanyXuxue Feng RENEWAL
Murillo E GillianSpainAsiya Javayant UNQUALIFIED
Kaitlin S GillianArgentinaIvan Magalhaes NEGOTIATION
Tony G SaylorsArgentinaStephen Shaw UNQUALIFIED
Ricardo C CaldareraBrazilAnna Fali UNQUALIFIED
Darci O OstroskyIndiaBernardo Dominic PROPOSAL
Arvin T SergiJapanXuxue Feng NEW
Aruna W BologniaCanadaBernardo Dominic NEW
Izzy L VocelkaJapanAnna Fali UNQUALIFIED
Nicolas V GarufiIndiaXuxue Feng UNQUALIFIED
Ivar X KuskoIndiaBernardo Dominic NEGOTIATION
Rodrigues G PerinRussiaXuxue Feng QUALIFIED
Clifford P SaylorsArgentinaStephen Shaw NEW
Aruna C IturbideAustraliaElwin Sharvill QUALIFIED
Misaki M StensethCanadaStephen Shaw NEGOTIATION
Octavia R AmigonItalyOnyama Limba QUALIFIED
Ricardo W AmigonGermanyAnna Fali NEW
Kaitlin X AlbaresArgentinaIvan Magalhaes RENEWAL
Emily A RoysterGermanyElwin Sharvill 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>