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
Jeanfrancois W SlusarskiItalyXuxue Feng NEGOTIATION
Antonio Q IturbideUnited KingdomStephen Shaw QUALIFIED
Salvatore L AlbaresAustraliaAsiya Javayant UNQUALIFIED
Juan L RulapaughBrazilStephen Shaw UNQUALIFIED
Francesco T FollerArgentinaBernardo Dominic RENEWAL
Francesco R ShinkoCanadaIvan Magalhaes NEW
Ivar I ShinkoFranceAnna Fali NEGOTIATION
James N KuskoAustraliaBernardo Dominic UNQUALIFIED
Cody I RimFranceOnyama Limba QUALIFIED
Kaitlin P MorascaItalyXuxue Feng NEW
Tony H GillianGermanyAmy Elsner UNQUALIFIED
Mayumi N VocelkaJapanAsiya Javayant PROPOSAL
Ricardo T SchemmerBrazilIoni Bowcher NEW
James I DilliardItalyAnna Fali RENEWAL
Aditya V KolmetzUnited KingdomXuxue Feng PROPOSAL
Emily U GarufiJapanAsiya Javayant NEW
David O FollerUnited KingdomAnna Fali NEW
Maisha L PerinGermanyBernardo Dominic PROPOSAL
Silvio W VenereUnited KingdomElwin Sharvill UNQUALIFIED
Ricardo X OstroskyItalyBernardo Dominic RENEWAL
Tony O SaylorsCanadaBernardo Dominic QUALIFIED
Rodrigues T IturbideBrazilBernardo Dominic RENEWAL
Jefferson O FlosiCanadaStephen Shaw PROPOSAL
Ricardo Z VocelkaIndiaOnyama Limba UNQUALIFIED
Emily F RulapaughRussiaIvan Magalhaes RENEWAL
Nicolas M KolmetzGermanyAmy Elsner NEW
Aika I VocelkaUnited KingdomAnna Fali NEGOTIATION
Francesco H StockhamSpainAnna Fali UNQUALIFIED
Silvio L KuskoCanadaStephen Shaw RENEWAL
Jennifer H WhobreyItalyAsiya Javayant UNQUALIFIED
Ashley L GauchoJapanAsiya Javayant RENEWAL
Tony V MaletRussiaElwin Sharvill PROPOSAL
Octavia U FollerBrazilStephen Shaw RENEWAL
Isabel M GillianSpainIoni Bowcher PROPOSAL
Deepesh M RulapaughAustraliaXuxue Feng RENEWAL
Kadeem P FollerFranceAmy Elsner PROPOSAL
Kaitlin M GauchoSpainIvan Magalhaes NEW
Jefferson I ButtCanadaAnna Fali NEW
Munro D SaylorsCanadaBernardo Dominic NEGOTIATION
Salvatore F IturbideItalyOnyama Limba QUALIFIED
David E ShinkoArgentinaAnna Fali NEW
Isabel L WaycottFranceAmy Elsner NEW
Misaki I CampainBrazilElwin Sharvill PROPOSAL
Smith I ButtUnited KingdomElwin Sharvill UNQUALIFIED
Misaki U GlickIndiaAmy Elsner PROPOSAL
Silvio O CaldareraUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues C CampainSpainStephen Shaw RENEWAL
Rodrigues S GarufiGermanyBernardo Dominic PROPOSAL
Maisha T RulapaughSpainIoni Bowcher UNQUALIFIED
Sinclair X FlosiUnited KingdomAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Aditya Z WhobreyBrazilAmy Elsner NEW
Costa N DarakjyUnited KingdomXuxue Feng PROPOSAL
Mujtaba O StensethCanadaBernardo Dominic QUALIFIED
Octavia H SergiGermanyIoni Bowcher NEW
Kaitlin Z VenereRussiaXuxue Feng RENEWAL
Maisha Q RutaArgentinaIvan Magalhaes RENEWAL
Misaki R BologniaSpainOnyama Limba NEW
Wickens M NickaRussiaElwin Sharvill RENEWAL
Izzy E FollerRussiaOnyama Limba NEW
Morrow V NickaCanadaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin Q TollnerAustralia2024-04-04Commercial Press NEW29Asiya Javayant
1001Kadeem G BologniaSpain2024-03-30Dorl, James J Esq NEGOTIATION18Ivan Magalhaes
1002Mujtaba M WieserItaly2024-04-13Commercial Press QUALIFIED17Amy Elsner
1003Leja T FerenczIndia2024-04-18King, Christopher A Esq PROPOSAL61Asiya Javayant
1004Chavez U InouyeArgentina2024-04-17Dorl, James J Esq RENEWAL34Bernardo Dominic
1005Alejandro M RimItaly2024-04-11Dorl, James J Esq QUALIFIED75Ioni Bowcher
1006Johnson H WieserItaly2024-04-21Morlong Associates PROPOSAL54Elwin Sharvill
1007Maisha P SaylorsArgentina2024-03-30Feiner Bros UNQUALIFIED24Anna Fali
1008Salvatore S StensethGermany2024-04-20Chanay, Jeffrey A Esq QUALIFIED70Elwin Sharvill
1009Aika O PaprockiAustralia2024-04-20Chapman, Ross E Esq NEW87Stephen Shaw
1010Maisha W DarakjyUnited Kingdom2024-04-01Chemel, James L Cpa PROPOSAL79Asiya Javayant
1011Sinclair Q RutaAustralia2024-04-08Truhlar And Truhlar Attys QUALIFIED80Anna Fali
1012Izzy B ShinkoArgentina2024-04-15Morlong Associates RENEWAL87Stephen Shaw
1013Misaki U OstroskyCanada2024-04-08Buckley Miller Wright NEGOTIATION38Ioni Bowcher
1014Sinclair C SlusarskiCanada2024-04-12Dorl, James J Esq QUALIFIED70Stephen Shaw
1015Maria S NickaIndia2024-04-18Rousseaux, Michael Esq QUALIFIED92Bernardo Dominic
1016Sinclair Z ChuiBrazil2024-04-21Feiner Bros UNQUALIFIED39Anna Fali
1017Faith V BologniaRussia2024-04-08Rangoni Of Florence NEW48Stephen Shaw
1018Tony Z DilliardArgentina2024-03-28King, Christopher A Esq QUALIFIED72Ivan Magalhaes
1019Leon E FollerRussia2024-04-10Commercial Press PROPOSAL85Elwin Sharvill
1020Salvatore I BowleyUnited Kingdom2024-03-28Chemel, James L Cpa UNQUALIFIED93Stephen Shaw
1021Leon H ShinkoArgentina2024-03-28Buckley Miller Wright PROPOSAL30Asiya Javayant
1022Juan D RoysterBrazil2024-04-22Printing Dimensions PROPOSAL64Ioni Bowcher
1023Stacey Y CaudyAustralia2024-04-19Commercial Press QUALIFIED46Ioni Bowcher
1024Wickens E MarrierBrazil2024-04-18Chemel, James L Cpa QUALIFIED98Elwin Sharvill
1025Wickens N RimSpain2024-04-12Morlong Associates RENEWAL98Asiya Javayant
1026Jones I StockhamGermany2024-04-09Rangoni Of Florence RENEWAL39Stephen Shaw
1027Mujtaba O ButtGermany2024-04-17King, Christopher A Esq UNQUALIFIED69Onyama Limba
1028Ashley V MacleadRussia2024-04-03Dorl, James J Esq NEGOTIATION52Ivan Magalhaes
1029Julie H RimFrance2024-04-03Feiner Bros NEW99Stephen Shaw
1030Leja F CampainItaly2024-04-08Feiner Bros NEGOTIATION81Bernardo Dominic
1031Julie E AlbaresBrazil2024-03-30Chanay, Jeffrey A Esq QUALIFIED30Onyama Limba
1032Darci P TollnerAustralia2024-04-21Morlong Associates PROPOSAL44Ioni Bowcher
1033Julie Q WaycottUnited Kingdom2024-04-18Feltz Printing Service PROPOSAL21Anna Fali
1034Ivar F WhobreyItaly2024-04-02Feltz Printing Service PROPOSAL23Xuxue Feng
1035Cody V RoysterArgentina2024-04-21Rangoni Of Florence RENEWAL30Xuxue Feng
1036Nicolas M WaycottCanada2024-04-22Rousseaux, Michael Esq NEW93Amy Elsner
1037Emily M MorascaFrance2024-03-28Morlong Associates RENEWAL64Elwin Sharvill
1038Sinclair U AlbaresFrance2024-04-22Benton, John B Jr NEGOTIATION30Bernardo Dominic
1039Jefferson I GarufiIndia2024-04-26Feiner Bros RENEWAL65Stephen Shaw
1040Greenwood N SlusarskiUnited Kingdom2024-04-26Buckley Miller Wright PROPOSAL51Anna Fali
1041Juan V SlusarskiSpain2024-04-19King, Christopher A Esq QUALIFIED30Onyama Limba
1042Chavez S MorascaJapan2024-04-16King, Christopher A Esq NEW14Elwin Sharvill
1043Leja A ShinkoArgentina2024-04-24Benton, John B Jr QUALIFIED3Ivan Magalhaes
1044Maisha S BowleyIndia2024-03-30King, Christopher A Esq UNQUALIFIED8Asiya Javayant
1045David B KolmetzSpain2024-04-21Rangoni Of Florence UNQUALIFIED36Anna Fali
1046Ivar L MarrierGermany2024-04-26Chapman, Ross E Esq QUALIFIED26Xuxue Feng
1047Octavia S WieserIndia2024-04-03Printing Dimensions NEGOTIATION89Stephen Shaw
1048Aruna O OstroskyRussia2024-04-10Rangoni Of Florence QUALIFIED53Asiya Javayant
1049Leon D CampainRussia2024-04-11Commercial Press PROPOSAL20Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Darci F CaldareraFranceElwin Sharvill NEGOTIATION
Aika A SlusarskiUnited KingdomElwin Sharvill NEW
Julie N GarufiBrazilStephen Shaw NEW
Misaki Q WieserBrazilIoni Bowcher RENEWAL
Greenwood S MorascaAustraliaStephen Shaw NEGOTIATION
Leja O VenereCanadaIvan Magalhaes UNQUALIFIED
Emily O RutaFranceAsiya Javayant NEW
Juan E FigeroaGermanyIvan Magalhaes NEGOTIATION
Aditya D OldroydUnited KingdomAsiya Javayant QUALIFIED
Faith I TollnerArgentinaStephen Shaw NEW
Octavia D MacleadAustraliaIvan Magalhaes RENEWAL
Salvatore R DarakjySpainIvan Magalhaes NEW
Jeanfrancois L CampainBrazilAmy Elsner UNQUALIFIED
Kadeem N CaldareraItalyXuxue Feng NEGOTIATION
Maisha B RoysterSpainIoni Bowcher QUALIFIED
Mayumi N ChuiCanadaStephen Shaw NEW
Adams A BologniaBrazilElwin Sharvill QUALIFIED
Aditya R CaudyRussiaIoni Bowcher PROPOSAL
Leon Y VocelkaUnited KingdomOnyama Limba UNQUALIFIED
Greenwood X AmigonFranceAmy Elsner NEW
Johnson N IturbideItalyStephen Shaw NEW
Julie V RulapaughIndiaAnna Fali UNQUALIFIED
Kaitlin M CaudyItalyAsiya Javayant NEGOTIATION
Claire O ChuiCanadaIvan Magalhaes UNQUALIFIED
Munro D KuskoFranceAsiya Javayant NEGOTIATION
Jefferson V GillianItalyElwin Sharvill UNQUALIFIED
Jones K PaprockiAustraliaIvan Magalhaes NEW
Aika G BologniaJapanAnna Fali QUALIFIED
Ivar A SergiCanadaElwin Sharvill QUALIFIED
Leon B DoeAustraliaIoni Bowcher PROPOSAL
Wickens P KolmetzAustraliaAnna Fali PROPOSAL
Faith R NickaIndiaAsiya Javayant QUALIFIED
Julie X MacleadSpainIvan Magalhaes UNQUALIFIED
Clifford X OstroskySpainXuxue Feng UNQUALIFIED
Ricardo K FigeroaBrazilAnna Fali NEGOTIATION
Ivar W BriddickBrazilOnyama Limba NEGOTIATION
Jennifer Q SchemmerBrazilIoni Bowcher NEW
Aruna H DoeJapanXuxue Feng RENEWAL
Claire K SergiJapanStephen Shaw NEGOTIATION
Ricardo R MaletRussiaOnyama Limba PROPOSAL
Aika R DilliardAustraliaElwin Sharvill QUALIFIED
Octavia J ChuiArgentinaXuxue Feng PROPOSAL
Ivar Y FigeroaUnited KingdomOnyama Limba NEW
James O StockhamFranceIoni Bowcher NEGOTIATION
Deepesh S CaldareraGermanyBernardo Dominic PROPOSAL
Munro S MorascaArgentinaElwin Sharvill NEW
Claire O FerenczRussiaElwin Sharvill PROPOSAL
Clifford C GauchoUnited KingdomStephen Shaw QUALIFIED
Jones R BowleyBrazilBernardo Dominic QUALIFIED
Aruna S SchemmerJapanBernardo Dominic PROPOSAL
Frozen Columns
Name
Izzy C Garufi
Isabel D Glick
Greenwood H Royster
James X Butt
Maisha L Rulapaugh
Ricardo L Amigon
Claire J Perin
David J Caldarera
Rodrigues A Campain
Adams C Kusko
David Q Schemmer
Jefferson K Gillian
Salvatore J Stenseth
Jones D Shinko
Costa Z Doe
Cody K Chui
James Q Butt
Antonio O Kolmetz
Maria Z Vocelka
Smith L Ferencz
Smith X Shinko
Maisha S Gaucho
Juan X Paprocki
Francesco Y Malet
Chavez T Kusko
Antonio O Rim
Aika G Bolognia
Arvin Y Venere
Faith P Nestle
Aditya J Flosi
Jefferson X Inouye
Faith H Chui
Octavia B Chui
Ashley K Ruta
Wickens C Venere
Clifford O Briddick
Alejandro Y Caldarera
Aditya V Perin
Jeanfrancois F Marrier
Kaitlin N Gillian
Ashley N Figeroa
Morrow R Dilliard
Rodrigues E Ostrosky
Salvatore O Flosi
Isabel X Ruta
Ashley M Schemmer
Deepesh G Caudy
Rodrigues Y Briddick
Cody O Rim
Mujtaba V Whobrey
IdCountryDate
1000India2024-04-20
1001France2024-04-15
1002Australia2024-04-11
1003Italy2024-04-09
1004Australia2024-04-18
1005Italy2024-04-04
1006India2024-03-31
1007Russia2024-04-09
1008Russia2024-04-24
1009United Kingdom2024-04-12
1010India2024-03-30
1011Germany2024-04-12
1012France2024-04-14
1013Argentina2024-04-26
1014Italy2024-03-31
1015France2024-04-18
1016Canada2024-04-11
1017Italy2024-04-05
1018Argentina2024-04-20
1019Canada2024-04-16
1020India2024-04-26
1021Germany2024-03-28
1022Germany2024-03-31
1023Germany2024-04-16
1024Argentina2024-04-24
1025Canada2024-03-31
1026Germany2024-04-21
1027Argentina2024-04-15
1028Germany2024-04-14
1029United Kingdom2024-04-14
1030Japan2024-04-20
1031Italy2024-04-22
1032France2024-04-21
1033Russia2024-04-07
1034Italy2024-04-08
1035Brazil2024-04-03
1036France2024-04-15
1037Canada2024-04-13
1038Brazil2024-04-04
1039Australia2024-04-07
1040Italy2024-04-06
1041India2024-04-11
1042Canada2024-04-06
1043Japan2024-04-10
1044Spain2024-03-31
1045France2024-04-03
1046Spain2024-04-18
1047Canada2024-04-09
1048United Kingdom2024-04-15
1049Italy2024-04-05

On-Demand Data

NameIdCountryDate
Silvio Z Foller1000Argentina2024-04-07
Misaki K Sergi1001Japan2024-04-11
Munro I Doe1002Argentina2024-04-23
Ashley P Nicka1003France2024-04-06
Maisha B Figeroa1004Canada2024-04-14
Tony L Nicka1005Australia2024-03-31
Izzy P Tollner1006Russia2024-04-22
Cody T Butt1007Germany2024-04-04
Emily Z Briddick1008France2024-04-18
Adams Y Nicka1009India2024-04-17
Julie L Kusko1010Australia2024-04-21
Julie M Royster1011France2024-04-07
Octavia D Saylors1012United Kingdom2024-04-13
Munro P Caldarera1013Germany2024-04-13
Aditya D Albares1014United Kingdom2024-03-31
Morrow H Caudy1015United Kingdom2024-04-10
Clifford D Maclead1016Spain2024-04-06
Munro X Malet1017Australia2024-04-16
Jefferson T Rim1018Russia2024-04-08
Rodrigues O Venere1019United Kingdom2024-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas U OstroskyCanadaXuxue Feng RENEWAL
Maisha S DarakjyCanadaIoni Bowcher RENEWAL
Silvio R PoquetteFranceElwin Sharvill QUALIFIED
Ivar C RoysterJapanXuxue Feng NEW
Mayumi O VocelkaBrazilIoni Bowcher UNQUALIFIED
Izzy B NickaRussiaXuxue Feng RENEWAL
Silvio K MaletJapanBernardo Dominic UNQUALIFIED
Murillo F KolmetzAustraliaAmy Elsner NEGOTIATION
Francesco I KuskoAustraliaIoni Bowcher NEGOTIATION
Izzy D ChuiArgentinaAsiya Javayant PROPOSAL
Arvin Q MaletUnited KingdomIoni Bowcher NEW
Tony V IturbideJapanIoni Bowcher NEW
Francesco V MarrierCanadaAsiya Javayant NEGOTIATION
Wickens H StensethItalyElwin Sharvill NEW
Ashley Y GillianCanadaAmy Elsner UNQUALIFIED
Jefferson L PerinAustraliaAmy Elsner QUALIFIED
Aika E SchemmerAustraliaXuxue Feng RENEWAL
Mayumi P GarufiRussiaOnyama Limba NEGOTIATION
Rodrigues P NickaRussiaXuxue Feng UNQUALIFIED
Mayumi A SaylorsFranceAsiya Javayant NEGOTIATION
Morrow P WaycottAustraliaIoni Bowcher QUALIFIED
Antonio E WaycottIndiaAsiya Javayant NEW
Claire A SlusarskiBrazilIoni Bowcher NEW
Misaki Y VocelkaJapanAmy Elsner QUALIFIED
Jones U MaletJapanOnyama Limba NEW
Nicolas R VenereRussiaAsiya Javayant NEGOTIATION
Kaitlin T AlbaresSpainAsiya Javayant PROPOSAL
Julie L RimItalyElwin Sharvill NEW
Jefferson D DilliardArgentinaXuxue Feng UNQUALIFIED
Maria H FlosiItalyOnyama Limba PROPOSAL
Ivar K GauchoJapanBernardo Dominic PROPOSAL
Emily X FlosiAustraliaAmy Elsner UNQUALIFIED
Maisha O VocelkaGermanyAsiya Javayant NEW
Kadeem Y PaprockiIndiaAmy Elsner NEW
Julie S TollnerIndiaBernardo Dominic RENEWAL
Cody G AmigonFranceBernardo Dominic NEW
Stacey H VocelkaIndiaElwin Sharvill UNQUALIFIED
Costa P RimCanadaElwin Sharvill QUALIFIED
Rodrigues D DarakjyUnited KingdomIvan Magalhaes PROPOSAL
Julie A BowleyFranceIoni Bowcher 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>