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
Cody N RutaBrazilXuxue Feng NEGOTIATION
Chavez P FigeroaUnited KingdomIvan Magalhaes QUALIFIED
Deepesh L VenereGermanyIvan Magalhaes UNQUALIFIED
Antonio S WhobreyJapanIvan Magalhaes NEW
Misaki K ShinkoUnited KingdomStephen Shaw NEW
Kaitlin Y KuskoArgentinaOnyama Limba PROPOSAL
Deepesh Q NickaCanadaAsiya Javayant RENEWAL
Aditya T SlusarskiSpainAsiya Javayant UNQUALIFIED
Darci M PerinSpainElwin Sharvill NEGOTIATION
Aruna J TollnerAustraliaStephen Shaw UNQUALIFIED
Aditya C MarrierSpainAsiya Javayant UNQUALIFIED
Mayumi B StensethArgentinaStephen Shaw PROPOSAL
Darci P FerenczFranceAmy Elsner QUALIFIED
Rodrigues W SchemmerUnited KingdomXuxue Feng NEW
Mujtaba J MarrierBrazilAmy Elsner PROPOSAL
Maisha P SchemmerGermanyIvan Magalhaes UNQUALIFIED
Nicolas Z StockhamCanadaXuxue Feng NEGOTIATION
Chavez S SergiCanadaOnyama Limba PROPOSAL
Adams I NickaAustraliaElwin Sharvill NEGOTIATION
Jones E WaycottAustraliaAnna Fali UNQUALIFIED
Antonio C InouyeJapanOnyama Limba UNQUALIFIED
Silvio F FlosiGermanyIoni Bowcher PROPOSAL
Jones K InouyeAustraliaIvan Magalhaes NEGOTIATION
Smith V SergiUnited KingdomAmy Elsner NEGOTIATION
Maria F GlickArgentinaAsiya Javayant NEGOTIATION
Octavia M FollerAustraliaOnyama Limba QUALIFIED
Jeanfrancois G PaprockiItalyXuxue Feng UNQUALIFIED
Munro G FigeroaBrazilOnyama Limba PROPOSAL
Johnson I KuskoGermanyAmy Elsner PROPOSAL
Jennifer T FlosiItalyXuxue Feng UNQUALIFIED
Cody O GarufiFranceBernardo Dominic NEGOTIATION
Faith P DilliardItalyAsiya Javayant NEGOTIATION
Kaitlin W ShinkoArgentinaOnyama Limba NEW
Ivar O SchemmerAustraliaBernardo Dominic NEW
Jeanfrancois N IturbideItalyXuxue Feng RENEWAL
Arvin I DilliardFranceElwin Sharvill RENEWAL
Darci L ShinkoRussiaXuxue Feng PROPOSAL
Darci X AmigonUnited KingdomOnyama Limba PROPOSAL
Clifford B RimRussiaAmy Elsner NEGOTIATION
Darci H VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Alejandro F KolmetzBrazilStephen Shaw UNQUALIFIED
Jefferson G MaletGermanyStephen Shaw PROPOSAL
Kaitlin Y WhobreyBrazilAmy Elsner QUALIFIED
Faith C IturbideAustraliaElwin Sharvill RENEWAL
Rodrigues J CampainSpainBernardo Dominic RENEWAL
Clifford C BriddickBrazilBernardo Dominic PROPOSAL
Salvatore U SaylorsUnited KingdomAnna Fali QUALIFIED
Jefferson Z TollnerJapanStephen Shaw RENEWAL
Arvin M WieserItalyIvan Magalhaes QUALIFIED
Emily U FollerFranceAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Faith P CaudyArgentinaAmy Elsner NEGOTIATION
Aruna C FigeroaArgentinaOnyama Limba NEW
Chavez Z RimJapanIvan Magalhaes RENEWAL
Francesco S IturbideAustraliaIoni Bowcher NEGOTIATION
Nicolas F FlosiUnited KingdomBernardo Dominic RENEWAL
Francesco E IturbideJapanXuxue Feng NEGOTIATION
Smith S StensethUnited KingdomAnna Fali PROPOSAL
Sinclair U FollerAustraliaIoni Bowcher NEGOTIATION
Mujtaba Z GarufiUnited KingdomAsiya Javayant NEW
Munro S PaprockiCanadaXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio O IturbideRussia2024-04-10Rousseaux, Michael Esq RENEWAL9Onyama Limba
1001Silvio V PoquetteArgentina2024-04-07Chemel, James L Cpa NEGOTIATION80Anna Fali
1002Julie W FlosiBrazil2024-04-03Benton, John B Jr UNQUALIFIED49Amy Elsner
1003Murillo D CaldareraGermany2024-04-08Morlong Associates QUALIFIED38Bernardo Dominic
1004Jones Z SaylorsBrazil2024-03-23Feiner Bros QUALIFIED94Anna Fali
1005David G PerinArgentina2024-04-13Feiner Bros RENEWAL68Onyama Limba
1006Silvio Q TollnerItaly2024-03-24Feiner Bros QUALIFIED63Onyama Limba
1007Chavez N RimFrance2024-03-25Benton, John B Jr QUALIFIED4Amy Elsner
1008Adams B TollnerRussia2024-04-01Rangoni Of Florence PROPOSAL61Stephen Shaw
1009Wickens J DoeRussia2024-04-06Feiner Bros QUALIFIED17Ioni Bowcher
1010Arvin U WhobreyGermany2024-03-19Chemel, James L Cpa QUALIFIED5Onyama Limba
1011Nicolas I WhobreyArgentina2024-03-18Commercial Press PROPOSAL7Xuxue Feng
1012Juan B GauchoBrazil2024-04-03Commercial Press NEGOTIATION20Onyama Limba
1013Mayumi U DarakjyAustralia2024-04-14Chemel, James L Cpa RENEWAL13Anna Fali
1014Misaki T GarufiSpain2024-03-19Chemel, James L Cpa PROPOSAL6Bernardo Dominic
1015Octavia L PerinCanada2024-03-24Printing Dimensions PROPOSAL63Xuxue Feng
1016Johnson I SergiRussia2024-04-10Buckley Miller Wright NEGOTIATION63Ivan Magalhaes
1017Costa K FigeroaIndia2024-04-03Rousseaux, Michael Esq QUALIFIED31Ivan Magalhaes
1018Misaki J RoysterIndia2024-04-02King, Christopher A Esq NEW14Elwin Sharvill
1019Silvio V VocelkaCanada2024-03-19Morlong Associates NEGOTIATION45Bernardo Dominic
1020Johnson M DilliardJapan2024-04-10Truhlar And Truhlar Attys NEW90Elwin Sharvill
1021Emily I ChuiArgentina2024-03-21Benton, John B Jr NEW91Ioni Bowcher
1022Ivar S MaletCanada2024-04-08Morlong Associates RENEWAL17Stephen Shaw
1023Darci H RulapaughFrance2024-04-11Rousseaux, Michael Esq NEGOTIATION73Amy Elsner
1024Chavez V GarufiCanada2024-04-12Commercial Press QUALIFIED2Stephen Shaw
1025Mayumi I StensethSpain2024-03-20Commercial Press NEW47Amy Elsner
1026Jones E DoeRussia2024-03-28Rangoni Of Florence QUALIFIED73Elwin Sharvill
1027Tony C WhobreyUnited Kingdom2024-04-09Printing Dimensions RENEWAL73Asiya Javayant
1028Jeanfrancois N MarrierSpain2024-04-08Feiner Bros NEW46Bernardo Dominic
1029Faith F GarufiRussia2024-03-30Feltz Printing Service PROPOSAL38Stephen Shaw
1030David U CaldareraCanada2024-03-29Truhlar And Truhlar Attys UNQUALIFIED50Asiya Javayant
1031Silvio C KuskoFrance2024-04-09King, Christopher A Esq PROPOSAL38Ivan Magalhaes
1032Darci H RutaItaly2024-03-26King, Christopher A Esq NEW63Onyama Limba
1033Costa C NestleSpain2024-04-10Printing Dimensions UNQUALIFIED87Bernardo Dominic
1034Izzy C DilliardIndia2024-04-04Chapman, Ross E Esq QUALIFIED38Asiya Javayant
1035Ivar B GillianUnited Kingdom2024-03-30Rangoni Of Florence QUALIFIED11Stephen Shaw
1036Isabel S StockhamItaly2024-03-23King, Christopher A Esq NEW1Ioni Bowcher
1037Johnson R PerinGermany2024-04-12Printing Dimensions RENEWAL4Amy Elsner
1038Jeanfrancois P ChuiAustralia2024-04-12Feltz Printing Service RENEWAL46Onyama Limba
1039Murillo J AmigonBrazil2024-03-29Feltz Printing Service UNQUALIFIED84Ioni Bowcher
1040Leon U FollerArgentina2024-03-20Rangoni Of Florence RENEWAL99Ioni Bowcher
1041Salvatore Y DarakjyAustralia2024-03-27Chanay, Jeffrey A Esq PROPOSAL39Stephen Shaw
1042Ricardo U OldroydFrance2024-03-28Dorl, James J Esq NEGOTIATION11Bernardo Dominic
1043Juan P PerinBrazil2024-04-07Buckley Miller Wright QUALIFIED13Amy Elsner
1044Isabel T PerinBrazil2024-04-14Chemel, James L Cpa RENEWAL71Xuxue Feng
1045Murillo Q OstroskyIndia2024-04-08Morlong Associates NEW59Bernardo Dominic
1046Silvio J PerinIndia2024-03-31King, Christopher A Esq NEW30Bernardo Dominic
1047Chavez D IturbideCanada2024-03-24Chemel, James L Cpa NEW2Elwin Sharvill
1048Ivar R DoeJapan2024-03-22Chemel, James L Cpa QUALIFIED33Anna Fali
1049Smith K RoysterRussia2024-04-02Morlong Associates UNQUALIFIED0Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aditya K BowleyFranceElwin Sharvill PROPOSAL
Tony E FigeroaGermanyElwin Sharvill PROPOSAL
Maisha R WaycottItalyElwin Sharvill NEGOTIATION
Emily C BowleyRussiaElwin Sharvill QUALIFIED
Arvin T GarufiItalyElwin Sharvill RENEWAL
Antonio P IturbideJapanAmy Elsner NEW
Jones E WaycottCanadaBernardo Dominic RENEWAL
Aruna C GarufiCanadaBernardo Dominic UNQUALIFIED
Emily E BriddickFranceIoni Bowcher PROPOSAL
David E IturbideArgentinaAnna Fali NEW
Kaitlin W KolmetzBrazilStephen Shaw NEGOTIATION
Ricardo Q WieserCanadaXuxue Feng PROPOSAL
Antonio Q PerinArgentinaAsiya Javayant UNQUALIFIED
Maria H ChuiJapanBernardo Dominic NEW
Greenwood M ChuiGermanyOnyama Limba PROPOSAL
Aika X IturbideUnited KingdomIvan Magalhaes NEGOTIATION
Izzy F MorascaFranceOnyama Limba UNQUALIFIED
Stacey Q FigeroaGermanyAsiya Javayant UNQUALIFIED
Costa W GillianFranceStephen Shaw RENEWAL
James Y BowleyAustraliaBernardo Dominic UNQUALIFIED
Leon X RimIndiaOnyama Limba UNQUALIFIED
Alejandro R BriddickItalyXuxue Feng PROPOSAL
Silvio T MaletGermanyIvan Magalhaes NEGOTIATION
Deepesh K FerenczIndiaAsiya Javayant NEW
Smith X ButtBrazilXuxue Feng QUALIFIED
Emily M OldroydItalyIvan Magalhaes PROPOSAL
Morrow C DoeSpainBernardo Dominic QUALIFIED
Ricardo I RimArgentinaBernardo Dominic UNQUALIFIED
Salvatore V WieserRussiaAsiya Javayant QUALIFIED
Nicolas O AlbaresGermanyAnna Fali NEW
Emily A DoeAustraliaBernardo Dominic UNQUALIFIED
Rodrigues I GarufiBrazilStephen Shaw NEW
Izzy G SlusarskiBrazilOnyama Limba PROPOSAL
Murillo D DarakjyGermanyAsiya Javayant NEGOTIATION
Darci L StockhamSpainAmy Elsner NEW
Mayumi G TollnerAustraliaAnna Fali QUALIFIED
Munro E PoquetteRussiaBernardo Dominic PROPOSAL
Aika W InouyeGermanyElwin Sharvill PROPOSAL
Maisha N CampainRussiaElwin Sharvill NEGOTIATION
Ricardo D WaycottFranceElwin Sharvill NEGOTIATION
Maisha B FollerArgentinaAsiya Javayant QUALIFIED
Alejandro Y SlusarskiUnited KingdomIvan Magalhaes UNQUALIFIED
Aditya M NestleJapanAmy Elsner QUALIFIED
Johnson D NickaGermanyXuxue Feng PROPOSAL
Antonio Z RimUnited KingdomStephen Shaw QUALIFIED
Maisha L MorascaJapanIvan Magalhaes NEW
Jeanfrancois Q PerinFranceXuxue Feng UNQUALIFIED
Aika M NestleJapanAmy Elsner RENEWAL
Maria Y SchemmerAustraliaAmy Elsner PROPOSAL
Julie F RoysterSpainBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Faith V Glick
Jones G Royster
Deepesh G Caudy
Aruna C Ruta
Ivar X Flosi
Cody X Gillian
Salvatore B Ruta
Silvio O Tollner
Emily Y Malet
Smith I Venere
David K Albares
Munro H Darakjy
Stacey U Ostrosky
Mayumi Q Malet
Silvio S Gillian
Ivar F Caldarera
Emily W Schemmer
Kaitlin U Nicka
Kaitlin K Albares
Emily M Stockham
Salvatore K Slusarski
Morrow S Paprocki
Greenwood B Maclead
Smith J Foller
Francesco L Campain
Cody F Campain
Jennifer A Rim
Isabel X Oldroyd
Morrow T Foller
Salvatore N Dilliard
Izzy V Garufi
Wickens V Sergi
Sinclair B Sergi
Johnson T Caldarera
Octavia N Slusarski
Costa C Shinko
Smith D Caudy
Antonio O Glick
Isabel N Tollner
Tony O Darakjy
Ricardo U Chui
Tony H Schemmer
Kadeem M Bowley
Kaitlin M Figeroa
Aika J Glick
Mayumi S Butt
Julie X Marrier
Isabel G Ostrosky
Stacey Q Dilliard
Alejandro L Stenseth
IdCountryDate
1000Russia2024-04-01
1001Canada2024-04-06
1002Canada2024-04-06
1003Spain2024-03-27
1004Russia2024-04-11
1005United Kingdom2024-04-15
1006Australia2024-04-03
1007Spain2024-04-15
1008Brazil2024-03-19
1009United Kingdom2024-04-09
1010Spain2024-04-15
1011Australia2024-04-15
1012Australia2024-04-14
1013Japan2024-03-17
1014Japan2024-04-10
1015Germany2024-03-20
1016Germany2024-03-31
1017Canada2024-03-28
1018Russia2024-04-05
1019Germany2024-03-31
1020India2024-03-28
1021Germany2024-04-07
1022Japan2024-03-26
1023Spain2024-03-31
1024Germany2024-04-10
1025Argentina2024-04-06
1026Canada2024-03-29
1027France2024-03-24
1028Australia2024-04-10
1029France2024-04-04
1030Germany2024-03-31
1031Brazil2024-03-23
1032India2024-04-01
1033Italy2024-03-27
1034Brazil2024-03-20
1035Argentina2024-03-17
1036Italy2024-03-21
1037United Kingdom2024-04-01
1038Brazil2024-03-23
1039India2024-04-14
1040Spain2024-04-09
1041Argentina2024-04-11
1042Italy2024-03-26
1043Argentina2024-04-09
1044Spain2024-04-10
1045United Kingdom2024-03-27
1046Canada2024-03-29
1047Germany2024-03-27
1048France2024-04-15
1049Canada2024-04-01

On-Demand Data

NameIdCountryDate
Leon N Saylors1000Argentina2024-04-06
Cody O Nicka1001Germany2024-03-22
Costa M Rulapaugh1002Spain2024-04-10
Sinclair X Albares1003Argentina2024-04-06
Arvin T Bowley1004Germany2024-04-11
James U Chui1005Brazil2024-03-28
Morrow I Ostrosky1006Germany2024-04-09
Ashley T Sergi1007United Kingdom2024-04-01
Jefferson Q Garufi1008Australia2024-03-31
David K Whobrey1009Japan2024-03-28
Ivar X Maclead1010Japan2024-03-26
Maria C Stockham1011India2024-04-10
Aika L Sergi1012United Kingdom2024-04-02
Misaki I Gaucho1013Russia2024-04-09
Stacey A Inouye1014India2024-04-08
Mayumi O Glick1015Japan2024-04-09
Stacey V Sergi1016India2024-04-06
Nicolas M Butt1017Argentina2024-04-15
Ricardo A Darakjy1018Spain2024-03-31
Wickens X Ferencz1019Argentina2024-03-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey W DoeCanadaAnna Fali QUALIFIED
Greenwood M VenereBrazilXuxue Feng NEW
Isabel V SlusarskiGermanyAnna Fali PROPOSAL
Silvio J MacleadGermanyAmy Elsner RENEWAL
Jeanfrancois O NickaUnited KingdomAsiya Javayant RENEWAL
Cody G PoquetteAustraliaElwin Sharvill PROPOSAL
Emily E SlusarskiArgentinaAnna Fali QUALIFIED
Arvin O BriddickRussiaOnyama Limba NEGOTIATION
Aditya E StockhamIndiaBernardo Dominic UNQUALIFIED
Mayumi Y MorascaIndiaXuxue Feng PROPOSAL
Silvio D StockhamSpainBernardo Dominic NEGOTIATION
Emily A VenereIndiaAmy Elsner QUALIFIED
Isabel I BriddickFranceAnna Fali NEW
Rodrigues T WhobreyGermanyElwin Sharvill NEW
Darci S StensethItalyAnna Fali QUALIFIED
Cody O GlickGermanyBernardo Dominic NEGOTIATION
Jefferson W CampainGermanyStephen Shaw UNQUALIFIED
Greenwood M GarufiItalyElwin Sharvill PROPOSAL
Aruna C OstroskyBrazilStephen Shaw NEW
Francesco E DoeAustraliaXuxue Feng RENEWAL
Kaitlin V BologniaFranceBernardo Dominic NEGOTIATION
Deepesh F MorascaJapanBernardo Dominic NEW
Juan E WieserUnited KingdomAmy Elsner NEGOTIATION
Jeanfrancois B BowleyJapanIvan Magalhaes NEW
Maria C DarakjyItalyIoni Bowcher NEGOTIATION
Clifford P SergiSpainXuxue Feng PROPOSAL
Wickens K GauchoArgentinaBernardo Dominic PROPOSAL
Cody U WhobreyAustraliaAnna Fali QUALIFIED
Jones U DilliardArgentinaOnyama Limba QUALIFIED
Tony I KolmetzIndiaIvan Magalhaes RENEWAL
Murillo Z PaprockiAustraliaBernardo Dominic NEGOTIATION
Ricardo P MarrierFranceIvan Magalhaes RENEWAL
Jeanfrancois M RulapaughSpainIvan Magalhaes NEW
Johnson G KolmetzUnited KingdomOnyama Limba NEW
Isabel B AmigonSpainAsiya Javayant RENEWAL
Francesco R FollerCanadaElwin Sharvill QUALIFIED
Cody K PaprockiSpainAmy Elsner RENEWAL
Jones E KolmetzJapanBernardo Dominic QUALIFIED
Clifford O CaudySpainElwin Sharvill UNQUALIFIED
Sinclair M GarufiIndiaXuxue Feng 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>