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
Mayumi F NickaArgentinaIoni Bowcher PROPOSAL
Chavez U TollnerCanadaStephen Shaw RENEWAL
Stacey Z ChuiUnited KingdomXuxue Feng UNQUALIFIED
Munro B RulapaughUnited KingdomAnna Fali NEGOTIATION
Emily K VocelkaFranceOnyama Limba RENEWAL
Kadeem Y RimAustraliaOnyama Limba PROPOSAL
Leja R FerenczAustraliaOnyama Limba PROPOSAL
Aditya G SlusarskiRussiaIoni Bowcher QUALIFIED
Greenwood X PoquetteFranceElwin Sharvill RENEWAL
Misaki Q BowleyIndiaBernardo Dominic NEW
Jones F RutaBrazilXuxue Feng RENEWAL
Mujtaba U KuskoBrazilIvan Magalhaes RENEWAL
Isabel H SaylorsBrazilIvan Magalhaes QUALIFIED
James O ChuiBrazilAmy Elsner QUALIFIED
Mayumi E PerinItalyAnna Fali NEGOTIATION
Deepesh C GlickFranceIoni Bowcher NEGOTIATION
Francesco C MarrierFranceOnyama Limba RENEWAL
Arvin Y DarakjyBrazilXuxue Feng UNQUALIFIED
Aditya G RulapaughItalyElwin Sharvill PROPOSAL
Jefferson O NickaArgentinaIvan Magalhaes RENEWAL
Jeanfrancois B NestleIndiaAsiya Javayant PROPOSAL
Izzy L RulapaughBrazilAnna Fali PROPOSAL
Munro D AmigonAustraliaAmy Elsner NEGOTIATION
Jones R CaudyItalyAmy Elsner QUALIFIED
Ashley Q FollerJapanBernardo Dominic PROPOSAL
Aditya A WhobreySpainAmy Elsner PROPOSAL
Rodrigues R WaycottSpainOnyama Limba UNQUALIFIED
Izzy B WhobreySpainIvan Magalhaes UNQUALIFIED
Chavez V MarrierRussiaAnna Fali RENEWAL
James F SchemmerItalyAsiya Javayant PROPOSAL
Aika Q BologniaJapanOnyama Limba NEGOTIATION
Clifford U PaprockiSpainElwin Sharvill UNQUALIFIED
Mayumi P StockhamCanadaXuxue Feng NEW
Costa G StensethGermanyIoni Bowcher NEW
Adams Y VocelkaJapanIvan Magalhaes NEW
Mayumi J StockhamIndiaBernardo Dominic RENEWAL
Jeanfrancois Z AlbaresJapanAmy Elsner NEW
Clifford I SlusarskiRussiaIvan Magalhaes NEGOTIATION
Smith J DoeJapanOnyama Limba NEGOTIATION
Rodrigues C FigeroaGermanyXuxue Feng NEW
Johnson L IturbideRussiaBernardo Dominic QUALIFIED
Aruna S CampainAustraliaOnyama Limba UNQUALIFIED
Morrow W CampainFranceStephen Shaw QUALIFIED
Murillo Q VocelkaAustraliaBernardo Dominic PROPOSAL
Julie A ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy F BowleyFranceStephen Shaw NEW
Jennifer U SergiAustraliaAsiya Javayant QUALIFIED
Aika E ButtCanadaElwin Sharvill NEGOTIATION
Leja M CaldareraJapanStephen Shaw UNQUALIFIED
Faith U KolmetzJapanXuxue Feng NEW
Horizontal
NameCountryRepresentativeStatus
Mujtaba N WhobreyJapanBernardo Dominic UNQUALIFIED
Costa O GlickFranceOnyama Limba QUALIFIED
Maisha X ChuiBrazilAsiya Javayant RENEWAL
Misaki M AlbaresSpainBernardo Dominic RENEWAL
Johnson E BologniaUnited KingdomElwin Sharvill NEGOTIATION
Murillo E CaudyUnited KingdomStephen Shaw NEW
Jones F RoysterItalyIvan Magalhaes UNQUALIFIED
Munro O FlosiItalyAsiya Javayant NEGOTIATION
Claire C GarufiBrazilAnna Fali NEGOTIATION
Munro E OstroskyRussiaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey K SchemmerFrance2024-04-09Chapman, Ross E Esq NEW29Elwin Sharvill
1001Darci M OstroskyAustralia2024-04-08Benton, John B Jr NEGOTIATION33Ioni Bowcher
1002Aika Z RimSpain2024-04-27Feiner Bros RENEWAL90Amy Elsner
1003Ivar O RutaUnited Kingdom2024-04-09Chanay, Jeffrey A Esq QUALIFIED13Anna Fali
1004Emily M AmigonJapan2024-04-19Chanay, Jeffrey A Esq QUALIFIED6Amy Elsner
1005Cody N SaylorsAustralia2024-04-14Dorl, James J Esq PROPOSAL67Ioni Bowcher
1006Cody Y TollnerItaly2024-04-29Printing Dimensions QUALIFIED45Bernardo Dominic
1007Alejandro P CaudyItaly2024-04-25Feltz Printing Service NEW98Ioni Bowcher
1008Rodrigues Q AlbaresFrance2024-04-21Rousseaux, Michael Esq UNQUALIFIED90Bernardo Dominic
1009Antonio E NestleFrance2024-04-24Feiner Bros PROPOSAL55Amy Elsner
1010Aditya D IturbideItaly2024-04-13King, Christopher A Esq NEW62Xuxue Feng
1011Ricardo I SchemmerIndia2024-04-13Rangoni Of Florence QUALIFIED35Anna Fali
1012Julie W FollerArgentina2024-04-24Rangoni Of Florence NEW80Asiya Javayant
1013Nicolas G CaudyFrance2024-04-06Truhlar And Truhlar Attys QUALIFIED38Ioni Bowcher
1014Alejandro L CaldareraItaly2024-04-21Rangoni Of Florence NEGOTIATION74Elwin Sharvill
1015Greenwood Y ButtFrance2024-04-08Feiner Bros RENEWAL75Bernardo Dominic
1016Isabel I CaldareraArgentina2024-04-12Benton, John B Jr RENEWAL91Anna Fali
1017Ricardo G InouyeSpain2024-04-18Commercial Press UNQUALIFIED62Onyama Limba
1018Leja K GillianArgentina2024-04-13Benton, John B Jr PROPOSAL15Elwin Sharvill
1019Murillo M ChuiArgentina2024-04-19King, Christopher A Esq RENEWAL32Bernardo Dominic
1020Sinclair K KolmetzFrance2024-04-20Printing Dimensions NEW55Stephen Shaw
1021Antonio F WhobreyGermany2024-04-25Benton, John B Jr QUALIFIED66Ioni Bowcher
1022Nicolas U GillianJapan2024-04-07Morlong Associates QUALIFIED43Bernardo Dominic
1023Smith N NestleSpain2024-04-25Rousseaux, Michael Esq QUALIFIED5Ivan Magalhaes
1024Jones X SchemmerAustralia2024-04-09Printing Dimensions QUALIFIED10Xuxue Feng
1025Kadeem V CampainFrance2024-05-03Commercial Press PROPOSAL29Asiya Javayant
1026Leon Q MacleadBrazil2024-04-16Feiner Bros QUALIFIED42Elwin Sharvill
1027Deepesh Z GarufiAustralia2024-05-02Printing Dimensions QUALIFIED14Onyama Limba
1028Aika J StensethAustralia2024-04-14Feiner Bros NEGOTIATION67Onyama Limba
1029Julie Y PaprockiFrance2024-04-12Chemel, James L Cpa UNQUALIFIED0Ivan Magalhaes
1030Mujtaba X GlickIndia2024-04-20Rousseaux, Michael Esq PROPOSAL32Bernardo Dominic
1031Mujtaba S VenereFrance2024-04-29Truhlar And Truhlar Attys QUALIFIED70Ioni Bowcher
1032Mayumi H RutaJapan2024-04-05Chanay, Jeffrey A Esq NEW19Xuxue Feng
1033Leja B SergiBrazil2024-04-24Commercial Press QUALIFIED1Amy Elsner
1034Jefferson O ShinkoArgentina2024-04-07King, Christopher A Esq UNQUALIFIED11Amy Elsner
1035Kaitlin N BowleyIndia2024-04-21Commercial Press UNQUALIFIED39Ivan Magalhaes
1036Sinclair L GillianSpain2024-04-27Feiner Bros UNQUALIFIED25Xuxue Feng
1037Jones H DilliardUnited Kingdom2024-04-13Chanay, Jeffrey A Esq QUALIFIED57Bernardo Dominic
1038Aruna Y PoquetteAustralia2024-05-03Chanay, Jeffrey A Esq NEW81Amy Elsner
1039Aditya C FollerItaly2024-04-19Buckley Miller Wright QUALIFIED57Ivan Magalhaes
1040Chavez V PerinJapan2024-05-02King, Christopher A Esq NEW55Asiya Javayant
1041Silvio U MaletAustralia2024-04-15Commercial Press PROPOSAL82Ioni Bowcher
1042David P FollerGermany2024-05-02Printing Dimensions RENEWAL50Bernardo Dominic
1043Smith E VocelkaJapan2024-04-06Chemel, James L Cpa NEW83Anna Fali
1044Aditya X RimSpain2024-04-25Printing Dimensions QUALIFIED56Ivan Magalhaes
1045Costa E BowleyArgentina2024-04-27King, Christopher A Esq UNQUALIFIED24Elwin Sharvill
1046Maria D MarrierArgentina2024-05-04Chapman, Ross E Esq QUALIFIED70Anna Fali
1047Rodrigues G WhobreyUnited Kingdom2024-04-20Chemel, James L Cpa QUALIFIED4Onyama Limba
1048Jones T AmigonSpain2024-04-22Chanay, Jeffrey A Esq QUALIFIED50Anna Fali
1049Clifford S MaletBrazil2024-04-14Commercial Press NEGOTIATION61Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Aruna L RimIndiaBernardo Dominic RENEWAL
Silvio L MorascaUnited KingdomOnyama Limba NEW
Julie A ButtRussiaIvan Magalhaes PROPOSAL
Mayumi C RoysterGermanyXuxue Feng UNQUALIFIED
Maisha J PerinJapanStephen Shaw RENEWAL
Mayumi C NickaBrazilOnyama Limba UNQUALIFIED
Claire M VenereRussiaIvan Magalhaes NEGOTIATION
Deepesh N CaudyArgentinaIvan Magalhaes QUALIFIED
Ivar K RulapaughFranceIvan Magalhaes UNQUALIFIED
David U BriddickRussiaIvan Magalhaes NEGOTIATION
Ricardo Z NickaAustraliaAnna Fali NEGOTIATION
Stacey X MaletFranceXuxue Feng NEGOTIATION
Wickens B SergiRussiaAnna Fali QUALIFIED
Greenwood J GlickGermanyXuxue Feng NEW
Ashley S ButtAustraliaAnna Fali NEGOTIATION
Silvio T RoysterJapanElwin Sharvill PROPOSAL
Misaki J ShinkoRussiaElwin Sharvill UNQUALIFIED
Munro P MarrierSpainIvan Magalhaes PROPOSAL
Alejandro U RoysterCanadaIoni Bowcher NEGOTIATION
Costa T KuskoCanadaBernardo Dominic UNQUALIFIED
Isabel O OstroskyGermanyElwin Sharvill NEGOTIATION
Chavez G DarakjyBrazilXuxue Feng QUALIFIED
Ivar V RoysterArgentinaIvan Magalhaes NEW
Murillo D WaycottAustraliaAnna Fali QUALIFIED
Adams K MorascaUnited KingdomAnna Fali QUALIFIED
Stacey K GauchoRussiaOnyama Limba NEGOTIATION
Ivar C WieserCanadaAnna Fali NEGOTIATION
Silvio Y WieserItalyAmy Elsner NEGOTIATION
Ashley H NestleCanadaBernardo Dominic UNQUALIFIED
Ricardo K VenereIndiaAnna Fali NEGOTIATION
Jones G WieserIndiaIvan Magalhaes NEW
Jennifer L MorascaUnited KingdomAsiya Javayant NEW
Nicolas Q DilliardJapanBernardo Dominic UNQUALIFIED
Sinclair Q GauchoItalyAmy Elsner RENEWAL
Mayumi E OstroskySpainAsiya Javayant UNQUALIFIED
Morrow D ChuiItalyAsiya Javayant PROPOSAL
Nicolas J StockhamJapanXuxue Feng RENEWAL
Izzy Q ShinkoArgentinaAnna Fali QUALIFIED
Leon A CaudyRussiaAmy Elsner RENEWAL
Munro D WieserAustraliaOnyama Limba QUALIFIED
Stacey K IturbideGermanyOnyama Limba NEW
Munro Q KolmetzRussiaAsiya Javayant QUALIFIED
David Q MarrierArgentinaElwin Sharvill NEW
Leja M ShinkoRussiaXuxue Feng UNQUALIFIED
Jones P RulapaughSpainAmy Elsner NEGOTIATION
Costa I SaylorsArgentinaElwin Sharvill NEW
Munro K StockhamIndiaIvan Magalhaes NEGOTIATION
Mujtaba M NestleIndiaAnna Fali NEW
Mujtaba B WaycottRussiaElwin Sharvill QUALIFIED
Stacey T BowleyBrazilXuxue Feng RENEWAL
Frozen Columns
Name
Adams K Nestle
Munro U Royster
Izzy C Nicka
Mujtaba U Venere
Emily S Royster
Kaitlin Y Vocelka
Silvio L Amigon
Ashley U Rulapaugh
Mujtaba Z Albares
Salvatore H Gaucho
Morrow V Slusarski
Deepesh S Waycott
Rodrigues H Caudy
Isabel Y Garufi
Juan L Ostrosky
Clifford S Caudy
James S Albares
Salvatore M Maclead
Ivar F Albares
Murillo C Tollner
Misaki T Nestle
Clifford Q Kusko
Deepesh E Doe
Ivar H Royster
Faith P Rim
Stacey J Oldroyd
Jennifer B Nicka
Francesco Z Stockham
Leja K Rulapaugh
Emily G Royster
Silvio O Foller
Munro X Flosi
Clifford T Chui
James C Butt
Costa G Caudy
Mujtaba G Bolognia
Emily M Albares
Chavez W Caldarera
Greenwood Y Wieser
Jones C Slusarski
Maisha U Gaucho
Murillo Y Perin
Antonio O Rulapaugh
Aditya R Malet
Ivar J Slusarski
Octavia E Perin
Chavez K Figeroa
Kaitlin Q Oldroyd
Kadeem R Waycott
Silvio X Albares
IdCountryDate
1000Canada2024-04-11
1001Brazil2024-04-25
1002Canada2024-04-22
1003United Kingdom2024-04-28
1004Australia2024-04-19
1005Brazil2024-04-27
1006Germany2024-04-21
1007Japan2024-04-24
1008Brazil2024-05-02
1009United Kingdom2024-04-26
1010United Kingdom2024-05-01
1011India2024-05-04
1012Germany2024-05-04
1013Italy2024-05-01
1014Australia2024-04-14
1015Germany2024-04-08
1016Argentina2024-04-26
1017Japan2024-04-20
1018Japan2024-04-08
1019Germany2024-04-07
1020Brazil2024-04-22
1021Germany2024-04-06
1022Russia2024-04-25
1023Japan2024-04-22
1024France2024-04-30
1025Brazil2024-05-01
1026Argentina2024-04-25
1027India2024-04-27
1028Spain2024-04-23
1029India2024-05-04
1030United Kingdom2024-04-27
1031Australia2024-04-18
1032Japan2024-04-25
1033Argentina2024-04-18
1034India2024-04-28
1035Russia2024-04-21
1036Argentina2024-04-07
1037Canada2024-04-06
1038Germany2024-04-24
1039Australia2024-04-28
1040France2024-04-11
1041Brazil2024-04-29
1042Japan2024-04-21
1043Canada2024-05-01
1044Japan2024-04-17
1045India2024-04-24
1046Italy2024-04-18
1047Germany2024-04-24
1048Canada2024-04-07
1049Australia2024-04-30

On-Demand Data

NameIdCountryDate
Jefferson F Rulapaugh1000France2024-04-09
Adams M Vocelka1001India2024-04-25
Jeanfrancois K Flosi1002Argentina2024-04-18
Leon D Sergi1003France2024-04-16
Chavez R Campain1004Canada2024-04-08
Morrow U Figeroa1005India2024-04-09
Chavez E Perin1006United Kingdom2024-04-19
Jefferson G Vocelka1007United Kingdom2024-04-12
Jones J Campain1008France2024-04-14
Morrow N Iturbide1009Brazil2024-05-02
Johnson S Stockham1010Russia2024-04-13
Antonio T Butt1011Canada2024-04-26
Stacey O Oldroyd1012Argentina2024-04-09
Maisha M Kolmetz1013United Kingdom2024-04-06
Octavia E Chui1014Canada2024-04-18
Aditya M Campain1015Brazil2024-04-14
Jennifer C Iturbide1016Germany2024-04-09
Kaitlin L Malet1017Argentina2024-04-25
Munro T Royster1018Japan2024-05-01
Ricardo Y Doe1019Russia2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba U DoeGermanyXuxue Feng RENEWAL
Silvio X MaletJapanElwin Sharvill RENEWAL
Leon Q VocelkaRussiaOnyama Limba NEW
Greenwood H SaylorsGermanyAnna Fali QUALIFIED
Maria Q OldroydAustraliaOnyama Limba NEW
Smith M WaycottJapanXuxue Feng NEGOTIATION
Alejandro W FollerBrazilXuxue Feng PROPOSAL
Ivar C BologniaIndiaOnyama Limba NEGOTIATION
Alejandro Z PaprockiCanadaAsiya Javayant PROPOSAL
Ivar B MacleadFranceOnyama Limba NEGOTIATION
Tony X RoysterCanadaAmy Elsner PROPOSAL
Leon Q TollnerArgentinaIvan Magalhaes NEW
James E MacleadUnited KingdomBernardo Dominic RENEWAL
Morrow D PoquetteCanadaElwin Sharvill QUALIFIED
Darci V MaletRussiaStephen Shaw PROPOSAL
Wickens F MarrierFranceAsiya Javayant QUALIFIED
Francesco N DarakjyAustraliaIvan Magalhaes NEGOTIATION
Leja N MaletAustraliaOnyama Limba NEGOTIATION
Ashley U RulapaughItalyIoni Bowcher UNQUALIFIED
Tony D IturbideItalyIvan Magalhaes UNQUALIFIED
Munro M DarakjyFranceOnyama Limba NEW
Arvin D CaudyBrazilAmy Elsner PROPOSAL
Jeanfrancois K DoeRussiaBernardo Dominic PROPOSAL
Kaitlin B MacleadFranceIvan Magalhaes UNQUALIFIED
Deepesh M FerenczCanadaBernardo Dominic UNQUALIFIED
Octavia H KolmetzIndiaAsiya Javayant NEW
Jeanfrancois M SchemmerCanadaStephen Shaw PROPOSAL
Ivar B AlbaresRussiaAnna Fali RENEWAL
Greenwood P AmigonCanadaElwin Sharvill RENEWAL
Chavez Y ChuiJapanIoni Bowcher UNQUALIFIED
Deepesh C OldroydItalyOnyama Limba QUALIFIED
Francesco Y MaletArgentinaAnna Fali NEGOTIATION
Alejandro B WaycottJapanIvan Magalhaes QUALIFIED
Cody N RulapaughGermanyIoni Bowcher RENEWAL
Costa J BologniaGermanyElwin Sharvill NEW
Tony X PerinUnited KingdomOnyama Limba UNQUALIFIED
Smith I AmigonBrazilAmy Elsner NEGOTIATION
Johnson Z GillianGermanyStephen Shaw RENEWAL
Morrow X SchemmerJapanIvan Magalhaes PROPOSAL
Clifford S RimCanadaStephen Shaw 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>