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
Aruna R PoquetteGermanyIvan Magalhaes NEW
Francesco C GauchoAustraliaAnna Fali PROPOSAL
Aika G MorascaBrazilAsiya Javayant QUALIFIED
Wickens X MorascaCanadaBernardo Dominic NEGOTIATION
Wickens Q WieserUnited KingdomOnyama Limba QUALIFIED
Juan K PaprockiBrazilAnna Fali UNQUALIFIED
Smith T VocelkaAustraliaXuxue Feng QUALIFIED
Murillo R CaudyUnited KingdomBernardo Dominic UNQUALIFIED
Arvin G SergiCanadaBernardo Dominic PROPOSAL
Izzy H FollerItalyOnyama Limba UNQUALIFIED
Sinclair A WaycottIndiaIoni Bowcher UNQUALIFIED
Wickens D SlusarskiRussiaAnna Fali NEGOTIATION
Emily X ShinkoIndiaAsiya Javayant UNQUALIFIED
Ivar H StockhamArgentinaStephen Shaw RENEWAL
Murillo B WieserItalyBernardo Dominic PROPOSAL
Kaitlin R PoquetteGermanyOnyama Limba QUALIFIED
Johnson W NestleFranceIvan Magalhaes UNQUALIFIED
Aditya Q NickaAustraliaBernardo Dominic NEW
Ivar M TollnerRussiaOnyama Limba NEGOTIATION
Chavez I DoeArgentinaStephen Shaw PROPOSAL
Aika O ButtFranceOnyama Limba NEGOTIATION
Aika H ShinkoCanadaIoni Bowcher NEGOTIATION
Ricardo Q NickaCanadaAsiya Javayant NEGOTIATION
Juan J BriddickGermanyOnyama Limba NEW
Antonio E InouyeSpainOnyama Limba UNQUALIFIED
Claire J OstroskyFranceAmy Elsner PROPOSAL
Aika M DoeFranceIoni Bowcher RENEWAL
Adams U ButtSpainStephen Shaw PROPOSAL
Murillo Z WieserUnited KingdomStephen Shaw QUALIFIED
Munro I WhobreyRussiaIvan Magalhaes NEGOTIATION
Wickens H CaldareraArgentinaAnna Fali UNQUALIFIED
Misaki I MorascaRussiaAnna Fali PROPOSAL
Mayumi C FlosiIndiaOnyama Limba QUALIFIED
Aika R FerenczAustraliaAmy Elsner QUALIFIED
Juan S ButtCanadaAnna Fali UNQUALIFIED
Mujtaba S ShinkoCanadaAsiya Javayant NEW
Nicolas P GarufiRussiaStephen Shaw QUALIFIED
Smith V KolmetzItalyIvan Magalhaes RENEWAL
Kadeem I WaycottUnited KingdomIoni Bowcher NEW
Aika R AmigonUnited KingdomOnyama Limba QUALIFIED
Emily E FigeroaBrazilXuxue Feng QUALIFIED
Jennifer W FigeroaUnited KingdomIvan Magalhaes PROPOSAL
Stacey S RutaAustraliaAnna Fali QUALIFIED
Jeanfrancois E FollerFranceIvan Magalhaes QUALIFIED
Wickens A RutaFranceAmy Elsner NEGOTIATION
Murillo Y ChuiArgentinaOnyama Limba RENEWAL
Kadeem P FollerItalyIvan Magalhaes NEGOTIATION
Juan C FlosiBrazilAsiya Javayant PROPOSAL
James X OldroydJapanBernardo Dominic RENEWAL
Alejandro P AmigonCanadaAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Smith G OstroskySpainAnna Fali UNQUALIFIED
Silvio R FollerGermanyXuxue Feng RENEWAL
Mujtaba U FerenczRussiaOnyama Limba UNQUALIFIED
Stacey N GarufiArgentinaOnyama Limba PROPOSAL
Claire X NickaGermanyOnyama Limba NEGOTIATION
Jennifer L FlosiFranceStephen Shaw NEGOTIATION
Antonio E MacleadArgentinaIvan Magalhaes NEGOTIATION
Clifford T MaletArgentinaBernardo Dominic RENEWAL
Greenwood H AmigonCanadaBernardo Dominic UNQUALIFIED
Chavez T ShinkoSpainXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily J GlickGermany2024-03-06Feltz Printing Service NEW18Onyama Limba
1001Chavez B CaudyJapan2024-03-16Morlong Associates UNQUALIFIED29Bernardo Dominic
1002Silvio Q PerinCanada2024-03-14Dorl, James J Esq NEGOTIATION52Elwin Sharvill
1003Leon E RoysterBrazil2024-03-02Feltz Printing Service NEGOTIATION79Ioni Bowcher
1004Darci X AmigonCanada2024-03-03Benton, John B Jr RENEWAL74Onyama Limba
1005Johnson Y ShinkoIndia2024-03-02Feiner Bros RENEWAL24Bernardo Dominic
1006Aruna M InouyeJapan2024-03-16Commercial Press NEGOTIATION90Amy Elsner
1007Ivar U GauchoBrazil2024-03-19Buckley Miller Wright RENEWAL81Anna Fali
1008Stacey J FerenczItaly2024-02-29Feltz Printing Service NEGOTIATION53Bernardo Dominic
1009Kadeem K MarrierArgentina2024-03-16Buckley Miller Wright UNQUALIFIED9Stephen Shaw
1010Salvatore N OldroydArgentina2024-03-20Morlong Associates NEW41Bernardo Dominic
1011Aika D TollnerJapan2024-02-27Chanay, Jeffrey A Esq NEGOTIATION75Anna Fali
1012Murillo S FollerFrance2024-03-19Feiner Bros PROPOSAL14Asiya Javayant
1013Aruna T SergiIndia2024-03-12Buckley Miller Wright PROPOSAL88Elwin Sharvill
1014Faith Q GlickBrazil2024-03-03Morlong Associates PROPOSAL34Onyama Limba
1015Stacey Y ButtRussia2024-03-02Feiner Bros NEGOTIATION27Ivan Magalhaes
1016Wickens K BologniaCanada2024-03-04Truhlar And Truhlar Attys NEW9Stephen Shaw
1017Antonio O MaletFrance2024-03-05Commercial Press QUALIFIED3Stephen Shaw
1018Alejandro I KolmetzFrance2024-02-28Chapman, Ross E Esq QUALIFIED79Ivan Magalhaes
1019Isabel E PaprockiRussia2024-03-13Morlong Associates NEW43Amy Elsner
1020Isabel G MacleadCanada2024-03-07Morlong Associates NEGOTIATION70Elwin Sharvill
1021Claire I RoysterItaly2024-02-28Printing Dimensions NEGOTIATION91Elwin Sharvill
1022Johnson J RulapaughIndia2024-03-04Feltz Printing Service NEGOTIATION48Xuxue Feng
1023Stacey B RimArgentina2024-03-20Rousseaux, Michael Esq QUALIFIED42Bernardo Dominic
1024Aditya K RutaGermany2024-03-23Benton, John B Jr QUALIFIED86Stephen Shaw
1025Tony J WaycottRussia2024-03-13Chemel, James L Cpa RENEWAL7Elwin Sharvill
1026Johnson I CaldareraGermany2024-03-26Morlong Associates RENEWAL80Xuxue Feng
1027Nicolas H BowleyItaly2024-03-11Dorl, James J Esq QUALIFIED61Elwin Sharvill
1028Ricardo U WhobreyRussia2024-03-10Feiner Bros RENEWAL51Ioni Bowcher
1029Misaki H AmigonFrance2024-03-26Benton, John B Jr PROPOSAL53Amy Elsner
1030Aika H FlosiCanada2024-03-16King, Christopher A Esq QUALIFIED4Ioni Bowcher
1031Greenwood Q WaycottJapan2024-03-14Feiner Bros RENEWAL46Anna Fali
1032Jeanfrancois T VenereGermany2024-03-05Benton, John B Jr PROPOSAL1Bernardo Dominic
1033Leja W WhobreyArgentina2024-03-26Chemel, James L Cpa PROPOSAL29Xuxue Feng
1034Adams M PaprockiItaly2024-03-13Commercial Press NEGOTIATION38Asiya Javayant
1035Smith L FlosiCanada2024-03-22Feltz Printing Service QUALIFIED50Asiya Javayant
1036Costa T WaycottSpain2024-03-27Printing Dimensions NEGOTIATION26Asiya Javayant
1037Claire P BologniaIndia2024-03-17Morlong Associates QUALIFIED19Ioni Bowcher
1038Stacey N CampainItaly2024-03-20Commercial Press NEGOTIATION66Amy Elsner
1039Kadeem S BowleyGermany2024-03-20King, Christopher A Esq PROPOSAL65Stephen Shaw
1040Johnson U OstroskyGermany2024-03-07Benton, John B Jr RENEWAL51Elwin Sharvill
1041Darci R VocelkaFrance2024-03-14Feiner Bros UNQUALIFIED14Xuxue Feng
1042Alejandro V NickaUnited Kingdom2024-03-17Buckley Miller Wright NEGOTIATION14Elwin Sharvill
1043Tony Y PoquetteJapan2024-03-19Feiner Bros NEGOTIATION62Amy Elsner
1044Aika W SergiJapan2024-03-26Feltz Printing Service UNQUALIFIED96Elwin Sharvill
1045Nicolas A GauchoIndia2024-03-06Morlong Associates PROPOSAL76Ivan Magalhaes
1046Stacey R GarufiJapan2024-03-27Commercial Press NEW14Xuxue Feng
1047Johnson Y StensethIndia2024-03-13Feltz Printing Service PROPOSAL19Onyama Limba
1048Maisha R IturbideAustralia2024-03-26Dorl, James J Esq NEGOTIATION82Stephen Shaw
1049Izzy S WhobreyBrazil2024-03-26Chemel, James L Cpa NEW65Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Julie B RulapaughCanadaStephen Shaw PROPOSAL
James N TollnerArgentinaElwin Sharvill NEGOTIATION
Ashley R FlosiIndiaIvan Magalhaes RENEWAL
Clifford W BologniaAustraliaIvan Magalhaes PROPOSAL
Costa K ButtBrazilStephen Shaw NEGOTIATION
Clifford T OldroydBrazilOnyama Limba RENEWAL
Mayumi D AmigonAustraliaElwin Sharvill UNQUALIFIED
Johnson C IturbideRussiaAsiya Javayant NEW
Jefferson J MaletSpainIvan Magalhaes PROPOSAL
Tony N KuskoIndiaIoni Bowcher RENEWAL
David P FigeroaItalyBernardo Dominic NEW
Ivar K PoquetteBrazilBernardo Dominic PROPOSAL
Costa O RimIndiaAnna Fali NEW
Maisha S BologniaJapanIoni Bowcher NEGOTIATION
Misaki S GarufiUnited KingdomIvan Magalhaes QUALIFIED
Chavez N IturbideArgentinaOnyama Limba UNQUALIFIED
Murillo Q MarrierArgentinaAnna Fali RENEWAL
James N RutaItalyStephen Shaw PROPOSAL
Johnson U BologniaArgentinaOnyama Limba QUALIFIED
Jefferson O ButtFranceOnyama Limba RENEWAL
Nicolas K SchemmerCanadaXuxue Feng RENEWAL
Tony Q CaldareraItalyStephen Shaw UNQUALIFIED
Isabel H NestleSpainOnyama Limba UNQUALIFIED
Antonio A BologniaItalyXuxue Feng RENEWAL
Julie P KuskoRussiaAsiya Javayant NEGOTIATION
Aika A SchemmerUnited KingdomStephen Shaw NEW
Salvatore A PaprockiCanadaBernardo Dominic RENEWAL
Ivar X CampainAustraliaAmy Elsner QUALIFIED
Leja V PoquetteFranceIvan Magalhaes UNQUALIFIED
Stacey S OstroskySpainOnyama Limba QUALIFIED
Sinclair U MaletUnited KingdomElwin Sharvill QUALIFIED
Isabel U BowleySpainStephen Shaw NEW
Sinclair L PerinAustraliaOnyama Limba UNQUALIFIED
Arvin E PoquetteIndiaAnna Fali UNQUALIFIED
Jones B SaylorsUnited KingdomOnyama Limba PROPOSAL
Chavez E MacleadAustraliaAmy Elsner PROPOSAL
Aika K StockhamJapanIvan Magalhaes RENEWAL
Ashley P FerenczFranceAnna Fali QUALIFIED
Aditya U NickaAustraliaBernardo Dominic RENEWAL
Ashley V GarufiFranceIoni Bowcher UNQUALIFIED
Francesco H CaldareraSpainStephen Shaw QUALIFIED
Jefferson Q FigeroaRussiaBernardo Dominic UNQUALIFIED
Aditya H StockhamArgentinaStephen Shaw PROPOSAL
Ivar O WhobreyCanadaAnna Fali UNQUALIFIED
Mayumi B SaylorsSpainAsiya Javayant NEW
Alejandro X VenereRussiaOnyama Limba QUALIFIED
Clifford O RutaIndiaIoni Bowcher PROPOSAL
Jeanfrancois B GillianArgentinaElwin Sharvill QUALIFIED
Misaki K SchemmerUnited KingdomStephen Shaw QUALIFIED
Alejandro N NickaCanadaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Chavez D Rim
Alejandro G Perin
Johnson Q Saylors
Silvio V Bolognia
Tony D Stenseth
Izzy T Nicka
Adams D Caldarera
Leja P Ferencz
Jennifer K Chui
Mayumi H Ferencz
Leja K Bolognia
Jeanfrancois H Stockham
Ashley E Bowley
Rodrigues W Stenseth
Juan Q Ruta
Cody O Caudy
Ivar D Inouye
Claire F Nicka
Izzy O Stockham
Silvio U Glick
Francesco X Poquette
Salvatore G Oldroyd
Kadeem N Poquette
Juan G Kusko
Aika G Stenseth
Johnson Q Marrier
Aditya T Iturbide
Octavia O Butt
Morrow M Figeroa
Emily B Briddick
Jeanfrancois I Whobrey
Murillo B Inouye
Leon V Saylors
Adams C Flosi
Munro Y Waycott
Greenwood W Venere
Mayumi E Chui
Sinclair U Albares
Adams W Caudy
Ashley K Stenseth
Sinclair C Sergi
Stacey K Iturbide
Murillo H Stockham
Jeanfrancois E Iturbide
Misaki N Nicka
Jefferson W Dilliard
Silvio Y Waycott
Aika S Ruta
Julie A Morasca
Deepesh S Amigon
IdCountryDate
1000Australia2024-03-12
1001France2024-03-24
1002Italy2024-03-13
1003Germany2024-03-23
1004Germany2024-03-04
1005Japan2024-03-07
1006Russia2024-02-27
1007Spain2024-03-04
1008Canada2024-03-24
1009Germany2024-03-02
1010Japan2024-03-24
1011Argentina2024-03-05
1012India2024-02-29
1013India2024-03-21
1014Russia2024-03-14
1015India2024-03-03
1016Brazil2024-03-24
1017Brazil2024-03-14
1018Brazil2024-03-13
1019Argentina2024-03-11
1020Australia2024-03-12
1021Canada2024-03-21
1022Russia2024-03-24
1023United Kingdom2024-03-05
1024France2024-03-12
1025Germany2024-03-13
1026United Kingdom2024-02-29
1027France2024-02-27
1028Italy2024-03-15
1029Germany2024-03-22
1030Italy2024-03-20
1031Brazil2024-03-19
1032Brazil2024-03-17
1033Spain2024-03-11
1034Spain2024-02-27
1035Russia2024-03-07
1036Canada2024-03-06
1037United Kingdom2024-03-24
1038Canada2024-03-11
1039Italy2024-03-23
1040Brazil2024-03-15
1041Italy2024-03-16
1042France2024-03-27
1043France2024-03-18
1044Japan2024-03-01
1045France2024-03-12
1046Brazil2024-03-16
1047Spain2024-03-15
1048Japan2024-03-10
1049India2024-02-28

On-Demand Data

NameIdCountryDate
Deepesh C Inouye1000Argentina2024-03-05
Francesco G Marrier1001Japan2024-03-14
Silvio Y Marrier1002Australia2024-02-29
Munro I Darakjy1003Italy2024-03-08
Greenwood P Caldarera1004Japan2024-03-19
Tony Y Tollner1005Spain2024-03-12
Jeanfrancois Y Nestle1006Argentina2024-03-04
Kaitlin Y Malet1007Brazil2024-03-20
Cody G Bolognia1008India2024-03-16
Murillo D Ferencz1009Italy2024-03-09
Julie F Stockham1010Russia2024-02-27
Leja L Glick1011Argentina2024-03-15
Tony L Ostrosky1012Russia2024-02-29
Jeanfrancois G Bolognia1013United Kingdom2024-03-04
Juan W Glick1014Japan2024-03-26
Francesco Q Marrier1015Russia2024-03-21
Jefferson J Chui1016Australia2024-03-17
Stacey A Butt1017Italy2024-03-13
Jones L Stockham1018Spain2024-03-25
Morrow Z Chui1019France2024-03-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo X NestleSpainIoni Bowcher NEW
Greenwood C WieserUnited KingdomXuxue Feng NEGOTIATION
Smith C ButtSpainOnyama Limba UNQUALIFIED
Morrow D BologniaAustraliaStephen Shaw NEW
Morrow Z StockhamJapanAsiya Javayant UNQUALIFIED
Octavia K CampainAustraliaOnyama Limba PROPOSAL
Deepesh Q DarakjySpainIvan Magalhaes NEGOTIATION
Mayumi C RoysterArgentinaAnna Fali NEGOTIATION
Deepesh D SchemmerIndiaAmy Elsner NEGOTIATION
Jones A DarakjyUnited KingdomAnna Fali UNQUALIFIED
David V OldroydAustraliaIvan Magalhaes NEGOTIATION
Darci H DarakjyCanadaIvan Magalhaes QUALIFIED
Mayumi T NestleUnited KingdomStephen Shaw NEW
Wickens M FigeroaSpainXuxue Feng NEGOTIATION
Stacey C CaldareraIndiaAmy Elsner RENEWAL
David S IturbideUnited KingdomStephen Shaw NEGOTIATION
Adams G StensethUnited KingdomIoni Bowcher QUALIFIED
Francesco T DoeIndiaStephen Shaw PROPOSAL
Arvin C InouyeBrazilAmy Elsner UNQUALIFIED
Ivar I WaycottBrazilXuxue Feng NEGOTIATION
Isabel T FigeroaItalyAmy Elsner QUALIFIED
Aruna T RimRussiaStephen Shaw NEW
Mujtaba N PaprockiUnited KingdomAsiya Javayant NEGOTIATION
Claire C AlbaresSpainElwin Sharvill UNQUALIFIED
Ricardo T FerenczFranceAsiya Javayant QUALIFIED
Octavia F StockhamItalyAnna Fali PROPOSAL
Leon G RutaAustraliaIvan Magalhaes PROPOSAL
Jeanfrancois Y RulapaughSpainBernardo Dominic PROPOSAL
Costa T GarufiUnited KingdomOnyama Limba QUALIFIED
Johnson J BowleyAustraliaOnyama Limba RENEWAL
Johnson X OstroskySpainElwin Sharvill NEGOTIATION
Stacey P RimRussiaXuxue Feng QUALIFIED
Isabel O DilliardUnited KingdomElwin Sharvill QUALIFIED
Leon H NickaFranceStephen Shaw QUALIFIED
Deepesh L InouyeJapanIvan Magalhaes NEGOTIATION
Maisha X PerinRussiaIvan Magalhaes NEGOTIATION
Nicolas D KolmetzCanadaStephen Shaw NEGOTIATION
Cody R KolmetzAustraliaIoni Bowcher RENEWAL
Sinclair H RutaGermanyStephen Shaw NEW
Juan K BologniaFranceStephen Shaw RENEWAL

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