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
Murillo S KuskoItalyAnna Fali RENEWAL
Mayumi A BologniaIndiaAsiya Javayant PROPOSAL
Morrow B IturbideIndiaAsiya Javayant NEW
Aditya T MacleadSpainAmy Elsner QUALIFIED
Maria H RulapaughFranceElwin Sharvill QUALIFIED
Mayumi Z WieserItalyStephen Shaw NEW
Octavia A BowleyJapanIvan Magalhaes UNQUALIFIED
Rodrigues A GarufiRussiaElwin Sharvill PROPOSAL
James N GauchoItalyIvan Magalhaes QUALIFIED
Misaki W AlbaresBrazilIoni Bowcher NEW
Jefferson X RoysterArgentinaXuxue Feng NEW
Murillo M WhobreyFranceBernardo Dominic NEW
Izzy H SergiFranceAnna Fali NEW
Leja X WieserUnited KingdomStephen Shaw UNQUALIFIED
Aditya P AmigonBrazilElwin Sharvill QUALIFIED
Izzy M MorascaGermanyIvan Magalhaes QUALIFIED
Nicolas L GlickIndiaIvan Magalhaes RENEWAL
Misaki X KuskoIndiaIvan Magalhaes RENEWAL
Mayumi F StockhamUnited KingdomElwin Sharvill NEW
Jones W DarakjyBrazilOnyama Limba QUALIFIED
Juan U ShinkoIndiaBernardo Dominic NEW
Sinclair Q CaldareraFranceElwin Sharvill PROPOSAL
Octavia W RoysterJapanElwin Sharvill PROPOSAL
Cody O GlickFranceAnna Fali UNQUALIFIED
Misaki L AmigonArgentinaIoni Bowcher UNQUALIFIED
Stacey U GlickItalyIoni Bowcher UNQUALIFIED
Munro D CampainIndiaXuxue Feng QUALIFIED
Jefferson M TollnerBrazilXuxue Feng QUALIFIED
Costa O DarakjyJapanOnyama Limba UNQUALIFIED
Misaki N NickaAustraliaAmy Elsner QUALIFIED
Costa L InouyeJapanIvan Magalhaes QUALIFIED
Leja M TollnerSpainOnyama Limba RENEWAL
Ivar O OldroydIndiaAmy Elsner PROPOSAL
Kaitlin S WieserArgentinaOnyama Limba UNQUALIFIED
Mayumi A CampainRussiaAsiya Javayant RENEWAL
Jones H SlusarskiArgentinaXuxue Feng PROPOSAL
Jones F VocelkaGermanyBernardo Dominic NEGOTIATION
Maisha V KolmetzIndiaIoni Bowcher PROPOSAL
Wickens Q TollnerUnited KingdomElwin Sharvill RENEWAL
Sinclair Q DilliardFranceXuxue Feng RENEWAL
David V DarakjyFranceStephen Shaw QUALIFIED
Jones S PerinIndiaAmy Elsner UNQUALIFIED
Ivar Q VocelkaUnited KingdomIvan Magalhaes NEGOTIATION
Izzy M SergiFranceAmy Elsner UNQUALIFIED
Munro D MacleadCanadaAnna Fali NEGOTIATION
Julie S ShinkoCanadaIvan Magalhaes NEW
Mayumi O InouyeCanadaIvan Magalhaes QUALIFIED
Claire V RulapaughCanadaIoni Bowcher PROPOSAL
Jennifer K MacleadBrazilAsiya Javayant RENEWAL
Mujtaba P CaldareraSpainStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Francesco L ChuiJapanAmy Elsner QUALIFIED
Cody T ShinkoUnited KingdomBernardo Dominic UNQUALIFIED
Nicolas D RutaBrazilIvan Magalhaes NEW
Mujtaba C RimGermanyOnyama Limba RENEWAL
Leon U AmigonItalyXuxue Feng PROPOSAL
Ivar D PaprockiCanadaAnna Fali UNQUALIFIED
Adams Q VenereArgentinaBernardo Dominic NEGOTIATION
Aruna C KolmetzUnited KingdomXuxue Feng NEGOTIATION
Ivar H StockhamArgentinaStephen Shaw NEGOTIATION
Cody T GillianRussiaOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha C RutaUnited Kingdom2024-04-01Chapman, Ross E Esq PROPOSAL78Ioni Bowcher
1001Jones S RoysterIndia2024-04-24Chapman, Ross E Esq RENEWAL5Ioni Bowcher
1002Aruna Z GlickUnited Kingdom2024-04-21Chanay, Jeffrey A Esq QUALIFIED72Elwin Sharvill
1003Silvio W MaletSpain2024-04-11Chanay, Jeffrey A Esq PROPOSAL28Onyama Limba
1004James V ButtAustralia2024-04-19Truhlar And Truhlar Attys NEGOTIATION19Anna Fali
1005Emily M ChuiFrance2024-04-06Chanay, Jeffrey A Esq RENEWAL59Xuxue Feng
1006Antonio Y FlosiGermany2024-04-04Chapman, Ross E Esq RENEWAL29Amy Elsner
1007Jones D MaletGermany2024-04-20Rousseaux, Michael Esq RENEWAL36Xuxue Feng
1008Tony X GarufiSpain2024-04-12Morlong Associates NEW28Ioni Bowcher
1009Tony X GillianCanada2024-04-14Benton, John B Jr PROPOSAL65Ioni Bowcher
1010Ivar G MacleadGermany2024-04-24Printing Dimensions QUALIFIED7Asiya Javayant
1011James N MaletUnited Kingdom2024-04-09Chanay, Jeffrey A Esq QUALIFIED97Onyama Limba
1012Kadeem G RoysterCanada2024-04-20King, Christopher A Esq UNQUALIFIED23Onyama Limba
1013Leon B SchemmerAustralia2024-04-02Truhlar And Truhlar Attys QUALIFIED35Elwin Sharvill
1014Izzy S FigeroaArgentina2024-03-31Rangoni Of Florence NEW26Xuxue Feng
1015Alejandro I MaletBrazil2024-04-21Feltz Printing Service RENEWAL52Xuxue Feng
1016Maisha D MaletSpain2024-04-15Dorl, James J Esq PROPOSAL16Stephen Shaw
1017Ricardo W StockhamUnited Kingdom2024-04-17Feiner Bros NEW34Onyama Limba
1018Misaki I FerenczItaly2024-04-13Rousseaux, Michael Esq UNQUALIFIED72Asiya Javayant
1019Jeanfrancois T RulapaughBrazil2024-04-24Feltz Printing Service RENEWAL20Ioni Bowcher
1020Mujtaba G FlosiIndia2024-04-16Dorl, James J Esq QUALIFIED73Ioni Bowcher
1021Faith R FerenczBrazil2024-04-23Dorl, James J Esq PROPOSAL61Ivan Magalhaes
1022Smith C IturbideCanada2024-04-08Benton, John B Jr PROPOSAL84Anna Fali
1023Aika W MacleadUnited Kingdom2024-04-08Rousseaux, Michael Esq RENEWAL9Ivan Magalhaes
1024Jeanfrancois X PaprockiBrazil2024-04-22Chanay, Jeffrey A Esq UNQUALIFIED30Xuxue Feng
1025David F OstroskyBrazil2024-04-02Chemel, James L Cpa QUALIFIED79Ivan Magalhaes
1026Costa D RulapaughJapan2024-04-09Rousseaux, Michael Esq PROPOSAL66Onyama Limba
1027Arvin Y OstroskyBrazil2024-04-14Rangoni Of Florence RENEWAL85Elwin Sharvill
1028Octavia F DilliardSpain2024-04-11Chapman, Ross E Esq PROPOSAL37Xuxue Feng
1029Isabel A GarufiItaly2024-04-12Printing Dimensions RENEWAL55Xuxue Feng
1030Alejandro A RulapaughCanada2024-03-30Feiner Bros QUALIFIED8Amy Elsner
1031Rodrigues Y VocelkaGermany2024-04-12Chemel, James L Cpa RENEWAL48Bernardo Dominic
1032Cody W MaletUnited Kingdom2024-04-06Morlong Associates PROPOSAL36Stephen Shaw
1033Misaki O SergiSpain2024-04-22Chapman, Ross E Esq RENEWAL11Bernardo Dominic
1034Cody T AmigonRussia2024-04-23Buckley Miller Wright NEW28Amy Elsner
1035Nicolas G FollerItaly2024-04-26King, Christopher A Esq RENEWAL28Amy Elsner
1036Aditya L CaldareraAustralia2024-03-29Printing Dimensions NEGOTIATION55Elwin Sharvill
1037Leon V WaycottGermany2024-04-24Chapman, Ross E Esq PROPOSAL0Stephen Shaw
1038Greenwood U BologniaItaly2024-04-03Chemel, James L Cpa UNQUALIFIED25Ivan Magalhaes
1039Izzy I IturbideGermany2024-03-30Rangoni Of Florence UNQUALIFIED60Stephen Shaw
1040Antonio K MaletArgentina2024-03-28Benton, John B Jr RENEWAL29Anna Fali
1041James I MaletBrazil2024-04-12Commercial Press PROPOSAL45Amy Elsner
1042Ivar K InouyeRussia2024-04-19Printing Dimensions PROPOSAL84Bernardo Dominic
1043Mayumi A StensethRussia2024-04-07Truhlar And Truhlar Attys NEGOTIATION98Ivan Magalhaes
1044Smith P PaprockiGermany2024-04-10Chanay, Jeffrey A Esq NEW77Onyama Limba
1045Salvatore A FerenczFrance2024-04-10Feiner Bros UNQUALIFIED92Onyama Limba
1046James N GauchoGermany2024-04-16Chapman, Ross E Esq QUALIFIED35Bernardo Dominic
1047Julie U FollerIndia2024-04-01Benton, John B Jr NEW84Onyama Limba
1048Jefferson R StockhamFrance2024-04-13Rousseaux, Michael Esq QUALIFIED12Ivan Magalhaes
1049Alejandro L CaudyJapan2024-04-20Dorl, James J Esq QUALIFIED67Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Chavez I AlbaresCanadaAnna Fali NEW
Rodrigues E SlusarskiSpainBernardo Dominic RENEWAL
Isabel Z RulapaughArgentinaXuxue Feng NEGOTIATION
Jeanfrancois W OstroskyIndiaOnyama Limba NEGOTIATION
Morrow H IturbideArgentinaOnyama Limba UNQUALIFIED
Alejandro G KolmetzIndiaAmy Elsner RENEWAL
Ashley S DoeArgentinaBernardo Dominic PROPOSAL
Morrow J DoeItalyOnyama Limba QUALIFIED
Jefferson I FigeroaGermanyAsiya Javayant RENEWAL
Clifford K MacleadArgentinaIoni Bowcher UNQUALIFIED
Maria G RoysterJapanAsiya Javayant NEW
Rodrigues D KolmetzIndiaElwin Sharvill UNQUALIFIED
Sinclair B ButtJapanAnna Fali UNQUALIFIED
Salvatore C KuskoGermanyStephen Shaw NEW
Aditya N MorascaUnited KingdomAsiya Javayant QUALIFIED
Ashley R IturbideAustraliaXuxue Feng UNQUALIFIED
Leon B RulapaughAustraliaAsiya Javayant PROPOSAL
Rodrigues I KolmetzAustraliaAmy Elsner NEGOTIATION
Jeanfrancois M AlbaresIndiaAsiya Javayant NEW
Adams O PoquetteRussiaStephen Shaw RENEWAL
Costa Q CampainItalyElwin Sharvill RENEWAL
Murillo B FerenczBrazilStephen Shaw NEW
Rodrigues H IturbideRussiaXuxue Feng NEW
Mayumi S ChuiBrazilBernardo Dominic NEGOTIATION
Ricardo Y SchemmerArgentinaXuxue Feng PROPOSAL
Jennifer F VocelkaBrazilIvan Magalhaes UNQUALIFIED
Jeanfrancois I CaudyFranceOnyama Limba UNQUALIFIED
Octavia U GlickCanadaStephen Shaw PROPOSAL
Murillo Z WaycottAustraliaAmy Elsner RENEWAL
Mayumi M VocelkaGermanyIvan Magalhaes UNQUALIFIED
Darci B WhobreyGermanyStephen Shaw PROPOSAL
Leon G FerenczJapanXuxue Feng NEW
Leja Z MaletGermanyIoni Bowcher QUALIFIED
Costa C AmigonRussiaIvan Magalhaes RENEWAL
Smith I PerinUnited KingdomStephen Shaw NEGOTIATION
Aruna U MorascaBrazilXuxue Feng PROPOSAL
Emily S KolmetzJapanStephen Shaw NEGOTIATION
Mujtaba S SergiItalyAmy Elsner NEW
Adams N OldroydFranceBernardo Dominic UNQUALIFIED
Silvio H SchemmerFranceIoni Bowcher QUALIFIED
Claire F FerenczArgentinaXuxue Feng NEGOTIATION
Smith O FollerIndiaXuxue Feng NEGOTIATION
Smith X StockhamSpainAsiya Javayant UNQUALIFIED
Kaitlin P TollnerCanadaAmy Elsner UNQUALIFIED
Smith K AlbaresGermanyElwin Sharvill RENEWAL
Murillo L NestleRussiaElwin Sharvill QUALIFIED
Deepesh H PaprockiIndiaAnna Fali RENEWAL
Kadeem Q CaldareraArgentinaAmy Elsner UNQUALIFIED
Misaki R NickaUnited KingdomIoni Bowcher PROPOSAL
Leja M BologniaAustraliaElwin Sharvill PROPOSAL
Frozen Columns
Name
Kadeem M Malet
Maria S Chui
Chavez W Iturbide
Jennifer R Malet
Clifford M Stockham
Jennifer I Briddick
Nicolas Y Poquette
Octavia Q Ferencz
Smith P Stockham
Adams L Vocelka
Maisha T Amigon
Octavia E Doe
Aruna U Paprocki
Misaki B Ostrosky
Maria W Whobrey
Leja C Shinko
Isabel I Nestle
Johnson E Stockham
Jennifer G Nestle
Rodrigues H Kolmetz
Misaki L Maclead
Silvio W Inouye
Clifford D Morasca
Misaki X Caudy
Ricardo C Ferencz
Alejandro P Dilliard
Rodrigues W Shinko
Aruna C Darakjy
Isabel Q Waycott
Salvatore R Marrier
Wickens X Doe
Kaitlin T Royster
Tony B Caudy
Isabel Z Maclead
Leja J Whobrey
Murillo T Iturbide
Jefferson C Butt
Claire G Briddick
Juan I Briddick
Mujtaba Q Wieser
Chavez M Marrier
Clifford Q Royster
Mayumi C Stockham
Faith S Tollner
Faith D Gillian
Johnson Z Flosi
Jennifer Y Ferencz
Misaki Q Rulapaugh
Smith K Royster
Ivar D Rim
IdCountryDate
1000Spain2024-04-19
1001Germany2024-04-19
1002Canada2024-04-18
1003United Kingdom2024-03-31
1004Italy2024-04-12
1005France2024-04-22
1006Brazil2024-04-05
1007India2024-04-21
1008Canada2024-04-16
1009France2024-04-16
1010Australia2024-04-08
1011Russia2024-04-21
1012Russia2024-04-04
1013Italy2024-04-10
1014Spain2024-04-05
1015Russia2024-04-25
1016India2024-04-13
1017France2024-04-01
1018Germany2024-04-05
1019Brazil2024-04-06
1020Brazil2024-04-03
1021Germany2024-04-21
1022Germany2024-03-31
1023Spain2024-04-22
1024Russia2024-03-30
1025Russia2024-04-26
1026Japan2024-04-14
1027Germany2024-03-29
1028Italy2024-04-09
1029Brazil2024-04-12
1030Italy2024-04-05
1031Russia2024-04-04
1032Brazil2024-04-04
1033Argentina2024-04-23
1034Spain2024-04-08
1035Spain2024-04-09
1036Brazil2024-03-28
1037United Kingdom2024-04-18
1038France2024-04-09
1039United Kingdom2024-04-19
1040France2024-04-06
1041Australia2024-04-13
1042Japan2024-04-24
1043Argentina2024-04-16
1044Germany2024-04-02
1045Spain2024-04-08
1046Australia2024-04-08
1047United Kingdom2024-04-23
1048Germany2024-04-03
1049Australia2024-04-20

On-Demand Data

NameIdCountryDate
Aditya U Whobrey1000India2024-04-06
Salvatore P Paprocki1001Canada2024-03-30
Greenwood Z Darakjy1002Argentina2024-04-18
Mujtaba H Malet1003Argentina2024-04-04
Kadeem L Marrier1004United Kingdom2024-04-11
Cody Y Saylors1005France2024-04-15
Jones W Amigon1006Spain2024-04-01
Greenwood C Venere1007Germany2024-04-07
Ashley P Glick1008Italy2024-04-11
James M Albares1009Germany2024-04-07
Chavez C Garufi1010Canada2024-04-21
Jefferson Z Waycott1011Australia2024-04-05
Ashley C Gillian1012Canada2024-03-30
Ashley Z Rim1013Germany2024-04-06
Misaki J Malet1014Australia2024-04-15
Faith T Stenseth1015Brazil2024-04-26
Salvatore T Ferencz1016Argentina2024-04-23
Kadeem L Darakjy1017Italy2024-04-11
Octavia C Stenseth1018India2024-04-24
Ivar Z Vocelka1019Russia2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair F MacleadItalyIoni Bowcher NEGOTIATION
Julie W DilliardIndiaAmy Elsner NEW
Darci K VocelkaRussiaIoni Bowcher UNQUALIFIED
Aruna A NestleAustraliaIoni Bowcher PROPOSAL
Izzy W FerenczGermanyOnyama Limba QUALIFIED
Jefferson B SchemmerSpainOnyama Limba NEW
Ricardo X DilliardItalyAnna Fali UNQUALIFIED
Aditya C FerenczGermanyElwin Sharvill NEW
Johnson N CaudyFranceStephen Shaw NEW
Leja K AmigonArgentinaIvan Magalhaes QUALIFIED
Cody Z PerinUnited KingdomStephen Shaw NEW
Isabel J DoeBrazilXuxue Feng NEW
Aditya G BriddickArgentinaBernardo Dominic UNQUALIFIED
Ivar D MaletJapanAsiya Javayant UNQUALIFIED
Juan M RoysterIndiaAmy Elsner PROPOSAL
Emily B IturbideJapanElwin Sharvill PROPOSAL
Faith E MacleadFranceXuxue Feng NEGOTIATION
Francesco W FerenczRussiaXuxue Feng NEW
Arvin P WhobreyAustraliaElwin Sharvill NEGOTIATION
Ivar O CaudyUnited KingdomAsiya Javayant PROPOSAL
Rodrigues K SergiItalyAnna Fali RENEWAL
Smith N RimRussiaAsiya Javayant PROPOSAL
Antonio T VenereRussiaElwin Sharvill RENEWAL
Aika D SergiItalyAnna Fali NEW
Smith L DoeRussiaXuxue Feng NEGOTIATION
David M ButtAustraliaElwin Sharvill NEGOTIATION
Salvatore K CaldareraArgentinaIvan Magalhaes UNQUALIFIED
Costa R CampainIndiaOnyama Limba QUALIFIED
Antonio P MacleadGermanyAnna Fali PROPOSAL
Adams F MarrierAustraliaXuxue Feng NEGOTIATION
Leja K ChuiRussiaAmy Elsner UNQUALIFIED
Antonio R OstroskyArgentinaStephen Shaw NEW
Ivar S WaycottAustraliaAsiya Javayant NEGOTIATION
Kaitlin A ShinkoGermanyAnna Fali RENEWAL
Sinclair J CaldareraGermanyStephen Shaw QUALIFIED
Izzy W MaletArgentinaAsiya Javayant QUALIFIED
David F IturbideCanadaIvan Magalhaes PROPOSAL
Kaitlin V SaylorsAustraliaXuxue Feng NEGOTIATION
Rodrigues W KuskoCanadaIoni Bowcher NEGOTIATION
Johnson K MarrierIndiaIvan Magalhaes UNQUALIFIED

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