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
Rodrigues A RoysterGermanyXuxue Feng UNQUALIFIED
Kaitlin W MaletFranceXuxue Feng UNQUALIFIED
Munro W RimGermanyAsiya Javayant QUALIFIED
Misaki K SchemmerAustraliaAnna Fali NEGOTIATION
Wickens Y NestleArgentinaAsiya Javayant UNQUALIFIED
Mujtaba G BriddickGermanyAsiya Javayant RENEWAL
Aditya D TollnerAustraliaXuxue Feng NEW
Misaki K PaprockiCanadaAnna Fali QUALIFIED
Nicolas O PoquetteCanadaIoni Bowcher PROPOSAL
Kaitlin F StockhamIndiaBernardo Dominic UNQUALIFIED
Juan J RutaCanadaStephen Shaw QUALIFIED
Wickens H ShinkoRussiaAnna Fali NEW
Jeanfrancois Z ButtFranceBernardo Dominic PROPOSAL
Wickens T StockhamBrazilAsiya Javayant PROPOSAL
Salvatore A CampainIndiaStephen Shaw NEGOTIATION
Kaitlin L BriddickGermanyBernardo Dominic UNQUALIFIED
Alejandro J StockhamGermanyAnna Fali UNQUALIFIED
Adams K PoquetteSpainElwin Sharvill NEW
Mujtaba N SaylorsItalyXuxue Feng UNQUALIFIED
Deepesh W RutaRussiaAmy Elsner UNQUALIFIED
Smith U CampainGermanyAmy Elsner QUALIFIED
Ivar Y FerenczIndiaIvan Magalhaes PROPOSAL
Darci S MorascaGermanyIvan Magalhaes NEGOTIATION
Greenwood S VocelkaUnited KingdomStephen Shaw NEW
Munro C SchemmerFranceAmy Elsner PROPOSAL
Misaki M OldroydCanadaIvan Magalhaes UNQUALIFIED
Stacey F VenereGermanyIvan Magalhaes NEW
Salvatore Z OstroskySpainXuxue Feng QUALIFIED
Rodrigues D BriddickGermanyElwin Sharvill NEGOTIATION
Maisha K RoysterCanadaAnna Fali NEW
Cody I DilliardAustraliaXuxue Feng UNQUALIFIED
Ricardo I KuskoRussiaStephen Shaw NEW
Kaitlin E BriddickIndiaBernardo Dominic QUALIFIED
Julie E ChuiRussiaIvan Magalhaes NEGOTIATION
Juan O BologniaGermanyIoni Bowcher PROPOSAL
Jefferson O OldroydArgentinaElwin Sharvill RENEWAL
Chavez O GlickFranceAmy Elsner QUALIFIED
Silvio A FlosiArgentinaAmy Elsner QUALIFIED
Sinclair U TollnerItalyIoni Bowcher QUALIFIED
Rodrigues A WieserRussiaStephen Shaw RENEWAL
Jones N WhobreyCanadaXuxue Feng PROPOSAL
Kaitlin P SaylorsIndiaOnyama Limba PROPOSAL
Kaitlin G GauchoRussiaAsiya Javayant RENEWAL
Aditya Q DarakjyUnited KingdomAsiya Javayant UNQUALIFIED
Murillo P BologniaUnited KingdomXuxue Feng QUALIFIED
Izzy T WaycottBrazilOnyama Limba NEW
Mayumi B DilliardArgentinaIvan Magalhaes PROPOSAL
Kadeem X FollerSpainAmy Elsner RENEWAL
Costa K GlickRussiaXuxue Feng UNQUALIFIED
Misaki V SergiArgentinaBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Salvatore F FerenczUnited KingdomBernardo Dominic RENEWAL
Arvin P GillianBrazilIvan Magalhaes NEGOTIATION
Leon X GillianBrazilElwin Sharvill NEW
Mujtaba U WaycottIndiaXuxue Feng RENEWAL
Aruna Z GauchoBrazilOnyama Limba UNQUALIFIED
Maisha E StockhamBrazilAsiya Javayant PROPOSAL
Munro O GillianBrazilIoni Bowcher PROPOSAL
Kadeem K MarrierJapanAnna Fali UNQUALIFIED
Jennifer W ButtCanadaIoni Bowcher PROPOSAL
Faith E NestleAustraliaBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio V ChuiGermany2024-04-20King, Christopher A Esq PROPOSAL56Ioni Bowcher
1001David R RoysterRussia2024-04-11Benton, John B Jr QUALIFIED21Xuxue Feng
1002Emily W RulapaughSpain2024-04-23Dorl, James J Esq UNQUALIFIED57Stephen Shaw
1003Emily S GauchoArgentina2024-04-14Morlong Associates UNQUALIFIED27Ivan Magalhaes
1004Faith E AmigonJapan2024-04-26Dorl, James J Esq QUALIFIED99Asiya Javayant
1005Stacey X VenereUnited Kingdom2024-04-09Feiner Bros QUALIFIED78Bernardo Dominic
1006Antonio L OstroskyCanada2024-04-02Truhlar And Truhlar Attys PROPOSAL1Onyama Limba
1007Misaki W ButtIndia2024-04-05Rangoni Of Florence NEGOTIATION62Ioni Bowcher
1008Mayumi E MorascaRussia2024-04-12Feiner Bros PROPOSAL77Anna Fali
1009Jones V RimItaly2024-04-06Chanay, Jeffrey A Esq UNQUALIFIED5Stephen Shaw
1010Emily F AlbaresGermany2024-04-07Buckley Miller Wright RENEWAL33Bernardo Dominic
1011Alejandro O BologniaGermany2024-03-30Benton, John B Jr UNQUALIFIED50Onyama Limba
1012Greenwood L MorascaAustralia2024-04-16Rangoni Of Florence UNQUALIFIED18Anna Fali
1013James I RimCanada2024-04-06Morlong Associates RENEWAL69Xuxue Feng
1014Clifford O SlusarskiFrance2024-03-28Rousseaux, Michael Esq PROPOSAL34Xuxue Feng
1015Jefferson Z RulapaughArgentina2024-04-11Commercial Press NEGOTIATION59Bernardo Dominic
1016Jefferson P IturbideUnited Kingdom2024-03-31Chanay, Jeffrey A Esq UNQUALIFIED51Anna Fali
1017Cody Q BowleyFrance2024-04-01Truhlar And Truhlar Attys NEW9Stephen Shaw
1018Johnson M FerenczItaly2024-04-20Benton, John B Jr RENEWAL21Xuxue Feng
1019Emily G DarakjyCanada2024-04-03Chemel, James L Cpa PROPOSAL32Bernardo Dominic
1020Jefferson O BologniaUnited Kingdom2024-04-19Chapman, Ross E Esq NEGOTIATION27Amy Elsner
1021Kaitlin A ChuiJapan2024-04-21Rousseaux, Michael Esq PROPOSAL48Stephen Shaw
1022Aditya Y MacleadBrazil2024-04-03King, Christopher A Esq QUALIFIED74Anna Fali
1023Clifford C GarufiBrazil2024-04-22King, Christopher A Esq NEW67Ivan Magalhaes
1024Darci X SaylorsFrance2024-04-04Chemel, James L Cpa PROPOSAL50Onyama Limba
1025Cody J GlickJapan2024-04-19Dorl, James J Esq PROPOSAL3Amy Elsner
1026Jefferson A FlosiGermany2024-04-06Dorl, James J Esq NEW38Asiya Javayant
1027James S FigeroaSpain2024-03-29Benton, John B Jr QUALIFIED58Ioni Bowcher
1028Ivar F PaprockiIndia2024-04-13Commercial Press NEW2Stephen Shaw
1029Jefferson G NestleSpain2024-04-05Chemel, James L Cpa RENEWAL53Stephen Shaw
1030Munro B PaprockiAustralia2024-03-28Feltz Printing Service QUALIFIED88Anna Fali
1031Alejandro Q SergiBrazil2024-04-19Dorl, James J Esq QUALIFIED70Onyama Limba
1032Jones F ChuiGermany2024-04-06Printing Dimensions RENEWAL26Asiya Javayant
1033Tony E FollerCanada2024-04-26Buckley Miller Wright RENEWAL99Bernardo Dominic
1034Arvin F GauchoArgentina2024-04-20Buckley Miller Wright RENEWAL27Xuxue Feng
1035Misaki U FigeroaItaly2024-04-13Morlong Associates NEGOTIATION66Stephen Shaw
1036Claire U KolmetzArgentina2024-04-20Feltz Printing Service QUALIFIED8Amy Elsner
1037Adams W SaylorsArgentina2024-04-16Chanay, Jeffrey A Esq NEW33Asiya Javayant
1038Costa M DilliardArgentina2024-04-19Chanay, Jeffrey A Esq NEGOTIATION74Ivan Magalhaes
1039Deepesh N SlusarskiArgentina2024-04-03Commercial Press NEW2Ioni Bowcher
1040Juan P MaletGermany2024-04-06Truhlar And Truhlar Attys NEGOTIATION85Elwin Sharvill
1041Julie C GauchoSpain2024-04-12Morlong Associates NEW70Bernardo Dominic
1042Kaitlin P ChuiRussia2024-04-23Feltz Printing Service QUALIFIED29Ioni Bowcher
1043Kadeem M StockhamBrazil2024-04-08Feltz Printing Service QUALIFIED20Elwin Sharvill
1044Claire P PerinArgentina2024-04-22King, Christopher A Esq RENEWAL73Bernardo Dominic
1045Smith D DoeAustralia2024-04-07Chanay, Jeffrey A Esq QUALIFIED25Ivan Magalhaes
1046Deepesh R FerenczAustralia2024-04-20Rousseaux, Michael Esq NEW41Amy Elsner
1047Darci L NickaUnited Kingdom2024-04-17Chanay, Jeffrey A Esq PROPOSAL85Stephen Shaw
1048Munro V GillianBrazil2024-04-04Rangoni Of Florence PROPOSAL53Anna Fali
1049Maria Y MaletUnited Kingdom2024-03-31King, Christopher A Esq UNQUALIFIED48Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aditya I VenereFranceIvan Magalhaes NEW
Jennifer U ShinkoSpainBernardo Dominic RENEWAL
Octavia U VocelkaRussiaBernardo Dominic QUALIFIED
Aika Y OldroydSpainXuxue Feng PROPOSAL
Francesco Q MacleadJapanXuxue Feng PROPOSAL
Rodrigues V CampainArgentinaIoni Bowcher RENEWAL
Antonio D StensethBrazilIvan Magalhaes NEW
Jeanfrancois M PoquetteAustraliaStephen Shaw UNQUALIFIED
Aika M BologniaIndiaXuxue Feng RENEWAL
Morrow C GauchoRussiaIoni Bowcher NEW
Leon F VenereSpainOnyama Limba RENEWAL
Maisha L WaycottSpainIvan Magalhaes QUALIFIED
Claire A OstroskyFranceOnyama Limba RENEWAL
Maisha A VenereIndiaAnna Fali NEGOTIATION
Alejandro G DilliardIndiaElwin Sharvill NEGOTIATION
Sinclair Q MarrierJapanAnna Fali QUALIFIED
Leja T KuskoBrazilIoni Bowcher UNQUALIFIED
Maisha B DoeCanadaIvan Magalhaes UNQUALIFIED
Stacey C VenereUnited KingdomStephen Shaw NEW
Maria A SergiCanadaBernardo Dominic PROPOSAL
James T KolmetzBrazilAnna Fali NEGOTIATION
Kadeem B CaudyIndiaStephen Shaw NEW
Smith C CaudyAustraliaXuxue Feng RENEWAL
Emily V GauchoAustraliaStephen Shaw NEW
Deepesh S PaprockiGermanyAmy Elsner PROPOSAL
Chavez Y FollerRussiaAsiya Javayant UNQUALIFIED
Deepesh J StensethArgentinaXuxue Feng RENEWAL
Leon U RimJapanAnna Fali QUALIFIED
Tony V SchemmerAustraliaAsiya Javayant NEGOTIATION
Munro Y FigeroaIndiaElwin Sharvill PROPOSAL
Ivar E KolmetzItalyStephen Shaw QUALIFIED
Octavia J BriddickUnited KingdomElwin Sharvill QUALIFIED
Juan K SchemmerItalyIoni Bowcher PROPOSAL
Mayumi K VocelkaJapanAmy Elsner RENEWAL
Kadeem R PoquetteSpainElwin Sharvill UNQUALIFIED
Darci Y MorascaJapanAsiya Javayant PROPOSAL
Isabel X SergiSpainElwin Sharvill UNQUALIFIED
Stacey A ChuiItalyAsiya Javayant NEGOTIATION
Mujtaba I ButtItalyIvan Magalhaes QUALIFIED
Izzy Q RoysterIndiaXuxue Feng NEW
Juan N MaletRussiaBernardo Dominic NEGOTIATION
Jones S MorascaIndiaIoni Bowcher NEW
Juan U KuskoItalyIoni Bowcher NEGOTIATION
Jennifer B GarufiFranceAmy Elsner NEW
Juan C ChuiArgentinaOnyama Limba PROPOSAL
Arvin D MaletGermanyElwin Sharvill PROPOSAL
Maisha S IturbideUnited KingdomElwin Sharvill UNQUALIFIED
Aditya P GillianArgentinaBernardo Dominic NEW
Costa Z GillianCanadaIoni Bowcher RENEWAL
Aika Q AmigonUnited KingdomIvan Magalhaes RENEWAL
Frozen Columns
Name
Juan G Royster
Arvin Y Nicka
Aruna B Wieser
Maria L Royster
Aika A Perin
Faith G Bowley
Julie A Glick
Aditya Z Stenseth
Izzy H Slusarski
Mujtaba G Schemmer
Wickens D Foller
Ashley U Dilliard
Salvatore M Dilliard
Chavez B Caldarera
Francesco A Albares
Deepesh Q Stockham
Jones P Ostrosky
Morrow M Kusko
Clifford C Gaucho
Deepesh E Oldroyd
Chavez W Briddick
Aditya Q Royster
Juan V Malet
Francesco F Doe
Wickens L Iturbide
Isabel J Kusko
Leja N Rulapaugh
Leon P Morasca
Munro U Nicka
Kadeem D Gaucho
Morrow C Ruta
Leon Y Saylors
Jennifer M Wieser
Morrow Y Figeroa
Jefferson Z Marrier
Mayumi V Venere
Jennifer Y Whobrey
Maisha U Kolmetz
Nicolas U Chui
Antonio P Morasca
Deepesh Y Chui
Tony V Butt
Rodrigues R Tollner
Aditya B Poquette
Julie Y Schemmer
Costa N Malet
Leja L Figeroa
Adams B Tollner
Tony I Shinko
Maisha Z Malet
IdCountryDate
1000Australia2024-03-30
1001France2024-04-02
1002Spain2024-04-19
1003Russia2024-04-16
1004Japan2024-04-04
1005Canada2024-03-31
1006Italy2024-04-13
1007Brazil2024-03-31
1008France2024-04-06
1009Russia2024-04-01
1010Japan2024-04-14
1011India2024-04-02
1012Germany2024-04-21
1013Spain2024-03-31
1014Australia2024-04-14
1015Canada2024-04-26
1016Germany2024-04-09
1017Russia2024-04-04
1018India2024-04-07
1019Italy2024-04-17
1020Argentina2024-04-18
1021France2024-04-24
1022France2024-04-13
1023Spain2024-04-03
1024Argentina2024-04-26
1025Russia2024-04-17
1026Germany2024-04-26
1027India2024-04-04
1028Italy2024-04-17
1029Japan2024-03-30
1030Australia2024-04-14
1031United Kingdom2024-04-18
1032Spain2024-04-19
1033France2024-04-12
1034Spain2024-04-26
1035Japan2024-04-16
1036India2024-04-02
1037Australia2024-03-31
1038Spain2024-04-14
1039Argentina2024-04-06
1040Canada2024-03-29
1041Spain2024-04-07
1042United Kingdom2024-04-12
1043Argentina2024-04-03
1044Italy2024-04-21
1045Russia2024-04-21
1046United Kingdom2024-03-30
1047United Kingdom2024-04-06
1048Italy2024-04-11
1049Japan2024-04-01

On-Demand Data

NameIdCountryDate
Maria M Malet1000Japan2024-04-25
Antonio J Ruta1001Spain2024-04-13
Kadeem J Bowley1002Japan2024-03-28
Wickens Z Shinko1003Spain2024-04-08
Izzy T Glick1004Argentina2024-04-16
Kaitlin L Butt1005Russia2024-04-26
Nicolas G Nicka1006India2024-04-11
Kaitlin O Foller1007Canada2024-04-18
Mayumi R Albares1008Japan2024-03-29
Greenwood L Campain1009India2024-04-06
Faith Z Venere1010United Kingdom2024-04-23
Faith X Foller1011Argentina2024-04-03
Adams J Saylors1012Italy2024-04-15
Costa O Wieser1013India2024-03-30
Faith B Poquette1014France2024-04-07
Kaitlin Q Albares1015Australia2024-04-08
Alejandro H Iturbide1016Germany2024-04-20
Julie O Flosi1017Spain2024-04-08
Julie B Vocelka1018Australia2024-04-01
Alejandro Y Vocelka1019Canada2024-03-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna Q SlusarskiArgentinaAmy Elsner NEW
Deepesh V InouyeIndiaIvan Magalhaes UNQUALIFIED
Francesco U AlbaresAustraliaOnyama Limba RENEWAL
Ricardo I RulapaughGermanyBernardo Dominic PROPOSAL
Isabel E NestleFranceAmy Elsner NEGOTIATION
Jones E BriddickUnited KingdomAnna Fali UNQUALIFIED
Izzy Z CaldareraAustraliaStephen Shaw NEW
Jennifer B DilliardCanadaBernardo Dominic PROPOSAL
Maria C CampainUnited KingdomXuxue Feng NEW
Clifford P CaldareraFranceOnyama Limba QUALIFIED
Misaki M WieserItalyBernardo Dominic NEGOTIATION
Wickens I CaudyUnited KingdomIvan Magalhaes RENEWAL
Aika Z AmigonAustraliaOnyama Limba NEGOTIATION
Adams X MaletFranceElwin Sharvill RENEWAL
Francesco V PerinBrazilElwin Sharvill NEW
Octavia R FollerAustraliaOnyama Limba NEGOTIATION
Maria P FigeroaRussiaBernardo Dominic NEGOTIATION
Leon K WhobreyAustraliaElwin Sharvill NEGOTIATION
Mujtaba K VenereBrazilBernardo Dominic UNQUALIFIED
Clifford E AlbaresAustraliaXuxue Feng QUALIFIED
Julie O MaletItalyXuxue Feng UNQUALIFIED
Aruna D SaylorsBrazilBernardo Dominic NEGOTIATION
Johnson N FlosiIndiaIvan Magalhaes QUALIFIED
Adams F PerinUnited KingdomAsiya Javayant NEW
Maisha C VocelkaJapanAmy Elsner NEW
Jones F DoeAustraliaXuxue Feng NEGOTIATION
Aika K SchemmerUnited KingdomXuxue Feng NEGOTIATION
Aruna Y NestleCanadaAsiya Javayant UNQUALIFIED
Chavez D DilliardItalyAmy Elsner UNQUALIFIED
Costa Q MacleadIndiaBernardo Dominic RENEWAL
Arvin Q RutaItalyIvan Magalhaes NEW
Clifford C GillianArgentinaElwin Sharvill UNQUALIFIED
Ashley C MarrierGermanyOnyama Limba NEGOTIATION
Ricardo K RoysterUnited KingdomOnyama Limba NEGOTIATION
James B MarrierItalyAmy Elsner PROPOSAL
Kaitlin E VocelkaJapanBernardo Dominic RENEWAL
Leja L CaldareraSpainIoni Bowcher UNQUALIFIED
Maisha M PoquetteFranceIvan Magalhaes NEW
Kadeem G InouyeRussiaAmy Elsner NEGOTIATION
Tony B DilliardArgentinaOnyama Limba 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>