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
Deepesh G StockhamUnited KingdomStephen Shaw QUALIFIED
Adams H VenereIndiaAnna Fali NEGOTIATION
Johnson T CaudySpainOnyama Limba UNQUALIFIED
Deepesh K OldroydUnited KingdomBernardo Dominic NEGOTIATION
Jones D MorascaFranceAnna Fali NEGOTIATION
Darci S VenereAustraliaOnyama Limba UNQUALIFIED
James Q KolmetzRussiaIoni Bowcher NEGOTIATION
Tony K FigeroaAustraliaIvan Magalhaes NEGOTIATION
Emily N AlbaresItalyAnna Fali PROPOSAL
Jeanfrancois H FerenczJapanXuxue Feng NEW
Julie Q SlusarskiAustraliaAnna Fali UNQUALIFIED
Antonio H VocelkaJapanAnna Fali QUALIFIED
Ivar G FlosiGermanyXuxue Feng QUALIFIED
Greenwood P PerinUnited KingdomBernardo Dominic PROPOSAL
Johnson N InouyeItalyXuxue Feng QUALIFIED
Nicolas V NestleCanadaOnyama Limba RENEWAL
Misaki H NickaArgentinaStephen Shaw NEGOTIATION
Alejandro O CaudyIndiaIvan Magalhaes UNQUALIFIED
Mayumi A GillianAustraliaAnna Fali QUALIFIED
Wickens N ButtItalyBernardo Dominic NEW
Darci L DarakjyUnited KingdomAmy Elsner QUALIFIED
Jeanfrancois K CampainSpainBernardo Dominic QUALIFIED
Alejandro W StockhamGermanyAnna Fali QUALIFIED
James X VocelkaBrazilStephen Shaw RENEWAL
Leon U SergiIndiaAsiya Javayant PROPOSAL
Jefferson G FigeroaItalyAmy Elsner RENEWAL
Stacey W MarrierAustraliaStephen Shaw NEGOTIATION
Misaki J RulapaughFranceXuxue Feng UNQUALIFIED
Jones E NickaUnited KingdomElwin Sharvill RENEWAL
Antonio J VenereJapanXuxue Feng QUALIFIED
Kaitlin E MaletAustraliaIvan Magalhaes QUALIFIED
Munro E FollerRussiaXuxue Feng NEGOTIATION
Chavez S FerenczFranceElwin Sharvill QUALIFIED
Jeanfrancois W PoquetteAustraliaIvan Magalhaes NEGOTIATION
Adams J GauchoGermanyOnyama Limba PROPOSAL
Julie H MaletIndiaElwin Sharvill NEGOTIATION
Sinclair H CaudyCanadaOnyama Limba UNQUALIFIED
Arvin B DilliardCanadaOnyama Limba QUALIFIED
Cody V PoquetteItalyIvan Magalhaes PROPOSAL
Costa W ButtUnited KingdomBernardo Dominic NEW
Wickens M SaylorsCanadaOnyama Limba PROPOSAL
Adams P MarrierAustraliaIvan Magalhaes PROPOSAL
Isabel P RimFranceAnna Fali PROPOSAL
Aditya R FollerItalyXuxue Feng NEGOTIATION
Deepesh L FigeroaFranceIvan Magalhaes NEGOTIATION
Arvin L TollnerJapanIvan Magalhaes RENEWAL
Jeanfrancois O WhobreyUnited KingdomElwin Sharvill NEW
Salvatore V ButtRussiaIoni Bowcher NEW
Leja X BowleyAustraliaAnna Fali NEGOTIATION
Izzy W CampainGermanyStephen Shaw NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois O BriddickFranceXuxue Feng NEGOTIATION
David W MaletIndiaIvan Magalhaes PROPOSAL
Murillo A RulapaughJapanAnna Fali NEGOTIATION
Maria S RulapaughGermanyXuxue Feng NEW
Claire F KolmetzBrazilStephen Shaw NEGOTIATION
David V KolmetzAustraliaIvan Magalhaes NEGOTIATION
Jefferson D WhobreyCanadaAnna Fali NEW
Jones K GlickFranceStephen Shaw QUALIFIED
Julie G WieserArgentinaOnyama Limba NEGOTIATION
Izzy K CaldareraSpainElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez B BriddickArgentina2024-04-19Truhlar And Truhlar Attys QUALIFIED76Onyama Limba
1001Morrow A OstroskyCanada2024-04-09Chemel, James L Cpa NEGOTIATION51Asiya Javayant
1002Jones R VocelkaGermany2024-04-25Commercial Press NEW34Stephen Shaw
1003Antonio M RimFrance2024-04-26Buckley Miller Wright NEGOTIATION74Bernardo Dominic
1004Tony B MorascaFrance2024-04-12King, Christopher A Esq RENEWAL84Elwin Sharvill
1005Chavez X PerinCanada2024-04-19Truhlar And Truhlar Attys UNQUALIFIED47Anna Fali
1006Faith U GarufiRussia2024-03-28Benton, John B Jr QUALIFIED84Ioni Bowcher
1007Claire U IturbideCanada2024-04-07Benton, John B Jr NEW88Asiya Javayant
1008Claire V CaldareraAustralia2024-04-19Buckley Miller Wright NEW64Asiya Javayant
1009Ricardo K CaldareraItaly2024-03-31Dorl, James J Esq QUALIFIED70Stephen Shaw
1010Tony E OldroydCanada2024-04-18Chemel, James L Cpa QUALIFIED83Elwin Sharvill
1011Sinclair V ButtJapan2024-04-12Commercial Press UNQUALIFIED22Anna Fali
1012Misaki O VocelkaGermany2024-04-06King, Christopher A Esq NEW93Amy Elsner
1013Aika Q StockhamCanada2024-04-12Feiner Bros UNQUALIFIED99Onyama Limba
1014Jefferson Y NickaItaly2024-04-22Dorl, James J Esq QUALIFIED11Ioni Bowcher
1015Octavia T KuskoItaly2024-04-02Truhlar And Truhlar Attys NEGOTIATION38Onyama Limba
1016Stacey R SergiIndia2024-04-22Feltz Printing Service RENEWAL70Xuxue Feng
1017Nicolas N MaletBrazil2024-04-25King, Christopher A Esq NEGOTIATION29Elwin Sharvill
1018Mayumi B MorascaCanada2024-03-30Rangoni Of Florence NEGOTIATION57Amy Elsner
1019Faith G DilliardRussia2024-04-24Benton, John B Jr NEGOTIATION83Stephen Shaw
1020Jefferson R IturbideAustralia2024-04-15Commercial Press QUALIFIED51Amy Elsner
1021Octavia A MarrierUnited Kingdom2024-04-08King, Christopher A Esq QUALIFIED80Onyama Limba
1022Ricardo K DarakjyAustralia2024-04-09Chemel, James L Cpa NEW33Ivan Magalhaes
1023Leon M StensethJapan2024-04-08Feiner Bros NEW62Amy Elsner
1024Ashley B BologniaCanada2024-04-25Printing Dimensions PROPOSAL87Bernardo Dominic
1025Johnson D AlbaresIndia2024-04-17King, Christopher A Esq NEGOTIATION33Onyama Limba
1026Ivar K SchemmerUnited Kingdom2024-04-07Feiner Bros NEGOTIATION28Ivan Magalhaes
1027Mujtaba Q PaprockiSpain2024-04-06Rangoni Of Florence UNQUALIFIED7Elwin Sharvill
1028Murillo R PerinJapan2024-04-01Chemel, James L Cpa UNQUALIFIED24Ioni Bowcher
1029Kaitlin M AlbaresCanada2024-04-17Feiner Bros RENEWAL0Amy Elsner
1030Murillo Z GarufiIndia2024-04-03Printing Dimensions NEW64Anna Fali
1031Aruna C DoeIndia2024-04-06Dorl, James J Esq QUALIFIED69Elwin Sharvill
1032Izzy L TollnerArgentina2024-04-24Morlong Associates QUALIFIED51Anna Fali
1033Cody O PoquetteJapan2024-04-06Buckley Miller Wright NEGOTIATION83Bernardo Dominic
1034Maisha R AmigonFrance2024-04-13Benton, John B Jr QUALIFIED58Amy Elsner
1035Salvatore E KuskoFrance2024-03-28Commercial Press UNQUALIFIED9Onyama Limba
1036Clifford P KolmetzSpain2024-04-11Chapman, Ross E Esq NEW52Ioni Bowcher
1037Aika E GlickSpain2024-04-05Feltz Printing Service PROPOSAL5Xuxue Feng
1038Francesco M VenereItaly2024-04-03Truhlar And Truhlar Attys QUALIFIED66Onyama Limba
1039Silvio D RoysterArgentina2024-04-25Chanay, Jeffrey A Esq NEGOTIATION51Onyama Limba
1040Costa E SergiJapan2024-04-15Chapman, Ross E Esq RENEWAL21Asiya Javayant
1041Misaki W RoysterGermany2024-04-18Feiner Bros RENEWAL35Amy Elsner
1042Arvin Y DarakjyItaly2024-04-21Chanay, Jeffrey A Esq UNQUALIFIED43Ioni Bowcher
1043Morrow I NestleAustralia2024-04-17Dorl, James J Esq NEGOTIATION67Asiya Javayant
1044James N AmigonCanada2024-04-19King, Christopher A Esq RENEWAL67Elwin Sharvill
1045Cody S MaletGermany2024-04-17Chapman, Ross E Esq NEGOTIATION50Stephen Shaw
1046Ricardo Q NestleFrance2024-04-02Chemel, James L Cpa RENEWAL42Ivan Magalhaes
1047Tony L ButtRussia2024-04-07Benton, John B Jr PROPOSAL74Ivan Magalhaes
1048Jennifer U ButtAustralia2024-04-24Feltz Printing Service PROPOSAL13Ivan Magalhaes
1049Julie O RutaRussia2024-04-25Rangoni Of Florence UNQUALIFIED67Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Darci W WhobreySpainIoni Bowcher NEW
Darci P SlusarskiGermanyAmy Elsner NEGOTIATION
Deepesh V PaprockiFranceAsiya Javayant NEW
Morrow O RimBrazilOnyama Limba NEW
Kaitlin B MacleadSpainXuxue Feng PROPOSAL
Maisha E BowleyCanadaOnyama Limba QUALIFIED
Jennifer F PaprockiJapanStephen Shaw UNQUALIFIED
Alejandro L FerenczUnited KingdomBernardo Dominic PROPOSAL
Mayumi X AlbaresBrazilAmy Elsner RENEWAL
Johnson O RoysterIndiaAsiya Javayant PROPOSAL
Emily Q SlusarskiItalyIvan Magalhaes PROPOSAL
Kadeem J BriddickUnited KingdomXuxue Feng QUALIFIED
Munro K StensethBrazilAmy Elsner NEGOTIATION
Ivar T MaletJapanElwin Sharvill NEW
Francesco L OstroskyRussiaAsiya Javayant NEGOTIATION
Morrow M RoysterItalyBernardo Dominic RENEWAL
Octavia K TollnerSpainOnyama Limba UNQUALIFIED
Claire A CaldareraFranceAmy Elsner PROPOSAL
Misaki G PaprockiJapanAsiya Javayant NEGOTIATION
Jones R WhobreyUnited KingdomAmy Elsner NEGOTIATION
Faith J NestleAustraliaXuxue Feng NEGOTIATION
Adams S RulapaughBrazilAnna Fali UNQUALIFIED
Aruna V WhobreyFranceBernardo Dominic NEW
Faith G GarufiGermanyAmy Elsner PROPOSAL
Arvin O OstroskyItalyElwin Sharvill NEW
James I BologniaGermanyIvan Magalhaes UNQUALIFIED
Ricardo V CampainArgentinaOnyama Limba PROPOSAL
Aruna W RoysterItalyXuxue Feng RENEWAL
Julie V BologniaUnited KingdomXuxue Feng RENEWAL
Maisha Y DarakjyIndiaBernardo Dominic NEGOTIATION
Isabel I GarufiUnited KingdomXuxue Feng NEW
Deepesh J GauchoItalyBernardo Dominic PROPOSAL
Faith W CampainArgentinaOnyama Limba NEGOTIATION
Ricardo A FigeroaGermanyStephen Shaw QUALIFIED
Jefferson I RimIndiaBernardo Dominic NEGOTIATION
Deepesh N BriddickFranceOnyama Limba NEW
Maisha N RimAustraliaBernardo Dominic UNQUALIFIED
Costa K AlbaresArgentinaIoni Bowcher UNQUALIFIED
Aruna A OstroskyRussiaAsiya Javayant UNQUALIFIED
Munro W BowleyFranceElwin Sharvill UNQUALIFIED
Izzy G FerenczItalyIvan Magalhaes NEW
Francesco M MorascaGermanyElwin Sharvill NEW
Ivar S GauchoFranceOnyama Limba PROPOSAL
Kaitlin I MaletSpainIvan Magalhaes QUALIFIED
James I GauchoUnited KingdomAnna Fali NEW
Maria R ChuiUnited KingdomAsiya Javayant UNQUALIFIED
Maria S InouyeFranceElwin Sharvill NEW
Darci T VocelkaUnited KingdomStephen Shaw QUALIFIED
Adams E SergiArgentinaStephen Shaw NEW
Sinclair H SaylorsIndiaOnyama Limba NEW
Frozen Columns
Name
Antonio T Whobrey
Kaitlin X Whobrey
Morrow W Caudy
Leon Q Royster
Juan X Nestle
Morrow D Venere
Ivar C Ostrosky
Jeanfrancois S Malet
Julie R Butt
Munro V Kusko
Costa J Malet
Munro X Gaucho
Tony E Rulapaugh
Claire E Whobrey
Jeanfrancois Y Wieser
Costa X Rulapaugh
Chavez K Dilliard
Morrow Q Schemmer
Juan V Gillian
Emily J Venere
Greenwood B Whobrey
Murillo W Schemmer
Julie O Shinko
Jeanfrancois Q Waycott
Cody D Doe
Jeanfrancois R Kusko
Nicolas A Rim
Maria N Poquette
Deepesh X Waycott
Wickens P Ostrosky
Ivar A Rulapaugh
Misaki C Rulapaugh
Izzy H Iturbide
Costa W Venere
Kaitlin U Foller
Kadeem E Wieser
Smith P Amigon
Sinclair G Garufi
Faith K Vocelka
Morrow B Slusarski
David A Paprocki
Murillo F Venere
Kaitlin W Caudy
Ashley E Gillian
Johnson H Wieser
Jones G Bowley
Leja Y Poquette
Smith R Rim
Ricardo W Butt
Arvin L Nestle
IdCountryDate
1000India2024-04-26
1001United Kingdom2024-04-21
1002Argentina2024-04-21
1003France2024-04-08
1004Russia2024-04-06
1005Brazil2024-04-12
1006Spain2024-04-08
1007Russia2024-04-13
1008Japan2024-04-07
1009Germany2024-04-04
1010Germany2024-04-21
1011United Kingdom2024-04-03
1012Argentina2024-04-07
1013Canada2024-04-16
1014United Kingdom2024-04-15
1015Canada2024-04-18
1016Spain2024-04-26
1017Brazil2024-04-03
1018Brazil2024-04-11
1019India2024-03-31
1020India2024-04-05
1021Spain2024-04-24
1022Japan2024-04-25
1023Argentina2024-04-22
1024Australia2024-04-13
1025Russia2024-04-15
1026Brazil2024-04-05
1027Spain2024-04-12
1028India2024-04-09
1029Canada2024-04-18
1030Argentina2024-04-02
1031Canada2024-04-22
1032France2024-03-29
1033Russia2024-04-21
1034Italy2024-04-17
1035Argentina2024-04-13
1036Canada2024-04-16
1037Brazil2024-04-16
1038Germany2024-04-05
1039Argentina2024-04-20
1040India2024-04-25
1041Japan2024-04-13
1042Japan2024-04-19
1043Germany2024-04-20
1044Australia2024-04-23
1045Spain2024-03-28
1046United Kingdom2024-04-19
1047Brazil2024-03-31
1048Spain2024-04-23
1049Japan2024-04-23

On-Demand Data

NameIdCountryDate
Sinclair D Wieser1000Germany2024-04-18
Mujtaba I Kolmetz1001Japan2024-04-15
Cody R Ferencz1002Germany2024-04-10
Mayumi X Bolognia1003Brazil2024-04-12
Deepesh V Figeroa1004Spain2024-04-12
Alejandro Q Garufi1005Italy2024-04-07
Alejandro L Perin1006Russia2024-04-17
Faith W Nicka1007Russia2024-04-15
Octavia K Bowley1008Russia2024-04-05
Jeanfrancois H Rim1009Brazil2024-04-22
Jennifer I Gillian1010Italy2024-04-10
Greenwood Q Morasca1011India2024-04-20
Jennifer U Ostrosky1012France2024-04-11
Leja Q Amigon1013United Kingdom2024-04-03
Claire E Venere1014Canada2024-04-05
Adams E Royster1015India2024-04-19
Murillo X Nestle1016Argentina2024-03-31
Jennifer A Caldarera1017Australia2024-04-15
David U Glick1018India2024-04-08
Ricardo D Rulapaugh1019Italy2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily O KuskoGermanyIoni Bowcher PROPOSAL
Morrow M KuskoFranceStephen Shaw NEW
Arvin D StockhamAustraliaXuxue Feng UNQUALIFIED
Kadeem S KuskoUnited KingdomAsiya Javayant NEGOTIATION
Misaki R GlickGermanyElwin Sharvill NEW
James W SergiUnited KingdomElwin Sharvill NEGOTIATION
Ricardo O GlickGermanyAsiya Javayant UNQUALIFIED
Francesco P AlbaresIndiaXuxue Feng NEW
Leja K RulapaughArgentinaAnna Fali PROPOSAL
Smith O SlusarskiJapanOnyama Limba PROPOSAL
James F SergiSpainIoni Bowcher PROPOSAL
Jones F KuskoBrazilAsiya Javayant RENEWAL
Clifford V InouyeUnited KingdomIoni Bowcher NEW
Adams G SergiItalyIoni Bowcher RENEWAL
Murillo N WieserAustraliaBernardo Dominic UNQUALIFIED
Ivar Y RutaBrazilAnna Fali QUALIFIED
Izzy H ShinkoCanadaElwin Sharvill QUALIFIED
Jefferson B InouyeIndiaXuxue Feng RENEWAL
Smith M CampainIndiaIoni Bowcher QUALIFIED
Misaki L CampainBrazilXuxue Feng PROPOSAL
Alejandro K WhobreyGermanyAsiya Javayant RENEWAL
Faith W OstroskyIndiaAnna Fali RENEWAL
Ashley Q ChuiAustraliaAsiya Javayant QUALIFIED
Rodrigues S TollnerGermanyBernardo Dominic NEGOTIATION
Kadeem N GlickRussiaXuxue Feng NEW
Greenwood V GlickBrazilIvan Magalhaes UNQUALIFIED
Silvio R OstroskyAustraliaIoni Bowcher NEGOTIATION
Greenwood D BowleyUnited KingdomIvan Magalhaes NEGOTIATION
Isabel U AlbaresAustraliaElwin Sharvill RENEWAL
Darci M SaylorsItalyXuxue Feng RENEWAL
Clifford A RoysterFranceAnna Fali UNQUALIFIED
Stacey W GauchoItalyAsiya Javayant RENEWAL
Johnson D WhobreyArgentinaElwin Sharvill NEGOTIATION
Mujtaba T NickaUnited KingdomAsiya Javayant PROPOSAL
Aditya P FollerAustraliaAnna Fali UNQUALIFIED
Jones L MorascaSpainOnyama Limba NEW
Jennifer I PaprockiAustraliaBernardo Dominic NEGOTIATION
Jennifer W PaprockiIndiaAnna Fali RENEWAL
Silvio H KuskoArgentinaBernardo Dominic UNQUALIFIED
Mujtaba T StockhamJapanIvan Magalhaes 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>