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
Claire Y OldroydAustraliaStephen Shaw QUALIFIED
Isabel U DarakjyItalyElwin Sharvill NEW
Ashley B RimArgentinaAnna Fali PROPOSAL
Kaitlin E GlickAustraliaIvan Magalhaes PROPOSAL
Silvio V PerinGermanyAnna Fali QUALIFIED
Silvio Z CampainSpainIvan Magalhaes QUALIFIED
David J TollnerIndiaBernardo Dominic QUALIFIED
Chavez H DilliardUnited KingdomAsiya Javayant QUALIFIED
Jones B AlbaresGermanyXuxue Feng NEGOTIATION
Leon U OldroydRussiaStephen Shaw NEW
Leon W BologniaCanadaAsiya Javayant NEW
Antonio Q VocelkaJapanStephen Shaw UNQUALIFIED
Clifford W TollnerArgentinaOnyama Limba NEGOTIATION
Arvin Z ShinkoUnited KingdomAsiya Javayant PROPOSAL
Aika V FollerSpainAmy Elsner QUALIFIED
Cody R StockhamFranceAnna Fali NEW
Tony R KuskoItalyAsiya Javayant PROPOSAL
Leja L SchemmerArgentinaBernardo Dominic RENEWAL
Ivar G GauchoUnited KingdomOnyama Limba PROPOSAL
Juan W MaletItalyAmy Elsner QUALIFIED
Costa F AmigonAustraliaXuxue Feng UNQUALIFIED
Greenwood Q StensethAustraliaAmy Elsner PROPOSAL
Francesco T ChuiGermanyXuxue Feng NEW
Maria I RoysterFranceXuxue Feng QUALIFIED
Morrow K StockhamGermanyBernardo Dominic UNQUALIFIED
Leja S BologniaItalyIoni Bowcher PROPOSAL
Rodrigues J PerinFranceElwin Sharvill QUALIFIED
Jennifer F VenereFranceStephen Shaw RENEWAL
Arvin Y GlickItalyAnna Fali QUALIFIED
Stacey O WaycottRussiaIvan Magalhaes NEW
Wickens X ChuiFranceElwin Sharvill QUALIFIED
Octavia C OstroskyFranceAmy Elsner NEW
Aruna K KolmetzItalyStephen Shaw RENEWAL
Mayumi U GlickUnited KingdomIvan Magalhaes QUALIFIED
Cody L SergiCanadaElwin Sharvill RENEWAL
Tony K MaletGermanyOnyama Limba RENEWAL
Stacey Z StensethAustraliaElwin Sharvill UNQUALIFIED
Aika K KuskoAustraliaIvan Magalhaes NEW
Tony R CaldareraFranceIvan Magalhaes PROPOSAL
Kadeem Y MaletBrazilBernardo Dominic NEW
Octavia W ButtCanadaAsiya Javayant QUALIFIED
Arvin N StensethAustraliaIoni Bowcher QUALIFIED
Murillo N GillianFranceElwin Sharvill NEW
Jeanfrancois C VocelkaIndiaAnna Fali QUALIFIED
Juan J RoysterRussiaAmy Elsner PROPOSAL
Antonio Y RoysterGermanyOnyama Limba PROPOSAL
Mayumi G GlickIndiaBernardo Dominic UNQUALIFIED
Stacey E FlosiArgentinaBernardo Dominic NEW
Greenwood H RutaRussiaAmy Elsner NEGOTIATION
Octavia E MaletArgentinaAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Alejandro F SergiRussiaAnna Fali QUALIFIED
Clifford T SchemmerIndiaIoni Bowcher QUALIFIED
Salvatore Q ShinkoSpainOnyama Limba QUALIFIED
Wickens T PerinArgentinaIvan Magalhaes NEW
Francesco F ShinkoSpainIoni Bowcher PROPOSAL
Ivar J KolmetzUnited KingdomXuxue Feng PROPOSAL
Rodrigues S FigeroaCanadaBernardo Dominic UNQUALIFIED
Maria T KolmetzItalyXuxue Feng NEW
Mujtaba O BologniaJapanAmy Elsner UNQUALIFIED
Antonio M VocelkaAustraliaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues Y WaycottGermany2024-03-06Chapman, Ross E Esq RENEWAL33Stephen Shaw
1001Leon N TollnerIndia2024-03-10King, Christopher A Esq RENEWAL52Xuxue Feng
1002Aika P InouyeArgentina2024-02-20Dorl, James J Esq QUALIFIED42Anna Fali
1003Ivar A InouyeUnited Kingdom2024-02-29Chanay, Jeffrey A Esq QUALIFIED98Ivan Magalhaes
1004Deepesh E StensethItaly2024-02-26Truhlar And Truhlar Attys NEGOTIATION27Xuxue Feng
1005Greenwood B WhobreyRussia2024-03-04Feltz Printing Service RENEWAL56Onyama Limba
1006Arvin D PoquetteJapan2024-02-27Rangoni Of Florence RENEWAL1Elwin Sharvill
1007Misaki C MacleadItaly2024-02-23Buckley Miller Wright QUALIFIED89Amy Elsner
1008Kaitlin F MacleadJapan2024-03-17Rangoni Of Florence NEGOTIATION89Amy Elsner
1009Aruna O KolmetzIndia2024-03-16Rangoni Of Florence PROPOSAL24Asiya Javayant
1010Mayumi O DilliardArgentina2024-03-07Dorl, James J Esq NEW32Ioni Bowcher
1011Julie R BowleyBrazil2024-03-12Chanay, Jeffrey A Esq UNQUALIFIED12Ioni Bowcher
1012Murillo O CaldareraRussia2024-02-20Feltz Printing Service RENEWAL57Stephen Shaw
1013Kadeem H OstroskyJapan2024-03-16Chemel, James L Cpa UNQUALIFIED36Anna Fali
1014David V OldroydUnited Kingdom2024-03-16Feiner Bros UNQUALIFIED73Asiya Javayant
1015Antonio W FerenczGermany2024-02-24Dorl, James J Esq RENEWAL3Asiya Javayant
1016Morrow Y BriddickJapan2024-03-08Chapman, Ross E Esq NEW65Ivan Magalhaes
1017Jeanfrancois K DilliardUnited Kingdom2024-02-20Feltz Printing Service UNQUALIFIED8Anna Fali
1018Aika Q IturbideSpain2024-02-22Feltz Printing Service UNQUALIFIED14Ivan Magalhaes
1019Ashley S FerenczArgentina2024-03-09Morlong Associates UNQUALIFIED87Bernardo Dominic
1020Jones K IturbideGermany2024-02-27Chemel, James L Cpa PROPOSAL56Ivan Magalhaes
1021Kaitlin Q NickaRussia2024-02-25Dorl, James J Esq RENEWAL49Ioni Bowcher
1022Maria Q AmigonCanada2024-02-19Buckley Miller Wright QUALIFIED38Elwin Sharvill
1023Claire U NickaSpain2024-03-17Rousseaux, Michael Esq QUALIFIED73Elwin Sharvill
1024Darci U WaycottSpain2024-03-11Commercial Press NEW12Ioni Bowcher
1025Leon B GillianFrance2024-03-05Printing Dimensions UNQUALIFIED47Anna Fali
1026Claire E WieserBrazil2024-03-04Feltz Printing Service QUALIFIED20Asiya Javayant
1027Costa F StensethFrance2024-02-29Benton, John B Jr QUALIFIED65Ioni Bowcher
1028Jones N CaudyGermany2024-03-10Feltz Printing Service NEW41Asiya Javayant
1029Morrow E GlickRussia2024-02-22Benton, John B Jr NEW3Anna Fali
1030Antonio K SaylorsSpain2024-02-27Truhlar And Truhlar Attys RENEWAL76Elwin Sharvill
1031Tony K RimArgentina2024-02-29Feiner Bros NEW33Xuxue Feng
1032Isabel A VenereJapan2024-02-26Benton, John B Jr RENEWAL30Ivan Magalhaes
1033Emily G AlbaresSpain2024-02-19Morlong Associates QUALIFIED60Asiya Javayant
1034Jones I TollnerArgentina2024-03-03Buckley Miller Wright RENEWAL36Stephen Shaw
1035Deepesh N PerinArgentina2024-03-07King, Christopher A Esq RENEWAL32Amy Elsner
1036Stacey H GlickItaly2024-03-14Benton, John B Jr QUALIFIED29Ioni Bowcher
1037Ricardo J TollnerItaly2024-03-13Dorl, James J Esq NEGOTIATION51Stephen Shaw
1038Aditya K NickaBrazil2024-02-23Benton, John B Jr UNQUALIFIED68Ioni Bowcher
1039Mujtaba W DarakjyRussia2024-03-05Rangoni Of Florence QUALIFIED54Asiya Javayant
1040Darci B VenereJapan2024-02-26Feltz Printing Service NEW40Ivan Magalhaes
1041Rodrigues S ChuiAustralia2024-02-29Rousseaux, Michael Esq NEGOTIATION22Asiya Javayant
1042Isabel G ButtGermany2024-03-07Buckley Miller Wright NEW23Bernardo Dominic
1043James C KuskoCanada2024-02-28Chapman, Ross E Esq NEW19Ivan Magalhaes
1044Aika F FlosiUnited Kingdom2024-03-06Truhlar And Truhlar Attys NEGOTIATION78Bernardo Dominic
1045Morrow E BriddickUnited Kingdom2024-03-09King, Christopher A Esq PROPOSAL41Ioni Bowcher
1046Mayumi J GillianItaly2024-02-27Dorl, James J Esq QUALIFIED78Onyama Limba
1047Kaitlin K WhobreyCanada2024-03-09Benton, John B Jr NEW79Ivan Magalhaes
1048Morrow J IturbideUnited Kingdom2024-03-15Dorl, James J Esq NEGOTIATION72Bernardo Dominic
1049Mujtaba Z BowleyFrance2024-03-18Morlong Associates NEW13Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Cody J VocelkaCanadaBernardo Dominic UNQUALIFIED
Kaitlin S PerinCanadaAnna Fali RENEWAL
Emily Z VenereItalyStephen Shaw UNQUALIFIED
Faith O BowleyIndiaXuxue Feng UNQUALIFIED
Chavez S ChuiRussiaAsiya Javayant RENEWAL
Julie H RutaCanadaAsiya Javayant NEW
James Z WhobreyUnited KingdomIoni Bowcher QUALIFIED
Deepesh B CampainGermanyAmy Elsner PROPOSAL
Mujtaba W NestleBrazilAnna Fali QUALIFIED
Faith F GlickIndiaOnyama Limba QUALIFIED
Leon A NickaCanadaElwin Sharvill QUALIFIED
Aika I GauchoRussiaAmy Elsner PROPOSAL
Kadeem M DoeGermanyIoni Bowcher UNQUALIFIED
Aditya T SergiBrazilBernardo Dominic RENEWAL
Jennifer J AmigonItalyIoni Bowcher NEW
Leon C DarakjyJapanIoni Bowcher PROPOSAL
Tony C VenereArgentinaAnna Fali NEGOTIATION
Izzy B PaprockiIndiaStephen Shaw QUALIFIED
Mayumi Y StockhamArgentinaAnna Fali NEGOTIATION
Ashley I MorascaFranceIoni Bowcher PROPOSAL
Maisha Q KolmetzRussiaIvan Magalhaes PROPOSAL
Ricardo N InouyeCanadaAnna Fali QUALIFIED
Leon Z TollnerSpainOnyama Limba NEGOTIATION
Tony C MacleadIndiaBernardo Dominic UNQUALIFIED
Izzy T FerenczBrazilXuxue Feng QUALIFIED
Maria B PerinFranceIvan Magalhaes QUALIFIED
Juan L PoquetteUnited KingdomBernardo Dominic QUALIFIED
Ivar C StockhamBrazilAnna Fali UNQUALIFIED
David D FigeroaCanadaElwin Sharvill NEW
Misaki V AmigonAustraliaAnna Fali PROPOSAL
Leja Z FollerCanadaXuxue Feng QUALIFIED
Maria A KolmetzItalyBernardo Dominic NEW
Cody D CaldareraJapanElwin Sharvill PROPOSAL
Kadeem V MacleadArgentinaXuxue Feng RENEWAL
Jones L ShinkoArgentinaOnyama Limba UNQUALIFIED
Jefferson C CaldareraRussiaOnyama Limba UNQUALIFIED
Murillo X RimAustraliaBernardo Dominic PROPOSAL
Ivar X PoquetteIndiaAmy Elsner QUALIFIED
Misaki M SergiUnited KingdomBernardo Dominic NEGOTIATION
Munro S MacleadArgentinaIvan Magalhaes UNQUALIFIED
Rodrigues T SergiAustraliaXuxue Feng PROPOSAL
Stacey A RimRussiaAsiya Javayant NEGOTIATION
Jeanfrancois V MaletFranceAmy Elsner QUALIFIED
Johnson H PerinIndiaElwin Sharvill RENEWAL
Adams O MarrierUnited KingdomStephen Shaw PROPOSAL
Cody V RimCanadaStephen Shaw QUALIFIED
Leja H WhobreyGermanyOnyama Limba RENEWAL
Rodrigues B KuskoBrazilElwin Sharvill QUALIFIED
Jennifer J RutaGermanyAnna Fali QUALIFIED
Mujtaba U WieserSpainAnna Fali NEGOTIATION
Frozen Columns
Name
Ivar E Kolmetz
Morrow I Stenseth
Kaitlin G Morasca
Deepesh Z Tollner
Jefferson P Nicka
Isabel D Nestle
Arvin K Bowley
Misaki O Butt
Salvatore U Saylors
Stacey C Venere
Kaitlin Y Bolognia
Izzy O Wieser
Nicolas H Albares
Maria U Ferencz
Wickens N Albares
Nicolas U Kusko
Salvatore F Amigon
Adams T Flosi
Costa U Nicka
Deepesh J Butt
Faith X Figeroa
Mayumi P Inouye
Mujtaba J Waycott
Jefferson Q Wieser
Emily R Iturbide
David F Caldarera
Emily S Kolmetz
Mujtaba F Perin
Isabel Q Poquette
Smith S Ferencz
Morrow B Marrier
Costa P Darakjy
Leon Q Shinko
Antonio M Garufi
Ivar M Saylors
Leja X Perin
Silvio C Caldarera
Kadeem Y Inouye
James I Albares
Smith Y Amigon
Mujtaba G Vocelka
Misaki Q Caudy
Emily C Marrier
Adams N Caldarera
Silvio R Inouye
Faith Z Nicka
Jones C Shinko
Morrow N Whobrey
Claire J Iturbide
Maisha Y Doe
IdCountryDate
1000Spain2024-03-03
1001United Kingdom2024-03-05
1002India2024-03-11
1003Spain2024-02-28
1004Japan2024-03-09
1005Germany2024-03-08
1006Russia2024-02-26
1007Argentina2024-03-12
1008Italy2024-03-13
1009Canada2024-03-11
1010France2024-02-29
1011Russia2024-03-01
1012Russia2024-03-12
1013Brazil2024-02-23
1014Russia2024-02-23
1015France2024-02-18
1016Japan2024-03-10
1017Spain2024-03-12
1018Argentina2024-03-18
1019Brazil2024-02-22
1020France2024-02-27
1021United Kingdom2024-03-15
1022France2024-03-10
1023Japan2024-02-28
1024Italy2024-02-23
1025Argentina2024-02-26
1026Canada2024-03-17
1027Germany2024-03-07
1028India2024-03-08
1029United Kingdom2024-03-06
1030France2024-03-14
1031Argentina2024-03-16
1032United Kingdom2024-02-29
1033Germany2024-03-05
1034Russia2024-02-27
1035United Kingdom2024-02-29
1036Brazil2024-02-23
1037Argentina2024-02-24
1038Canada2024-03-13
1039Italy2024-02-23
1040Germany2024-02-19
1041Australia2024-03-17
1042Canada2024-02-18
1043Italy2024-03-14
1044Brazil2024-03-08
1045Japan2024-03-04
1046India2024-02-25
1047Italy2024-02-21
1048Canada2024-02-24
1049Italy2024-02-23

On-Demand Data

NameIdCountryDate
Wickens L Waycott1000Brazil2024-03-11
Isabel Q Ruta1001Russia2024-03-15
Octavia K Whobrey1002Brazil2024-03-16
Aruna K Kolmetz1003Russia2024-03-14
Costa A Perin1004Germany2024-02-24
Claire E Wieser1005Spain2024-03-04
Claire T Wieser1006Spain2024-03-11
Aditya K Poquette1007United Kingdom2024-02-20
Morrow U Maclead1008United Kingdom2024-03-16
Jeanfrancois M Garufi1009Spain2024-02-26
Munro S Waycott1010India2024-02-26
Kaitlin T Inouye1011Italy2024-03-18
Aruna M Rulapaugh1012Italy2024-03-07
Jones G Whobrey1013Germany2024-02-26
Ashley U Ruta1014Argentina2024-02-22
Misaki Q Poquette1015Germany2024-02-20
Ivar K Perin1016France2024-03-12
Nicolas C Nicka1017Germany2024-03-15
Munro P Ostrosky1018United Kingdom2024-03-10
Adams D Vocelka1019India2024-03-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie Y NestleIndiaXuxue Feng NEW
Antonio L MacleadAustraliaElwin Sharvill QUALIFIED
Ashley J GlickGermanyAmy Elsner NEGOTIATION
Clifford M KuskoRussiaElwin Sharvill PROPOSAL
Arvin A ButtAustraliaAsiya Javayant NEW
Francesco E RimArgentinaAnna Fali QUALIFIED
Kaitlin S PoquetteGermanyElwin Sharvill RENEWAL
Stacey M StockhamArgentinaXuxue Feng NEGOTIATION
Maria P OldroydIndiaOnyama Limba UNQUALIFIED
Octavia D RutaGermanyOnyama Limba RENEWAL
Aruna I MaletAustraliaStephen Shaw NEGOTIATION
Cody U TollnerGermanyBernardo Dominic NEGOTIATION
Clifford F RutaBrazilBernardo Dominic UNQUALIFIED
Silvio M TollnerSpainIoni Bowcher NEW
Leja V SlusarskiFranceIoni Bowcher UNQUALIFIED
Francesco H MarrierCanadaStephen Shaw NEW
Nicolas N GillianRussiaXuxue Feng UNQUALIFIED
Murillo W FollerIndiaElwin Sharvill NEGOTIATION
Deepesh Z PerinUnited KingdomAnna Fali NEW
Munro C PaprockiRussiaOnyama Limba PROPOSAL
Stacey B CaudySpainIoni Bowcher NEGOTIATION
Aika R KuskoArgentinaXuxue Feng NEW
Munro A OstroskySpainBernardo Dominic PROPOSAL
Emily R NickaAustraliaBernardo Dominic NEGOTIATION
Faith Q KolmetzRussiaElwin Sharvill PROPOSAL
Kaitlin F ButtFranceAnna Fali UNQUALIFIED
Maria L SergiArgentinaBernardo Dominic NEGOTIATION
David I SergiSpainOnyama Limba NEGOTIATION
Misaki K CampainAustraliaBernardo Dominic NEGOTIATION
Salvatore V WaycottUnited KingdomElwin Sharvill NEW
Clifford H FerenczUnited KingdomBernardo Dominic RENEWAL
Claire P SaylorsGermanyBernardo Dominic UNQUALIFIED
Morrow L PoquetteJapanStephen Shaw QUALIFIED
Sinclair D BowleyBrazilAsiya Javayant NEW
Ricardo Z GauchoJapanElwin Sharvill UNQUALIFIED
Cody U ShinkoBrazilAmy Elsner QUALIFIED
Mayumi A AmigonItalyOnyama Limba PROPOSAL
Mayumi H VocelkaGermanyIvan Magalhaes NEW
Wickens M TollnerBrazilOnyama Limba QUALIFIED
David T MacleadUnited KingdomBernardo Dominic QUALIFIED

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