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
Ricardo U BriddickCanadaAnna Fali PROPOSAL
Aruna F FollerUnited KingdomStephen Shaw UNQUALIFIED
Mayumi E CampainSpainXuxue Feng QUALIFIED
Faith C RulapaughSpainIvan Magalhaes RENEWAL
Jones E BriddickGermanyIoni Bowcher QUALIFIED
Salvatore J DoeFranceIvan Magalhaes RENEWAL
Sinclair J SchemmerBrazilAnna Fali NEGOTIATION
Costa Z DarakjyJapanAnna Fali NEW
Faith F GauchoFranceBernardo Dominic NEGOTIATION
Salvatore W GauchoGermanyElwin Sharvill NEGOTIATION
Kaitlin T CampainUnited KingdomAsiya Javayant QUALIFIED
Munro O VenereJapanXuxue Feng NEW
Kadeem S FlosiCanadaOnyama Limba RENEWAL
Aika H ButtItalyAsiya Javayant UNQUALIFIED
Darci B DarakjyCanadaAmy Elsner UNQUALIFIED
Jones E StockhamItalyOnyama Limba QUALIFIED
Adams P GarufiUnited KingdomIoni Bowcher QUALIFIED
Chavez J PoquetteBrazilAnna Fali NEW
Silvio Q ShinkoAustraliaStephen Shaw RENEWAL
Rodrigues B ButtAustraliaElwin Sharvill UNQUALIFIED
Francesco W GlickIndiaAmy Elsner UNQUALIFIED
Costa D RutaJapanAnna Fali NEW
Nicolas U StockhamJapanBernardo Dominic PROPOSAL
Aditya U WaycottRussiaBernardo Dominic QUALIFIED
Jones G GauchoGermanyIvan Magalhaes PROPOSAL
Leja L OldroydJapanElwin Sharvill NEGOTIATION
Aruna V DoeFranceIvan Magalhaes QUALIFIED
Alejandro T SchemmerFranceAsiya Javayant PROPOSAL
Sinclair O CampainGermanyBernardo Dominic PROPOSAL
Isabel G DilliardArgentinaIvan Magalhaes RENEWAL
Octavia S FollerGermanyAnna Fali RENEWAL
Aditya L OstroskyGermanyAmy Elsner PROPOSAL
James A NickaAustraliaOnyama Limba NEGOTIATION
Juan L OldroydBrazilIoni Bowcher NEGOTIATION
Silvio G PaprockiRussiaAsiya Javayant NEGOTIATION
Jones O StensethJapanElwin Sharvill NEW
Silvio X CaldareraSpainOnyama Limba RENEWAL
Costa M GillianAustraliaAnna Fali QUALIFIED
Kadeem Z GlickItalyAmy Elsner RENEWAL
Johnson Y IturbideArgentinaAsiya Javayant UNQUALIFIED
Kaitlin L FollerAustraliaAsiya Javayant RENEWAL
Mayumi W ChuiItalyOnyama Limba QUALIFIED
Murillo U GillianBrazilAmy Elsner PROPOSAL
Ricardo X IturbideItalyAnna Fali PROPOSAL
Johnson T OstroskyGermanyElwin Sharvill PROPOSAL
Faith G OldroydItalyXuxue Feng QUALIFIED
Adams A BowleyRussiaStephen Shaw RENEWAL
Murillo P BologniaItalyAmy Elsner NEGOTIATION
Mayumi I CaldareraFranceOnyama Limba PROPOSAL
Munro Z DoeJapanAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Clifford P SaylorsUnited KingdomElwin Sharvill PROPOSAL
Aditya H MorascaJapanXuxue Feng RENEWAL
Maria B DoeJapanIvan Magalhaes NEGOTIATION
Smith L VenereRussiaElwin Sharvill UNQUALIFIED
Wickens W CaldareraArgentinaAsiya Javayant NEGOTIATION
Alejandro C CaudyBrazilXuxue Feng NEW
Leon F KuskoBrazilAsiya Javayant QUALIFIED
Maria W NickaCanadaElwin Sharvill NEW
Sinclair K FigeroaUnited KingdomXuxue Feng NEW
Tony U CaldareraBrazilIvan Magalhaes QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan L DoeAustralia2024-02-29Buckley Miller Wright NEW57Bernardo Dominic
1001James A TollnerJapan2024-03-05Rangoni Of Florence UNQUALIFIED71Bernardo Dominic
1002James D OldroydIndia2024-03-03King, Christopher A Esq QUALIFIED77Stephen Shaw
1003Stacey W GillianSpain2024-03-23Chanay, Jeffrey A Esq QUALIFIED43Ioni Bowcher
1004Alejandro M StensethItaly2024-03-21Truhlar And Truhlar Attys NEGOTIATION85Ivan Magalhaes
1005Jeanfrancois P MacleadJapan2024-03-21Feltz Printing Service PROPOSAL87Xuxue Feng
1006Octavia H AmigonFrance2024-03-22King, Christopher A Esq PROPOSAL9Onyama Limba
1007Ashley T TollnerUnited Kingdom2024-03-26Commercial Press UNQUALIFIED62Ioni Bowcher
1008Antonio H VenereRussia2024-03-04Chemel, James L Cpa PROPOSAL15Anna Fali
1009Ashley N TollnerFrance2024-03-25Printing Dimensions RENEWAL88Xuxue Feng
1010Rodrigues A FlosiArgentina2024-03-08Morlong Associates NEW23Stephen Shaw
1011Johnson R BologniaArgentina2024-03-21Chemel, James L Cpa PROPOSAL40Ioni Bowcher
1012Jennifer T CaldareraIndia2024-03-25Benton, John B Jr RENEWAL45Stephen Shaw
1013Jones V BowleyFrance2024-03-06Dorl, James J Esq NEGOTIATION87Asiya Javayant
1014Faith I FigeroaFrance2024-03-13Feiner Bros UNQUALIFIED22Elwin Sharvill
1015Mujtaba A RulapaughJapan2024-03-22Dorl, James J Esq UNQUALIFIED20Xuxue Feng
1016Cody O VenereCanada2024-03-24Chapman, Ross E Esq PROPOSAL68Onyama Limba
1017Jeanfrancois S FollerGermany2024-03-17Printing Dimensions NEGOTIATION76Stephen Shaw
1018Misaki Y OldroydFrance2024-03-28Morlong Associates QUALIFIED73Asiya Javayant
1019Nicolas G VenereArgentina2024-03-09Feltz Printing Service QUALIFIED8Anna Fali
1020Adams N MarrierItaly2024-03-20Commercial Press UNQUALIFIED99Xuxue Feng
1021Jeanfrancois M ChuiItaly2024-03-24Dorl, James J Esq QUALIFIED8Stephen Shaw
1022Leja F VenereFrance2024-02-29Rousseaux, Michael Esq RENEWAL35Amy Elsner
1023Maria A WaycottAustralia2024-02-28Morlong Associates UNQUALIFIED36Ioni Bowcher
1024Faith A PerinGermany2024-03-21Feltz Printing Service NEW39Bernardo Dominic
1025Octavia U CaudyItaly2024-02-28Chapman, Ross E Esq QUALIFIED45Amy Elsner
1026Faith X TollnerCanada2024-03-19Feltz Printing Service PROPOSAL38Xuxue Feng
1027Misaki U VocelkaItaly2024-03-24Chemel, James L Cpa NEW63Stephen Shaw
1028Ricardo C DilliardGermany2024-03-03Rousseaux, Michael Esq NEW17Anna Fali
1029Faith W InouyeJapan2024-03-09Feltz Printing Service NEW62Amy Elsner
1030Mujtaba F FigeroaCanada2024-03-22Chapman, Ross E Esq PROPOSAL54Asiya Javayant
1031Darci I RoysterIndia2024-03-17Benton, John B Jr PROPOSAL72Ivan Magalhaes
1032Maria X PaprockiGermany2024-03-10Chemel, James L Cpa RENEWAL1Xuxue Feng
1033Arvin M BologniaItaly2024-03-27Truhlar And Truhlar Attys UNQUALIFIED75Ivan Magalhaes
1034Chavez U WieserJapan2024-03-06King, Christopher A Esq QUALIFIED20Onyama Limba
1035Mayumi B StockhamAustralia2024-03-27Benton, John B Jr PROPOSAL93Amy Elsner
1036Chavez F OstroskyAustralia2024-03-25Rangoni Of Florence NEGOTIATION51Onyama Limba
1037Clifford X OstroskyJapan2024-03-19Truhlar And Truhlar Attys NEGOTIATION47Xuxue Feng
1038Kaitlin M BowleyArgentina2024-03-19Rangoni Of Florence UNQUALIFIED29Anna Fali
1039Kadeem X GillianJapan2024-03-14Benton, John B Jr NEGOTIATION7Xuxue Feng
1040Salvatore A DarakjyCanada2024-03-06Chanay, Jeffrey A Esq PROPOSAL90Elwin Sharvill
1041Adams O CampainItaly2024-03-14Morlong Associates QUALIFIED18Anna Fali
1042Alejandro W SlusarskiSpain2024-03-02Benton, John B Jr PROPOSAL83Onyama Limba
1043Ashley Y PerinItaly2024-03-10Benton, John B Jr UNQUALIFIED72Xuxue Feng
1044Tony S FollerCanada2024-03-03Feiner Bros QUALIFIED31Elwin Sharvill
1045Juan Z InouyeJapan2024-03-27Feiner Bros PROPOSAL83Stephen Shaw
1046Maria J FigeroaBrazil2024-03-13Feiner Bros QUALIFIED52Ioni Bowcher
1047James M GlickFrance2024-03-04Morlong Associates UNQUALIFIED77Asiya Javayant
1048Jeanfrancois G PaprockiIndia2024-03-02Chapman, Ross E Esq PROPOSAL19Ivan Magalhaes
1049Tony T ShinkoSpain2024-02-28Dorl, James J Esq RENEWAL8Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Darci V TollnerJapanAmy Elsner QUALIFIED
Aruna C FigeroaJapanXuxue Feng RENEWAL
Arvin U KolmetzSpainElwin Sharvill NEW
Jones A WieserJapanElwin Sharvill NEW
Isabel S ShinkoSpainElwin Sharvill PROPOSAL
Isabel L OldroydGermanyIoni Bowcher QUALIFIED
Kaitlin X AmigonFranceAnna Fali QUALIFIED
Salvatore N ButtFranceElwin Sharvill RENEWAL
Ashley D SchemmerAustraliaIvan Magalhaes NEW
Alejandro T BowleyCanadaIoni Bowcher UNQUALIFIED
Antonio U DarakjyArgentinaBernardo Dominic RENEWAL
Jeanfrancois J KolmetzArgentinaXuxue Feng NEGOTIATION
Sinclair N PoquetteSpainOnyama Limba QUALIFIED
Francesco V MarrierSpainBernardo Dominic NEW
Isabel U OstroskyIndiaElwin Sharvill PROPOSAL
James E DarakjyRussiaXuxue Feng QUALIFIED
Ashley E TollnerRussiaAsiya Javayant PROPOSAL
Alejandro R VenereGermanyAsiya Javayant NEGOTIATION
Munro T ChuiArgentinaIvan Magalhaes QUALIFIED
Chavez L SchemmerArgentinaAmy Elsner NEGOTIATION
Chavez D ShinkoItalyAsiya Javayant QUALIFIED
Izzy R GauchoBrazilAmy Elsner RENEWAL
Octavia L SchemmerJapanBernardo Dominic NEGOTIATION
Smith Z InouyeBrazilAnna Fali UNQUALIFIED
Alejandro P MaletUnited KingdomStephen Shaw PROPOSAL
Emily X NickaRussiaIvan Magalhaes NEW
Stacey L BowleyItalyIoni Bowcher QUALIFIED
Misaki L VenereArgentinaElwin Sharvill QUALIFIED
Leon U RoysterArgentinaAmy Elsner UNQUALIFIED
Leja T GlickItalyXuxue Feng UNQUALIFIED
Murillo C PerinIndiaOnyama Limba NEGOTIATION
Johnson B MaletGermanyXuxue Feng RENEWAL
Izzy P NestleCanadaAnna Fali UNQUALIFIED
Mayumi T NickaJapanBernardo Dominic PROPOSAL
Francesco V ChuiJapanIoni Bowcher PROPOSAL
Leja U MaletBrazilXuxue Feng UNQUALIFIED
Jefferson S DilliardCanadaIoni Bowcher RENEWAL
Chavez S KolmetzGermanyAnna Fali NEGOTIATION
Ashley O MorascaCanadaElwin Sharvill PROPOSAL
Claire H SergiIndiaStephen Shaw NEGOTIATION
Johnson R MacleadIndiaAmy Elsner UNQUALIFIED
Aruna A ShinkoIndiaXuxue Feng PROPOSAL
Munro W MaletGermanyAnna Fali RENEWAL
Leja A SergiUnited KingdomAnna Fali PROPOSAL
Aruna W WaycottBrazilElwin Sharvill NEW
Cody G WieserItalyOnyama Limba NEGOTIATION
Munro L MaletJapanIoni Bowcher UNQUALIFIED
Jennifer S OldroydUnited KingdomAsiya Javayant QUALIFIED
Greenwood I RimCanadaStephen Shaw UNQUALIFIED
James M MorascaUnited KingdomOnyama Limba QUALIFIED
Frozen Columns
Name
Maisha Y Glick
James C Bolognia
Faith W Amigon
Julie C Albares
James S Gillian
Morrow N Poquette
Jones E Gillian
Leon Z Caldarera
Aruna L Shinko
Misaki D Stenseth
Maria B Stenseth
James H Malet
Murillo V Oldroyd
Alejandro S Garufi
Clifford Z Bolognia
Murillo M Rim
Maisha I Malet
Octavia W Kolmetz
Ivar Q Flosi
Arvin H Kusko
Isabel N Albares
Murillo B Rim
Munro C Foller
Stacey H Rulapaugh
Sinclair N Gillian
Leon H Nestle
Darci D Nestle
Arvin I Bolognia
Ivar X Caldarera
Wickens T Saylors
Deepesh X Tollner
Maisha O Nicka
Silvio L Kusko
Faith O Stockham
Clifford H Doe
Izzy Z Briddick
Aika X Whobrey
James F Amigon
Adams S Stockham
Sinclair J Tollner
Stacey Q Caudy
James M Garufi
Mayumi H Venere
Jennifer E Iturbide
Francesco T Slusarski
Emily I Kusko
Ashley C Ferencz
Izzy A Waycott
Kadeem K Doe
Kadeem I Saylors
IdCountryDate
1000Germany2024-03-03
1001Germany2024-03-10
1002Russia2024-03-06
1003Canada2024-03-24
1004United Kingdom2024-03-07
1005Brazil2024-03-20
1006France2024-03-11
1007Germany2024-03-05
1008Australia2024-03-20
1009India2024-03-16
1010Spain2024-03-23
1011United Kingdom2024-03-13
1012Canada2024-03-24
1013Argentina2024-03-25
1014Russia2024-03-09
1015Argentina2024-03-01
1016United Kingdom2024-03-07
1017Australia2024-03-18
1018United Kingdom2024-03-21
1019Brazil2024-03-16
1020Australia2024-03-03
1021Argentina2024-03-07
1022Brazil2024-03-14
1023Canada2024-02-28
1024India2024-03-18
1025Australia2024-03-09
1026India2024-03-14
1027Brazil2024-02-29
1028France2024-03-16
1029Japan2024-03-23
1030Australia2024-03-15
1031Germany2024-03-09
1032Argentina2024-02-29
1033Canada2024-03-27
1034France2024-02-29
1035Brazil2024-03-05
1036India2024-03-24
1037India2024-03-20
1038Germany2024-03-15
1039Brazil2024-03-28
1040Italy2024-03-24
1041Germany2024-03-28
1042Italy2024-03-06
1043Italy2024-03-17
1044Brazil2024-03-22
1045United Kingdom2024-02-29
1046Russia2024-03-04
1047Brazil2024-03-06
1048Argentina2024-03-02
1049Italy2024-03-23

On-Demand Data

NameIdCountryDate
Silvio M Vocelka1000India2024-03-04
Ashley H Oldroyd1001Germany2024-03-16
Jennifer C Chui1002France2024-03-25
Izzy N Butt1003India2024-03-11
Francesco F Albares1004United Kingdom2024-03-05
Leja I Sergi1005Canada2024-03-02
Ashley R Ruta1006France2024-03-18
Stacey B Bowley1007Canada2024-03-23
Aruna L Oldroyd1008Spain2024-03-15
Leon F Nestle1009Japan2024-03-26
Wickens G Malet1010Russia2024-03-22
David P Malet1011Brazil2024-03-18
Wickens T Morasca1012Canada2024-03-22
Octavia G Ruta1013Germany2024-03-28
Munro E Tollner1014United Kingdom2024-03-15
Maisha T Malet1015United Kingdom2024-03-24
Faith U Tollner1016Spain2024-03-03
Alejandro X Shinko1017Canada2024-03-25
Aika A Nestle1018Australia2024-03-02
Francesco M Caudy1019Russia2024-03-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith S GlickUnited KingdomXuxue Feng QUALIFIED
Adams L SlusarskiGermanyOnyama Limba NEGOTIATION
Aika A PoquetteCanadaStephen Shaw RENEWAL
Francesco H OstroskyArgentinaAnna Fali NEGOTIATION
Juan E FollerSpainElwin Sharvill NEGOTIATION
James W MaletFranceAmy Elsner UNQUALIFIED
Stacey R MaletFranceStephen Shaw NEGOTIATION
Antonio R OldroydBrazilIoni Bowcher UNQUALIFIED
Emily R MacleadBrazilElwin Sharvill RENEWAL
Wickens C ChuiIndiaOnyama Limba UNQUALIFIED
Jeanfrancois Q RimGermanyAsiya Javayant NEGOTIATION
Isabel J VocelkaGermanyAnna Fali NEGOTIATION
Morrow F CampainFranceBernardo Dominic QUALIFIED
Leon P FollerCanadaAnna Fali NEW
Ashley U FigeroaItalyXuxue Feng NEGOTIATION
Munro K DarakjyGermanyIvan Magalhaes QUALIFIED
Aika E InouyeJapanBernardo Dominic RENEWAL
Salvatore F SchemmerCanadaIoni Bowcher NEGOTIATION
Munro Z GlickFranceBernardo Dominic NEGOTIATION
Rodrigues G FigeroaIndiaIoni Bowcher UNQUALIFIED
Isabel G OldroydSpainXuxue Feng NEGOTIATION
Arvin F DilliardUnited KingdomIoni Bowcher NEW
Alejandro I WieserGermanyOnyama Limba PROPOSAL
Emily D PaprockiCanadaBernardo Dominic QUALIFIED
Maria G WhobreyCanadaOnyama Limba RENEWAL
Misaki Y RulapaughBrazilXuxue Feng PROPOSAL
Claire P InouyeFranceElwin Sharvill NEW
Mayumi Y GlickRussiaIoni Bowcher RENEWAL
Mujtaba A MaletJapanOnyama Limba PROPOSAL
Darci R MarrierJapanXuxue Feng QUALIFIED
Jones J StensethAustraliaOnyama Limba PROPOSAL
Alejandro E ChuiCanadaIoni Bowcher UNQUALIFIED
Julie G DoeGermanyAnna Fali UNQUALIFIED
Juan O MaletIndiaBernardo Dominic QUALIFIED
Faith Q MorascaCanadaBernardo Dominic UNQUALIFIED
Jefferson P SergiFranceAsiya Javayant UNQUALIFIED
Cody R GillianItalyBernardo Dominic NEGOTIATION
Greenwood E DilliardIndiaXuxue Feng NEGOTIATION
Morrow A WhobreyRussiaAmy Elsner QUALIFIED
Chavez Z DilliardCanadaAmy Elsner NEGOTIATION

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