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
Munro K RutaFranceAnna Fali UNQUALIFIED
Maria G IturbideGermanyIoni Bowcher PROPOSAL
Julie V CaldareraAustraliaIoni Bowcher RENEWAL
James J GarufiArgentinaStephen Shaw UNQUALIFIED
Morrow I MarrierIndiaIvan Magalhaes QUALIFIED
Cody Z SlusarskiFranceOnyama Limba PROPOSAL
Mujtaba M WieserSpainOnyama Limba PROPOSAL
Maisha S VenereArgentinaAmy Elsner NEW
Aruna V SaylorsItalyAsiya Javayant UNQUALIFIED
Octavia M MorascaFranceAsiya Javayant UNQUALIFIED
Sinclair J GarufiFranceBernardo Dominic NEGOTIATION
Jones W StensethIndiaAsiya Javayant NEGOTIATION
Juan X NickaJapanIvan Magalhaes NEW
Munro B ButtBrazilBernardo Dominic PROPOSAL
Izzy W WieserIndiaIoni Bowcher QUALIFIED
Claire I FollerIndiaIvan Magalhaes UNQUALIFIED
Faith O OldroydAustraliaBernardo Dominic NEGOTIATION
Jeanfrancois V WieserUnited KingdomAmy Elsner NEW
Cody S GauchoIndiaElwin Sharvill UNQUALIFIED
Wickens G MacleadBrazilBernardo Dominic QUALIFIED
Sinclair J CampainSpainOnyama Limba NEGOTIATION
Silvio K StockhamGermanyOnyama Limba RENEWAL
Faith H MaletAustraliaAsiya Javayant QUALIFIED
Salvatore O RimJapanElwin Sharvill RENEWAL
Leon L VenereRussiaBernardo Dominic QUALIFIED
Izzy Y SergiBrazilElwin Sharvill NEGOTIATION
Clifford A MorascaCanadaAsiya Javayant RENEWAL
Darci X KolmetzSpainOnyama Limba UNQUALIFIED
Julie U InouyeCanadaIvan Magalhaes UNQUALIFIED
Wickens K RimFranceAmy Elsner NEW
Rodrigues M GillianItalyAmy Elsner RENEWAL
Maria V GauchoAustraliaAnna Fali NEW
Kaitlin F SchemmerItalyOnyama Limba NEGOTIATION
Ivar Y VenereArgentinaBernardo Dominic NEW
Mayumi P NestleArgentinaAsiya Javayant QUALIFIED
Clifford T VenereJapanIvan Magalhaes PROPOSAL
Stacey V MorascaArgentinaElwin Sharvill RENEWAL
Aika B FlosiRussiaIvan Magalhaes UNQUALIFIED
Johnson V MacleadItalyOnyama Limba NEGOTIATION
Leon G KolmetzGermanyOnyama Limba UNQUALIFIED
Jefferson J BowleyIndiaAnna Fali NEGOTIATION
Clifford M BriddickSpainOnyama Limba UNQUALIFIED
Greenwood B RutaUnited KingdomStephen Shaw QUALIFIED
Rodrigues C NestleArgentinaOnyama Limba NEGOTIATION
Aika T FigeroaUnited KingdomXuxue Feng NEW
Antonio R NickaGermanyXuxue Feng QUALIFIED
Maisha W PaprockiItalyAnna Fali UNQUALIFIED
Emily S SaylorsRussiaStephen Shaw UNQUALIFIED
Wickens F WaycottBrazilElwin Sharvill QUALIFIED
Izzy L StensethIndiaIvan Magalhaes PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Stacey J CaldareraIndiaIoni Bowcher QUALIFIED
Mayumi U VocelkaFranceAsiya Javayant QUALIFIED
Leja I WieserAustraliaAnna Fali RENEWAL
Emily W StockhamJapanAnna Fali PROPOSAL
Silvio Q StensethItalyXuxue Feng UNQUALIFIED
Greenwood I NestleFranceElwin Sharvill QUALIFIED
Clifford H FigeroaCanadaXuxue Feng RENEWAL
Jennifer Z CampainFranceBernardo Dominic NEW
Aika Q KolmetzArgentinaIoni Bowcher QUALIFIED
Tony T GauchoIndiaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo U CampainGermany2024-04-12King, Christopher A Esq NEW85Asiya Javayant
1001Kadeem L FerenczRussia2024-04-26King, Christopher A Esq QUALIFIED0Ivan Magalhaes
1002Sinclair W KuskoAustralia2024-04-22Chanay, Jeffrey A Esq NEGOTIATION16Asiya Javayant
1003Juan V StockhamRussia2024-03-30Truhlar And Truhlar Attys NEGOTIATION50Onyama Limba
1004Chavez W PaprockiAustralia2024-03-30Chapman, Ross E Esq NEGOTIATION90Asiya Javayant
1005Stacey F GauchoRussia2024-04-08Commercial Press UNQUALIFIED25Ivan Magalhaes
1006Mayumi H BriddickBrazil2024-04-07Buckley Miller Wright NEGOTIATION58Xuxue Feng
1007Sinclair F DoeIndia2024-04-18Dorl, James J Esq UNQUALIFIED11Ioni Bowcher
1008Ashley K SergiArgentina2024-04-15Truhlar And Truhlar Attys QUALIFIED26Amy Elsner
1009Juan X FollerCanada2024-04-24Rousseaux, Michael Esq QUALIFIED81Onyama Limba
1010Isabel G RulapaughItaly2024-04-05Benton, John B Jr QUALIFIED57Ioni Bowcher
1011Stacey Q WhobreyItaly2024-04-19Feltz Printing Service RENEWAL64Amy Elsner
1012Salvatore Y PoquetteIndia2024-04-02Truhlar And Truhlar Attys UNQUALIFIED79Bernardo Dominic
1013Silvio R GillianItaly2024-04-06Feltz Printing Service QUALIFIED76Bernardo Dominic
1014Aika V TollnerItaly2024-04-05Morlong Associates NEGOTIATION39Elwin Sharvill
1015Mujtaba T InouyeArgentina2024-04-11Benton, John B Jr RENEWAL16Elwin Sharvill
1016Francesco B PoquetteItaly2024-04-07Printing Dimensions NEGOTIATION33Xuxue Feng
1017Ashley T AmigonSpain2024-04-03Feiner Bros UNQUALIFIED89Xuxue Feng
1018Morrow X AlbaresFrance2024-04-19Rangoni Of Florence NEW32Ioni Bowcher
1019Darci Z ShinkoArgentina2024-04-27Commercial Press QUALIFIED81Anna Fali
1020Darci C RutaCanada2024-04-06Rousseaux, Michael Esq NEW14Ioni Bowcher
1021Rodrigues H GauchoUnited Kingdom2024-04-12Chanay, Jeffrey A Esq NEGOTIATION99Xuxue Feng
1022James G VenereBrazil2024-04-26Feiner Bros UNQUALIFIED9Bernardo Dominic
1023Adams V RulapaughCanada2024-04-17Rousseaux, Michael Esq UNQUALIFIED75Bernardo Dominic
1024Mujtaba D FigeroaGermany2024-04-22Dorl, James J Esq UNQUALIFIED57Xuxue Feng
1025Mayumi U SlusarskiSpain2024-04-11Truhlar And Truhlar Attys UNQUALIFIED53Stephen Shaw
1026Munro L RutaUnited Kingdom2024-03-30Benton, John B Jr PROPOSAL25Bernardo Dominic
1027Antonio N NickaCanada2024-03-30Chemel, James L Cpa QUALIFIED85Stephen Shaw
1028Aika M SergiGermany2024-04-14Buckley Miller Wright NEW68Elwin Sharvill
1029Deepesh I PaprockiAustralia2024-04-09Truhlar And Truhlar Attys PROPOSAL19Asiya Javayant
1030Maria W BologniaArgentina2024-03-31Morlong Associates PROPOSAL84Stephen Shaw
1031Mayumi C MaletFrance2024-04-03Chemel, James L Cpa QUALIFIED21Ivan Magalhaes
1032Maria G GarufiRussia2024-04-27Truhlar And Truhlar Attys QUALIFIED12Elwin Sharvill
1033Misaki O InouyeJapan2024-04-11Feltz Printing Service NEGOTIATION20Xuxue Feng
1034Jones I SaylorsIndia2024-04-27King, Christopher A Esq RENEWAL30Stephen Shaw
1035Octavia D GillianJapan2024-04-05Feltz Printing Service QUALIFIED34Anna Fali
1036Chavez Y DarakjyUnited Kingdom2024-04-27Buckley Miller Wright UNQUALIFIED37Bernardo Dominic
1037Izzy F SlusarskiBrazil2024-03-30Rousseaux, Michael Esq NEGOTIATION71Elwin Sharvill
1038Mayumi M ChuiAustralia2024-04-22Truhlar And Truhlar Attys QUALIFIED62Amy Elsner
1039Murillo U VocelkaItaly2024-04-23Feiner Bros RENEWAL2Bernardo Dominic
1040Kadeem C KolmetzJapan2024-04-22Dorl, James J Esq PROPOSAL83Ivan Magalhaes
1041Munro S MaletAustralia2024-04-24Benton, John B Jr NEGOTIATION86Anna Fali
1042James A VocelkaAustralia2024-04-03Feltz Printing Service RENEWAL0Onyama Limba
1043David C WaycottIndia2024-04-12King, Christopher A Esq UNQUALIFIED57Amy Elsner
1044Salvatore V GillianFrance2024-04-05Dorl, James J Esq QUALIFIED55Ivan Magalhaes
1045Alejandro M VocelkaRussia2024-04-20Feiner Bros RENEWAL55Amy Elsner
1046Johnson N FollerBrazil2024-04-14Feiner Bros UNQUALIFIED78Onyama Limba
1047Silvio K VocelkaJapan2024-04-28Chemel, James L Cpa QUALIFIED43Elwin Sharvill
1048Johnson I ShinkoFrance2024-04-15Feiner Bros UNQUALIFIED8Xuxue Feng
1049Rodrigues E KuskoRussia2024-03-31Benton, John B Jr QUALIFIED74Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Faith E StockhamAustraliaAnna Fali NEW
Isabel F NickaFranceXuxue Feng UNQUALIFIED
Julie J FollerBrazilAmy Elsner PROPOSAL
Francesco T PerinCanadaAnna Fali UNQUALIFIED
Claire M RimArgentinaBernardo Dominic NEW
Adams T GillianBrazilOnyama Limba RENEWAL
Emily V MorascaCanadaAmy Elsner PROPOSAL
Maria E BowleyBrazilXuxue Feng NEW
Deepesh Y GillianFranceOnyama Limba RENEWAL
Aruna Z GillianItalyBernardo Dominic QUALIFIED
Jeanfrancois U FollerItalyElwin Sharvill RENEWAL
Ivar N MaletUnited KingdomAsiya Javayant QUALIFIED
Silvio O NestleJapanStephen Shaw NEGOTIATION
Leja D WieserUnited KingdomAsiya Javayant NEGOTIATION
James I RulapaughFranceAsiya Javayant NEW
Deepesh A OldroydFranceAsiya Javayant QUALIFIED
Antonio K InouyeSpainIoni Bowcher UNQUALIFIED
Maisha E AmigonGermanyAnna Fali PROPOSAL
Leon F BowleyItalyElwin Sharvill QUALIFIED
Maisha Y KolmetzBrazilOnyama Limba UNQUALIFIED
Jennifer L VocelkaFranceBernardo Dominic NEGOTIATION
Francesco W AlbaresRussiaBernardo Dominic PROPOSAL
Jefferson K BologniaArgentinaAmy Elsner UNQUALIFIED
Ricardo M ShinkoJapanBernardo Dominic PROPOSAL
Octavia S ButtAustraliaOnyama Limba UNQUALIFIED
Jefferson S RoysterUnited KingdomXuxue Feng NEGOTIATION
Emily M AlbaresGermanyBernardo Dominic NEW
Johnson X PoquetteIndiaOnyama Limba RENEWAL
Leon R GauchoBrazilBernardo Dominic NEW
Aditya P GlickUnited KingdomOnyama Limba NEGOTIATION
Murillo A InouyeCanadaElwin Sharvill UNQUALIFIED
Antonio P SergiBrazilBernardo Dominic UNQUALIFIED
Claire R MarrierJapanAsiya Javayant QUALIFIED
Salvatore W InouyeSpainAmy Elsner PROPOSAL
Ricardo P NestleGermanyAnna Fali QUALIFIED
Cody I GauchoFranceElwin Sharvill RENEWAL
Aika H SaylorsCanadaBernardo Dominic NEW
Leon C GarufiGermanyBernardo Dominic UNQUALIFIED
Francesco C BologniaBrazilIvan Magalhaes QUALIFIED
Aditya W FerenczItalyIvan Magalhaes NEGOTIATION
Maisha U FollerRussiaXuxue Feng PROPOSAL
Mayumi S BowleyArgentinaAsiya Javayant RENEWAL
Izzy H InouyeSpainStephen Shaw QUALIFIED
Aika M ChuiItalyAsiya Javayant NEGOTIATION
Claire M ChuiGermanyIoni Bowcher NEGOTIATION
Nicolas J GlickItalyAsiya Javayant PROPOSAL
Tony U CaldareraFranceXuxue Feng UNQUALIFIED
Julie Z NickaFranceIvan Magalhaes NEGOTIATION
Costa N PoquetteSpainXuxue Feng RENEWAL
Jennifer O StensethRussiaAmy Elsner RENEWAL
Frozen Columns
Name
Tony W Kolmetz
Maisha P Stockham
Claire N Rim
Johnson V Bowley
Julie B Rulapaugh
Costa R Flosi
Greenwood P Figeroa
Rodrigues Q Marrier
Smith U Slusarski
Murillo O Darakjy
Silvio L Stenseth
Murillo O Shinko
Kaitlin Y Saylors
Kaitlin T Campain
Munro U Saylors
Aruna R Bowley
David Q Wieser
Murillo O Nestle
Octavia P Rim
Julie Y Malet
Faith U Garufi
Jeanfrancois U Morasca
David V Doe
Jones H Figeroa
Mujtaba K Caudy
Greenwood V Nestle
Octavia S Waycott
Murillo B Schemmer
James H Dilliard
Juan K Perin
Aika V Ostrosky
Aika M Shinko
Jones C Whobrey
Maria G Malet
Maria Q Glick
Wickens S Ostrosky
Morrow H Kusko
Maria F Briddick
Octavia K Figeroa
Maria N Nicka
Claire I Darakjy
Jennifer D Rulapaugh
Leon G Stenseth
Leja N Schemmer
Octavia K Vocelka
Claire D Malet
Kaitlin J Amigon
Adams B Stenseth
Ricardo U Foller
Aika K Ostrosky
IdCountryDate
1000India2024-04-03
1001Australia2024-04-13
1002Argentina2024-04-19
1003Canada2024-04-09
1004Russia2024-04-19
1005Russia2024-04-24
1006United Kingdom2024-04-27
1007France2024-04-03
1008India2024-04-07
1009France2024-03-31
1010Canada2024-04-22
1011Canada2024-04-17
1012Germany2024-04-27
1013India2024-04-03
1014Australia2024-04-24
1015Brazil2024-04-20
1016Brazil2024-04-15
1017United Kingdom2024-04-26
1018Argentina2024-04-07
1019Spain2024-04-10
1020Australia2024-04-15
1021Spain2024-04-06
1022Argentina2024-04-08
1023France2024-04-26
1024India2024-04-02
1025Japan2024-04-11
1026Japan2024-04-07
1027Russia2024-04-16
1028Italy2024-04-08
1029Argentina2024-04-02
1030Russia2024-04-03
1031India2024-04-25
1032Australia2024-04-13
1033Russia2024-04-19
1034Argentina2024-04-22
1035France2024-04-18
1036Japan2024-04-16
1037Canada2024-04-20
1038Canada2024-04-10
1039Australia2024-04-20
1040Brazil2024-04-23
1041Russia2024-04-16
1042United Kingdom2024-04-11
1043Australia2024-04-04
1044France2024-04-13
1045Russia2024-04-20
1046Italy2024-04-04
1047United Kingdom2024-04-17
1048Spain2024-03-30
1049Spain2024-03-30

On-Demand Data

NameIdCountryDate
Julie J Bowley1000Argentina2024-03-31
James U Campain1001Argentina2024-03-30
Darci L Foller1002Italy2024-04-28
Isabel H Butt1003Argentina2024-04-24
Cody S Gillian1004Russia2024-04-18
Munro O Schemmer1005Russia2024-04-12
Misaki M Rulapaugh1006Spain2024-04-25
Maria V Sergi1007Italy2024-04-27
Mujtaba A Butt1008Russia2024-04-17
Johnson G Marrier1009Japan2024-04-22
Juan M Darakjy1010Argentina2024-03-31
Morrow W Kusko1011United Kingdom2024-04-26
Murillo U Garufi1012India2024-04-23
Francesco R Albares1013France2024-04-05
Costa K Vocelka1014India2024-04-15
Faith W Caudy1015Australia2024-04-14
Julie Z Albares1016Japan2024-04-17
Darci H Whobrey1017Argentina2024-04-21
Clifford T Gillian1018Italy2024-04-17
Costa U Marrier1019Italy2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Wickens A NickaBrazilAsiya Javayant PROPOSAL
Emily E BowleyAustraliaBernardo Dominic NEW
Costa B CaudyUnited KingdomAmy Elsner NEGOTIATION
Mujtaba Q MorascaItalyIvan Magalhaes UNQUALIFIED
Kadeem O DoeArgentinaElwin Sharvill PROPOSAL
Leon C VocelkaJapanElwin Sharvill NEW
Mujtaba E RulapaughAustraliaIvan Magalhaes NEW
Maria V IturbideCanadaIoni Bowcher NEW
Claire K AlbaresCanadaElwin Sharvill QUALIFIED
Johnson N MorascaRussiaIvan Magalhaes QUALIFIED
Antonio P KuskoGermanyBernardo Dominic PROPOSAL
Misaki Q MarrierSpainElwin Sharvill PROPOSAL
Francesco H InouyeUnited KingdomOnyama Limba UNQUALIFIED
Arvin D IturbideUnited KingdomBernardo Dominic QUALIFIED
Stacey X FollerBrazilIvan Magalhaes NEW
Kadeem D StockhamUnited KingdomIvan Magalhaes PROPOSAL
Morrow W OldroydCanadaXuxue Feng PROPOSAL
Kaitlin M IturbideCanadaOnyama Limba NEGOTIATION
Jones Q SaylorsGermanyIoni Bowcher UNQUALIFIED
Deepesh Z MorascaAustraliaAmy Elsner PROPOSAL
Rodrigues J ButtFranceAsiya Javayant NEW
Kadeem N MaletGermanyElwin Sharvill QUALIFIED
Kadeem J GauchoSpainIoni Bowcher NEGOTIATION
Leon T NestleGermanyAsiya Javayant QUALIFIED
Adams V GarufiJapanXuxue Feng PROPOSAL
Kaitlin H SaylorsFranceElwin Sharvill RENEWAL
Adams V IturbideRussiaOnyama Limba NEGOTIATION
Wickens T DilliardCanadaElwin Sharvill UNQUALIFIED
Antonio K KuskoAustraliaAsiya Javayant NEW
Faith V FollerGermanyBernardo Dominic UNQUALIFIED
Smith U GauchoAustraliaAsiya Javayant QUALIFIED
Kaitlin P OldroydCanadaXuxue Feng QUALIFIED
Clifford H NickaIndiaAnna Fali PROPOSAL
Cody O RutaArgentinaAmy Elsner NEW
Ivar H BriddickAustraliaIvan Magalhaes QUALIFIED
Kaitlin S SaylorsArgentinaAmy Elsner NEW
Maria F PerinIndiaIvan Magalhaes UNQUALIFIED
Cody X AlbaresFranceIvan Magalhaes PROPOSAL
Salvatore Y AmigonArgentinaAsiya Javayant NEW
Tony W ButtRussiaBernardo Dominic 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>