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
Ashley D GillianCanadaBernardo Dominic PROPOSAL
Mujtaba R NickaJapanAsiya Javayant PROPOSAL
Smith C SaylorsArgentinaStephen Shaw QUALIFIED
Julie B BowleyAustraliaStephen Shaw QUALIFIED
Aruna U SergiItalyStephen Shaw NEGOTIATION
Aruna R BowleyBrazilAnna Fali QUALIFIED
Aika B ButtGermanyOnyama Limba NEW
Jennifer Y MarrierBrazilOnyama Limba PROPOSAL
Wickens Y GlickRussiaElwin Sharvill UNQUALIFIED
Jones M InouyeCanadaIoni Bowcher UNQUALIFIED
Francesco X RutaSpainBernardo Dominic RENEWAL
Claire V PerinItalyIoni Bowcher QUALIFIED
Claire V FlosiSpainIvan Magalhaes NEGOTIATION
Aika P GlickIndiaAnna Fali UNQUALIFIED
Claire Y RimSpainAmy Elsner QUALIFIED
Stacey T AmigonRussiaIvan Magalhaes NEGOTIATION
Faith Q VenereRussiaAsiya Javayant PROPOSAL
Kaitlin F MacleadFranceIvan Magalhaes UNQUALIFIED
Smith A OstroskyUnited KingdomAmy Elsner NEGOTIATION
Mayumi Z GlickAustraliaBernardo Dominic NEGOTIATION
Jefferson P CaudyBrazilAnna Fali QUALIFIED
Octavia L ChuiBrazilBernardo Dominic QUALIFIED
Wickens X OstroskyArgentinaOnyama Limba UNQUALIFIED
Tony R OldroydRussiaIvan Magalhaes NEGOTIATION
Darci D DilliardAustraliaIoni Bowcher QUALIFIED
Chavez V StensethArgentinaAmy Elsner NEW
Munro H NestleGermanyIoni Bowcher NEGOTIATION
Stacey J CaudyItalyElwin Sharvill NEGOTIATION
Munro E PerinFranceIvan Magalhaes NEGOTIATION
Chavez Q RoysterGermanyIvan Magalhaes QUALIFIED
Johnson H SchemmerArgentinaIvan Magalhaes RENEWAL
Claire Q SaylorsJapanIvan Magalhaes NEGOTIATION
Silvio U DoeArgentinaBernardo Dominic UNQUALIFIED
Arvin E NestleJapanIvan Magalhaes NEW
Silvio B SchemmerGermanyIvan Magalhaes NEGOTIATION
Alejandro J GlickCanadaAmy Elsner QUALIFIED
Jeanfrancois I GarufiUnited KingdomBernardo Dominic NEW
Antonio C WhobreyIndiaStephen Shaw NEW
Ivar R KuskoRussiaElwin Sharvill UNQUALIFIED
Izzy S RoysterJapanIvan Magalhaes NEW
Mayumi H VocelkaBrazilAmy Elsner RENEWAL
Isabel F WaycottCanadaOnyama Limba NEGOTIATION
Deepesh H BologniaUnited KingdomAmy Elsner NEW
Izzy L CaudyFranceXuxue Feng NEW
Stacey B FollerSpainOnyama Limba QUALIFIED
Izzy M RutaItalyXuxue Feng UNQUALIFIED
Aika I VocelkaRussiaElwin Sharvill NEW
Alejandro K PaprockiSpainElwin Sharvill RENEWAL
Rodrigues J RutaFranceStephen Shaw UNQUALIFIED
Chavez W SlusarskiRussiaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Isabel H CaudyCanadaAmy Elsner RENEWAL
Sinclair G InouyeUnited KingdomOnyama Limba PROPOSAL
Arvin C MorascaJapanAmy Elsner NEGOTIATION
Jones H MaletCanadaXuxue Feng QUALIFIED
Munro S IturbideCanadaIoni Bowcher NEW
Tony Z WieserCanadaOnyama Limba RENEWAL
Jennifer T MacleadArgentinaIoni Bowcher UNQUALIFIED
Greenwood I DoeAustraliaElwin Sharvill NEW
Jennifer M SchemmerAustraliaAmy Elsner NEGOTIATION
Munro B SlusarskiBrazilStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Misaki Y MaletGermany2024-04-13Benton, John B Jr UNQUALIFIED3Amy Elsner
1001Murillo Y VocelkaFrance2024-04-09Buckley Miller Wright NEGOTIATION6Asiya Javayant
1002Morrow O MorascaCanada2024-04-24Rangoni Of Florence PROPOSAL82Ioni Bowcher
1003Sinclair H ShinkoFrance2024-04-11Dorl, James J Esq NEGOTIATION25Xuxue Feng
1004Claire D CaldareraFrance2024-03-31Buckley Miller Wright PROPOSAL89Onyama Limba
1005Darci L VocelkaAustralia2024-04-20Feiner Bros QUALIFIED57Asiya Javayant
1006Jones U PaprockiBrazil2024-04-12Feltz Printing Service PROPOSAL68Amy Elsner
1007Adams W IturbideRussia2024-04-10Chapman, Ross E Esq RENEWAL69Ioni Bowcher
1008Ashley B DarakjyAustralia2024-04-02Truhlar And Truhlar Attys NEW65Amy Elsner
1009Munro K KolmetzGermany2024-04-20Chapman, Ross E Esq QUALIFIED43Ioni Bowcher
1010Murillo B OstroskyCanada2024-04-15Chanay, Jeffrey A Esq UNQUALIFIED16Onyama Limba
1011Sinclair J FollerAustralia2024-04-09Chemel, James L Cpa NEW38Xuxue Feng
1012Francesco P FollerAustralia2024-04-15Chapman, Ross E Esq QUALIFIED49Bernardo Dominic
1013Jefferson H VocelkaCanada2024-04-21Rangoni Of Florence UNQUALIFIED9Anna Fali
1014Juan J CaldareraSpain2024-03-29Chemel, James L Cpa QUALIFIED99Xuxue Feng
1015Murillo F GauchoUnited Kingdom2024-04-10Printing Dimensions NEW59Amy Elsner
1016Jones S BriddickSpain2024-04-05King, Christopher A Esq PROPOSAL53Asiya Javayant
1017Murillo B StensethGermany2024-04-05Truhlar And Truhlar Attys NEGOTIATION49Anna Fali
1018Aruna Y VenereUnited Kingdom2024-04-01Buckley Miller Wright NEW7Elwin Sharvill
1019Mayumi E SlusarskiJapan2024-04-11Feltz Printing Service QUALIFIED82Ioni Bowcher
1020Izzy Q BriddickJapan2024-03-29Truhlar And Truhlar Attys UNQUALIFIED24Amy Elsner
1021Mujtaba C MarrierIndia2024-04-03Chemel, James L Cpa NEW60Xuxue Feng
1022Jefferson O IturbideItaly2024-04-15Truhlar And Truhlar Attys NEW66Bernardo Dominic
1023Emily B OstroskyAustralia2024-04-12Printing Dimensions UNQUALIFIED69Ioni Bowcher
1024Cody L GillianArgentina2024-04-21King, Christopher A Esq PROPOSAL69Stephen Shaw
1025Sinclair P SlusarskiGermany2024-04-11Buckley Miller Wright QUALIFIED85Elwin Sharvill
1026Rodrigues R DarakjyCanada2024-04-08Rousseaux, Michael Esq RENEWAL91Asiya Javayant
1027Rodrigues E DilliardItaly2024-04-09Truhlar And Truhlar Attys QUALIFIED33Stephen Shaw
1028Aruna A AlbaresRussia2024-03-30Chemel, James L Cpa NEW13Ioni Bowcher
1029Mujtaba O PoquetteJapan2024-03-31Benton, John B Jr NEW93Bernardo Dominic
1030Stacey K PerinRussia2024-04-20Truhlar And Truhlar Attys RENEWAL68Bernardo Dominic
1031Julie F StensethSpain2024-04-16Rangoni Of Florence UNQUALIFIED14Asiya Javayant
1032Deepesh H MacleadFrance2024-03-26Buckley Miller Wright RENEWAL70Asiya Javayant
1033Johnson M KolmetzIndia2024-04-03Benton, John B Jr RENEWAL34Asiya Javayant
1034Chavez F MacleadBrazil2024-04-03King, Christopher A Esq NEGOTIATION28Asiya Javayant
1035Ivar T AmigonItaly2024-04-16Morlong Associates NEGOTIATION36Xuxue Feng
1036Cody O PoquetteGermany2024-04-01Feltz Printing Service PROPOSAL73Onyama Limba
1037Ricardo N BowleyItaly2024-03-30Chemel, James L Cpa NEW5Onyama Limba
1038Murillo N KuskoGermany2024-04-11Buckley Miller Wright NEW26Ioni Bowcher
1039Faith R RoysterIndia2024-04-14Chanay, Jeffrey A Esq NEW92Bernardo Dominic
1040Claire P ChuiJapan2024-04-10King, Christopher A Esq PROPOSAL24Ivan Magalhaes
1041Stacey S RimArgentina2024-03-29Morlong Associates NEGOTIATION48Ioni Bowcher
1042Tony Y MarrierUnited Kingdom2024-04-23Rangoni Of Florence PROPOSAL92Bernardo Dominic
1043Tony X FerenczRussia2024-04-24King, Christopher A Esq RENEWAL20Ivan Magalhaes
1044Claire L VenereFrance2024-03-27Chanay, Jeffrey A Esq RENEWAL92Xuxue Feng
1045Mujtaba K RimArgentina2024-03-30Commercial Press RENEWAL1Ioni Bowcher
1046Tony A MorascaJapan2024-04-15Chapman, Ross E Esq QUALIFIED93Bernardo Dominic
1047Izzy Z GillianJapan2024-04-03Benton, John B Jr RENEWAL46Ivan Magalhaes
1048Aruna Y SaylorsBrazil2024-03-28Dorl, James J Esq NEGOTIATION76Onyama Limba
1049Leja L SergiArgentina2024-04-02Printing Dimensions QUALIFIED81Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Ivar D GillianRussiaIoni Bowcher UNQUALIFIED
Claire T CampainJapanStephen Shaw UNQUALIFIED
Jennifer F PaprockiGermanyIvan Magalhaes NEW
Deepesh Z MarrierUnited KingdomAsiya Javayant UNQUALIFIED
Izzy D CampainJapanAmy Elsner RENEWAL
Wickens F WieserBrazilElwin Sharvill NEGOTIATION
Mayumi H PoquetteBrazilXuxue Feng PROPOSAL
Jeanfrancois S NickaBrazilStephen Shaw NEW
Mayumi F RimItalyStephen Shaw NEGOTIATION
Jefferson G InouyeItalyIvan Magalhaes NEW
Emily M TollnerItalyAnna Fali NEW
Arvin R MacleadAustraliaAnna Fali NEGOTIATION
Izzy F StensethGermanyIoni Bowcher PROPOSAL
Aditya R BriddickItalyIvan Magalhaes QUALIFIED
Kaitlin I GillianRussiaAsiya Javayant RENEWAL
Chavez R FerenczSpainAnna Fali UNQUALIFIED
Kadeem C FollerRussiaAsiya Javayant UNQUALIFIED
David S GarufiUnited KingdomBernardo Dominic RENEWAL
Nicolas Z IturbideGermanyElwin Sharvill PROPOSAL
Johnson O GillianGermanyXuxue Feng UNQUALIFIED
Faith L PoquetteItalyAsiya Javayant UNQUALIFIED
Deepesh S MarrierAustraliaAsiya Javayant UNQUALIFIED
Mayumi E AmigonItalyXuxue Feng NEGOTIATION
Izzy J WaycottGermanyStephen Shaw QUALIFIED
Rodrigues C BriddickAustraliaAsiya Javayant NEW
Leja A RimArgentinaIvan Magalhaes NEW
Sinclair D VenereBrazilOnyama Limba NEGOTIATION
Nicolas R DarakjyUnited KingdomIoni Bowcher UNQUALIFIED
Munro C PerinJapanStephen Shaw QUALIFIED
Salvatore Q RutaJapanAsiya Javayant PROPOSAL
Morrow V KuskoFranceOnyama Limba PROPOSAL
Deepesh V BologniaItalyIoni Bowcher NEW
Cody U KuskoJapanAmy Elsner QUALIFIED
Munro S RimGermanyBernardo Dominic NEGOTIATION
Mujtaba Q DilliardJapanElwin Sharvill PROPOSAL
Alejandro G WaycottItalyStephen Shaw RENEWAL
Aditya M BowleyAustraliaAsiya Javayant PROPOSAL
Tony Y ChuiUnited KingdomOnyama Limba RENEWAL
Ricardo W BologniaItalyXuxue Feng QUALIFIED
Leon Y NickaJapanElwin Sharvill UNQUALIFIED
Deepesh Z TollnerFranceElwin Sharvill UNQUALIFIED
Aika X BologniaFranceAnna Fali RENEWAL
Jones M GarufiIndiaElwin Sharvill PROPOSAL
Adams C StensethCanadaXuxue Feng RENEWAL
Deepesh N DilliardItalyElwin Sharvill QUALIFIED
Chavez G TollnerCanadaIoni Bowcher NEGOTIATION
Stacey Y AlbaresSpainXuxue Feng NEGOTIATION
Silvio W SchemmerIndiaAmy Elsner NEW
Ivar G OldroydRussiaBernardo Dominic RENEWAL
Jones L ShinkoRussiaXuxue Feng UNQUALIFIED
Frozen Columns
Name
Maria X Inouye
Leja Q Inouye
Murillo L Malet
Stacey K Malet
Kadeem X Morasca
Greenwood U Dilliard
Cody A Waycott
Silvio N Waycott
Emily Q Vocelka
Clifford M Wieser
Kadeem O Malet
Jones V Schemmer
Ricardo A Wieser
Kadeem I Poquette
Jeanfrancois J Stenseth
Tony U Marrier
Aruna T Morasca
Ashley P Perin
Stacey T Inouye
Johnson E Vocelka
Adams T Glick
Smith K Figeroa
Aditya T Flosi
Leon K Bolognia
Rodrigues N Amigon
Nicolas T Whobrey
Morrow F Nicka
Alejandro W Venere
David A Chui
Arvin I Darakjy
Ivar D Butt
Ivar Q Foller
Murillo S Briddick
Emily K Marrier
James G Rim
Leja O Vocelka
Emily D Ostrosky
Greenwood C Schemmer
Greenwood W Nicka
Chavez I Amigon
Wickens P Doe
Kaitlin D Stenseth
Jefferson M Schemmer
Kadeem G Ruta
Ricardo O Marrier
Sinclair P Gaucho
Rodrigues N Gillian
Adams H Doe
David N Bowley
Jones G Malet
IdCountryDate
1000United Kingdom2024-04-11
1001India2024-04-03
1002Brazil2024-03-30
1003India2024-04-07
1004Brazil2024-04-13
1005India2024-04-24
1006Russia2024-03-26
1007United Kingdom2024-03-30
1008Australia2024-04-10
1009Argentina2024-04-17
1010Germany2024-04-20
1011Russia2024-04-06
1012Russia2024-04-15
1013Spain2024-04-21
1014Germany2024-04-04
1015Germany2024-04-22
1016Italy2024-03-31
1017Brazil2024-04-11
1018Canada2024-04-01
1019India2024-04-03
1020Italy2024-04-22
1021Spain2024-04-14
1022France2024-04-18
1023Italy2024-04-22
1024Russia2024-04-16
1025India2024-04-01
1026Italy2024-04-18
1027Brazil2024-04-22
1028Spain2024-04-23
1029France2024-03-26
1030Canada2024-03-29
1031Italy2024-04-16
1032Australia2024-04-24
1033Brazil2024-04-04
1034Spain2024-04-13
1035Russia2024-04-21
1036Italy2024-04-08
1037Brazil2024-04-12
1038Japan2024-04-02
1039Russia2024-04-04
1040Spain2024-03-26
1041India2024-04-21
1042Canada2024-04-09
1043Japan2024-04-15
1044Canada2024-03-26
1045Japan2024-04-01
1046Canada2024-04-19
1047France2024-04-05
1048Argentina2024-04-21
1049Japan2024-04-22

On-Demand Data

NameIdCountryDate
Smith R Saylors1000Germany2024-04-13
David O Caudy1001Brazil2024-04-17
Jennifer F Malet1002Spain2024-04-23
Ashley D Maclead1003India2024-04-14
Munro G Doe1004United Kingdom2024-04-02
Nicolas Q Caldarera1005Argentina2024-04-03
Octavia A Nestle1006Germany2024-04-20
Tony B Ferencz1007Russia2024-04-12
Kaitlin D Garufi1008France2024-03-28
Ashley S Gillian1009France2024-04-18
Kadeem V Bowley1010India2024-03-28
Antonio W Slusarski1011Brazil2024-04-19
Maisha T Ostrosky1012Argentina2024-04-11
Nicolas A Inouye1013United Kingdom2024-04-09
Isabel V Caudy1014Russia2024-04-23
Jefferson T Caudy1015Brazil2024-04-12
Misaki X Waycott1016Japan2024-03-30
Faith Y Garufi1017Spain2024-04-14
Alejandro A Tollner1018Spain2024-03-30
Tony R Campain1019France2024-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues A OldroydIndiaStephen Shaw NEGOTIATION
Francesco W BowleyItalyIvan Magalhaes UNQUALIFIED
Chavez N PaprockiAustraliaStephen Shaw QUALIFIED
Antonio E DoeCanadaAnna Fali QUALIFIED
Leon Y WieserItalyElwin Sharvill QUALIFIED
Wickens M NickaUnited KingdomAsiya Javayant NEGOTIATION
Murillo E FigeroaArgentinaBernardo Dominic QUALIFIED
Salvatore V FollerBrazilIoni Bowcher NEGOTIATION
Chavez I AlbaresArgentinaStephen Shaw NEGOTIATION
Kadeem F KolmetzItalyIoni Bowcher NEGOTIATION
Aika N BologniaJapanAsiya Javayant RENEWAL
Octavia N ButtArgentinaOnyama Limba NEGOTIATION
Aika T MaletJapanIvan Magalhaes NEW
Isabel V VocelkaBrazilIvan Magalhaes UNQUALIFIED
Jennifer U MaletCanadaXuxue Feng NEGOTIATION
Izzy Z KolmetzCanadaAsiya Javayant NEGOTIATION
David J OstroskyArgentinaStephen Shaw NEGOTIATION
Octavia A DoeBrazilAnna Fali QUALIFIED
Alejandro Q WieserJapanElwin Sharvill QUALIFIED
Clifford U DoeIndiaOnyama Limba RENEWAL
Stacey W FlosiUnited KingdomOnyama Limba NEW
Smith G WhobreyRussiaAsiya Javayant PROPOSAL
Rodrigues M CaudyRussiaOnyama Limba RENEWAL
Nicolas K MorascaItalyIvan Magalhaes PROPOSAL
Faith A OldroydArgentinaAsiya Javayant RENEWAL
Maria Q BologniaUnited KingdomIoni Bowcher QUALIFIED
Mujtaba G CaldareraItalyOnyama Limba PROPOSAL
Claire B GauchoAustraliaAmy Elsner RENEWAL
Isabel O StensethSpainIoni Bowcher QUALIFIED
Ivar Y RutaUnited KingdomBernardo Dominic QUALIFIED
Kadeem G AmigonArgentinaIoni Bowcher UNQUALIFIED
Maisha V InouyeSpainAsiya Javayant PROPOSAL
Izzy U KolmetzItalyIoni Bowcher UNQUALIFIED
Kaitlin G WaycottBrazilIvan Magalhaes NEW
David J DoeItalyAsiya Javayant QUALIFIED
Alejandro X RimUnited KingdomAnna Fali QUALIFIED
Claire M MarrierItalyAmy Elsner PROPOSAL
Maisha F DarakjySpainIvan Magalhaes NEW
Aruna Z BowleyJapanAnna Fali RENEWAL
Adams B TollnerCanadaIoni Bowcher NEW

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