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
Juan M AlbaresItalyIoni Bowcher UNQUALIFIED
Clifford N StockhamBrazilAmy Elsner NEW
Arvin K KuskoFranceAsiya Javayant PROPOSAL
Kaitlin S FlosiGermanyElwin Sharvill RENEWAL
Adams U RulapaughBrazilXuxue Feng UNQUALIFIED
Emily B BriddickIndiaAmy Elsner NEGOTIATION
Kadeem E RutaUnited KingdomElwin Sharvill NEW
Octavia Z NickaSpainElwin Sharvill QUALIFIED
Julie K MarrierItalyAmy Elsner QUALIFIED
Ricardo X RoysterBrazilAsiya Javayant PROPOSAL
Jeanfrancois I MaletItalyAmy Elsner NEGOTIATION
James F KolmetzIndiaXuxue Feng NEGOTIATION
Isabel S NickaJapanOnyama Limba UNQUALIFIED
Leon D ChuiItalyStephen Shaw NEW
Ricardo D VocelkaJapanAmy Elsner PROPOSAL
Maria S DilliardIndiaBernardo Dominic PROPOSAL
Wickens I NickaCanadaIvan Magalhaes UNQUALIFIED
Jennifer H BowleyIndiaElwin Sharvill UNQUALIFIED
Stacey O StensethItalyElwin Sharvill NEGOTIATION
Nicolas Z RulapaughArgentinaAnna Fali NEW
Ivar N SergiRussiaAsiya Javayant NEW
Octavia K GlickRussiaXuxue Feng QUALIFIED
Mayumi F BologniaJapanIvan Magalhaes PROPOSAL
Claire C BowleyGermanyOnyama Limba QUALIFIED
Tony S ButtRussiaIvan Magalhaes UNQUALIFIED
Maisha G CaldareraAustraliaAsiya Javayant NEGOTIATION
Mayumi C InouyeRussiaElwin Sharvill UNQUALIFIED
Maria J FigeroaUnited KingdomXuxue Feng RENEWAL
Aruna D BowleyIndiaAnna Fali UNQUALIFIED
Antonio W FigeroaGermanyBernardo Dominic NEW
Darci L SaylorsFranceXuxue Feng PROPOSAL
Ashley I CaldareraRussiaOnyama Limba NEW
Darci L FigeroaGermanyBernardo Dominic NEW
David E OldroydRussiaAmy Elsner NEGOTIATION
Aruna K SaylorsGermanyBernardo Dominic PROPOSAL
Aika Q RutaBrazilAmy Elsner RENEWAL
Julie J WhobreyAustraliaStephen Shaw PROPOSAL
Greenwood R SlusarskiIndiaOnyama Limba NEW
Ashley Z KolmetzItalyAnna Fali NEGOTIATION
Kaitlin Q WaycottBrazilAmy Elsner QUALIFIED
Murillo H IturbideRussiaAnna Fali RENEWAL
Morrow X VocelkaBrazilAnna Fali NEW
Munro N SchemmerBrazilAmy Elsner NEGOTIATION
Kaitlin K PaprockiItalyIoni Bowcher QUALIFIED
Darci C FigeroaFranceAmy Elsner NEGOTIATION
Deepesh C IturbideSpainElwin Sharvill NEW
Cody B MorascaRussiaIvan Magalhaes RENEWAL
Alejandro R InouyeAustraliaElwin Sharvill QUALIFIED
Ashley V StensethArgentinaXuxue Feng UNQUALIFIED
Clifford R AmigonIndiaAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
James F NestleCanadaOnyama Limba RENEWAL
Morrow D WaycottAustraliaXuxue Feng NEGOTIATION
Ivar F ButtJapanXuxue Feng QUALIFIED
Jennifer R BowleyFranceStephen Shaw PROPOSAL
Ashley B SaylorsRussiaIvan Magalhaes QUALIFIED
Leja L PoquetteItalyStephen Shaw NEGOTIATION
Francesco U VocelkaRussiaAsiya Javayant RENEWAL
Cody F WhobreyArgentinaIoni Bowcher PROPOSAL
Wickens M AlbaresSpainBernardo Dominic NEW
Jennifer I CampainGermanyXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony H RoysterUnited Kingdom2024-04-05Rousseaux, Michael Esq PROPOSAL87Bernardo Dominic
1001Jones R ShinkoBrazil2024-04-14Benton, John B Jr QUALIFIED63Xuxue Feng
1002Darci L NestleIndia2024-04-12Morlong Associates PROPOSAL24Bernardo Dominic
1003Rodrigues G OldroydIndia2024-04-14Feiner Bros NEW91Ivan Magalhaes
1004Munro A PerinGermany2024-04-07Chanay, Jeffrey A Esq PROPOSAL48Stephen Shaw
1005David Z TollnerGermany2024-04-27Chanay, Jeffrey A Esq NEW28Anna Fali
1006Munro N StockhamGermany2024-04-10Buckley Miller Wright NEGOTIATION56Xuxue Feng
1007Jeanfrancois C WieserJapan2024-04-16Rousseaux, Michael Esq NEW75Amy Elsner
1008Francesco O RutaCanada2024-04-20Rousseaux, Michael Esq NEW96Stephen Shaw
1009Greenwood S WaycottAustralia2024-04-08Commercial Press UNQUALIFIED61Xuxue Feng
1010Faith J NestleIndia2024-03-31Truhlar And Truhlar Attys NEW73Amy Elsner
1011Arvin E FerenczAustralia2024-04-03Rangoni Of Florence PROPOSAL43Stephen Shaw
1012Maisha F SchemmerRussia2024-04-05Chanay, Jeffrey A Esq QUALIFIED18Stephen Shaw
1013Misaki U DilliardGermany2024-04-14Chapman, Ross E Esq NEGOTIATION16Ioni Bowcher
1014Leon V CaldareraItaly2024-04-02Feiner Bros UNQUALIFIED74Bernardo Dominic
1015Emily B BologniaGermany2024-03-30Dorl, James J Esq NEGOTIATION78Xuxue Feng
1016Sinclair K PaprockiSpain2024-04-12Rousseaux, Michael Esq NEW23Onyama Limba
1017Faith J KuskoSpain2024-03-31Chemel, James L Cpa NEW64Xuxue Feng
1018Clifford N KolmetzRussia2024-04-22Chemel, James L Cpa UNQUALIFIED60Anna Fali
1019Kaitlin J MaletBrazil2024-04-11Morlong Associates NEW39Onyama Limba
1020Emily T SaylorsRussia2024-04-11Rangoni Of Florence UNQUALIFIED25Stephen Shaw
1021Alejandro K KuskoGermany2024-04-11Feiner Bros PROPOSAL77Stephen Shaw
1022Clifford V VenereCanada2024-03-30Rangoni Of Florence NEW63Anna Fali
1023Greenwood I ShinkoRussia2024-04-22King, Christopher A Esq PROPOSAL68Stephen Shaw
1024Chavez F BriddickCanada2024-04-17Commercial Press NEGOTIATION65Amy Elsner
1025Nicolas U BriddickAustralia2024-04-12Printing Dimensions QUALIFIED82Ivan Magalhaes
1026Emily E RulapaughBrazil2024-04-15Benton, John B Jr QUALIFIED70Stephen Shaw
1027Aruna T OstroskyAustralia2024-04-09Benton, John B Jr NEW86Ivan Magalhaes
1028Chavez G BowleyIndia2024-04-12Printing Dimensions PROPOSAL29Elwin Sharvill
1029Clifford H NestleSpain2024-04-26Dorl, James J Esq NEGOTIATION39Anna Fali
1030Arvin V SaylorsRussia2024-04-11Feiner Bros PROPOSAL28Stephen Shaw
1031Francesco K ButtJapan2024-04-07Commercial Press UNQUALIFIED46Amy Elsner
1032Costa C ShinkoItaly2024-03-31Chapman, Ross E Esq RENEWAL72Xuxue Feng
1033David H MaletArgentina2024-04-10Truhlar And Truhlar Attys QUALIFIED46Ioni Bowcher
1034Kadeem A ShinkoRussia2024-04-11Chanay, Jeffrey A Esq QUALIFIED73Elwin Sharvill
1035Alejandro C PerinSpain2024-04-12Buckley Miller Wright PROPOSAL12Ioni Bowcher
1036Aruna Z BowleyRussia2024-04-07Chapman, Ross E Esq UNQUALIFIED60Stephen Shaw
1037Faith K FerenczCanada2024-04-17Rangoni Of Florence NEW71Stephen Shaw
1038Ashley C ShinkoFrance2024-03-31Chapman, Ross E Esq NEW48Ioni Bowcher
1039Leon B MarrierRussia2024-04-14King, Christopher A Esq NEW48Xuxue Feng
1040Rodrigues L PaprockiArgentina2024-03-30Benton, John B Jr NEW36Ivan Magalhaes
1041Munro S GauchoArgentina2024-03-31Truhlar And Truhlar Attys QUALIFIED24Elwin Sharvill
1042Alejandro D MacleadItaly2024-04-20Benton, John B Jr RENEWAL70Anna Fali
1043Alejandro B MorascaSpain2024-03-30Commercial Press NEGOTIATION68Anna Fali
1044Cody W ChuiItaly2024-04-26Rousseaux, Michael Esq NEGOTIATION54Ioni Bowcher
1045David I BowleyRussia2024-04-01Feltz Printing Service UNQUALIFIED97Ioni Bowcher
1046Aika T ShinkoRussia2024-04-18Dorl, James J Esq RENEWAL46Xuxue Feng
1047Jeanfrancois R StockhamFrance2024-04-18Chanay, Jeffrey A Esq PROPOSAL33Anna Fali
1048Silvio E ChuiGermany2024-04-22Chanay, Jeffrey A Esq NEW60Onyama Limba
1049Johnson G SaylorsJapan2024-04-03Benton, John B Jr NEW65Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Cody T TollnerSpainIoni Bowcher NEW
Greenwood H SlusarskiSpainStephen Shaw PROPOSAL
Jones O FlosiGermanyAnna Fali PROPOSAL
Costa J StockhamRussiaAmy Elsner NEW
Greenwood W StockhamIndiaAnna Fali QUALIFIED
Deepesh D StensethIndiaStephen Shaw RENEWAL
Alejandro C PerinGermanyIvan Magalhaes QUALIFIED
Julie O WaycottRussiaElwin Sharvill RENEWAL
Isabel P AlbaresBrazilAsiya Javayant UNQUALIFIED
Maisha Y BowleyItalyOnyama Limba RENEWAL
Octavia Y PoquetteBrazilAsiya Javayant NEGOTIATION
Aika S StensethFranceAnna Fali RENEWAL
Deepesh G BowleyCanadaAnna Fali NEGOTIATION
Jeanfrancois L WieserBrazilAmy Elsner QUALIFIED
Cody T NestleFranceAmy Elsner RENEWAL
Leja T WhobreyArgentinaOnyama Limba PROPOSAL
Stacey S StockhamUnited KingdomAsiya Javayant RENEWAL
Adams D TollnerSpainStephen Shaw QUALIFIED
Clifford G DoeFranceIvan Magalhaes QUALIFIED
Octavia Q FigeroaArgentinaIvan Magalhaes PROPOSAL
Jones O GarufiRussiaAmy Elsner QUALIFIED
Izzy I SlusarskiAustraliaStephen Shaw UNQUALIFIED
Greenwood Q DoeAustraliaOnyama Limba QUALIFIED
Sinclair V OstroskyJapanBernardo Dominic PROPOSAL
Rodrigues C BowleyItalyBernardo Dominic QUALIFIED
Ashley D CaldareraSpainIoni Bowcher QUALIFIED
Rodrigues P StockhamCanadaXuxue Feng NEGOTIATION
Tony O DoeArgentinaStephen Shaw PROPOSAL
Costa E TollnerGermanyIoni Bowcher NEGOTIATION
Julie K WaycottCanadaXuxue Feng RENEWAL
Julie F RulapaughUnited KingdomAmy Elsner RENEWAL
Ricardo Z NestleArgentinaAmy Elsner RENEWAL
Johnson R MorascaRussiaAnna Fali UNQUALIFIED
Costa Z TollnerJapanAsiya Javayant QUALIFIED
Claire I PerinBrazilStephen Shaw RENEWAL
Julie A TollnerRussiaAsiya Javayant UNQUALIFIED
Munro Y StockhamItalyXuxue Feng NEGOTIATION
Leja O AlbaresGermanyXuxue Feng RENEWAL
Kaitlin R PoquetteJapanBernardo Dominic PROPOSAL
Mayumi M OstroskyIndiaAsiya Javayant PROPOSAL
Deepesh W BologniaUnited KingdomXuxue Feng PROPOSAL
Juan V GarufiCanadaOnyama Limba NEW
Munro T BriddickArgentinaAnna Fali NEW
Kaitlin K CaldareraIndiaBernardo Dominic RENEWAL
Aika L AlbaresArgentinaAnna Fali PROPOSAL
Isabel N PerinRussiaStephen Shaw RENEWAL
Izzy N IturbideCanadaBernardo Dominic RENEWAL
Clifford A AlbaresBrazilAnna Fali PROPOSAL
Izzy O DarakjyCanadaAnna Fali RENEWAL
Isabel C RulapaughSpainIoni Bowcher NEW
Frozen Columns
Name
Antonio Y Waycott
Kaitlin D Briddick
Maisha R Foller
Francesco Z Malet
Faith T Ostrosky
Mujtaba M Stenseth
Salvatore F Wieser
Clifford F Venere
James Y Briddick
Mayumi J Vocelka
Sinclair H Kolmetz
Claire I Nicka
Izzy B Slusarski
Emily B Garufi
Salvatore B Ferencz
Smith A Ostrosky
Greenwood S Paprocki
Emily A Malet
Kaitlin I Albares
Maria D Doe
Octavia D Doe
Aditya A Shinko
Antonio J Marrier
Jennifer P Saylors
Chavez V Kusko
Sinclair D Rulapaugh
Francesco L Bowley
Mayumi W Rim
Greenwood Y Kusko
Silvio A Poquette
Jennifer B Inouye
Rodrigues G Doe
Ashley V Albares
Francesco H Malet
Tony X Morasca
Johnson K Caldarera
Stacey I Campain
Mujtaba S Darakjy
Aruna M Venere
Jefferson Y Waycott
Octavia R Dilliard
Salvatore T Glick
Wickens K Ferencz
Francesco P Chui
Jeanfrancois G Albares
Alejandro O Stockham
James C Wieser
Jones K Briddick
Maisha D Stenseth
Rodrigues N Gillian
IdCountryDate
1000India2024-04-12
1001Japan2024-04-04
1002Australia2024-04-10
1003Germany2024-04-05
1004Australia2024-04-05
1005Brazil2024-04-28
1006Japan2024-04-13
1007Japan2024-04-24
1008Russia2024-04-27
1009Australia2024-04-23
1010Argentina2024-04-07
1011France2024-04-22
1012Canada2024-04-06
1013Argentina2024-04-02
1014Australia2024-04-01
1015Spain2024-04-19
1016Canada2024-04-20
1017Russia2024-04-28
1018Canada2024-04-11
1019Russia2024-04-09
1020Argentina2024-03-31
1021Canada2024-04-21
1022Japan2024-04-06
1023Spain2024-04-15
1024Germany2024-04-13
1025United Kingdom2024-03-30
1026United Kingdom2024-04-17
1027Russia2024-04-01
1028Canada2024-04-18
1029United Kingdom2024-04-09
1030Brazil2024-04-08
1031Canada2024-04-13
1032Brazil2024-04-17
1033Argentina2024-03-30
1034Japan2024-04-07
1035India2024-04-23
1036United Kingdom2024-04-20
1037Spain2024-04-03
1038Australia2024-04-04
1039France2024-04-26
1040Brazil2024-04-20
1041Germany2024-04-05
1042Argentina2024-04-19
1043Russia2024-03-30
1044France2024-04-24
1045France2024-04-04
1046Germany2024-04-23
1047Japan2024-04-04
1048Argentina2024-03-31
1049Japan2024-04-17

On-Demand Data

NameIdCountryDate
Mujtaba C Doe1000India2024-04-19
Emily Z Shinko1001Japan2024-04-26
Francesco A Ferencz1002Italy2024-03-31
Francesco I Gillian1003Brazil2024-04-18
Claire G Shinko1004Russia2024-04-10
Sinclair C Poquette1005France2024-04-19
Izzy B Bowley1006India2024-04-10
Rodrigues P Nestle1007Italy2024-04-16
James O Tollner1008Argentina2024-04-14
Mujtaba F Kolmetz1009Italy2024-04-08
Greenwood U Briddick1010Brazil2024-04-26
Juan C Schemmer1011United Kingdom2024-04-22
Mayumi E Maclead1012Australia2024-04-17
Francesco L Wieser1013Germany2024-04-03
Costa C Wieser1014Argentina2024-04-09
Kaitlin M Maclead1015Spain2024-04-23
Kaitlin X Shinko1016Spain2024-04-12
Wickens V Maclead1017United Kingdom2024-03-31
Morrow P Gaucho1018United Kingdom2024-04-27
Jeanfrancois R Morasca1019Canada2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson A ChuiFranceStephen Shaw NEGOTIATION
Mayumi H RutaArgentinaIoni Bowcher UNQUALIFIED
Jeanfrancois R SaylorsBrazilAsiya Javayant UNQUALIFIED
Aruna W NestleRussiaAsiya Javayant QUALIFIED
Ivar Z VocelkaRussiaBernardo Dominic NEGOTIATION
Deepesh F CaudyRussiaXuxue Feng NEGOTIATION
Wickens A FerenczJapanIvan Magalhaes QUALIFIED
David I WieserCanadaStephen Shaw NEGOTIATION
Darci K WhobreyFranceXuxue Feng UNQUALIFIED
Maisha L NickaBrazilElwin Sharvill QUALIFIED
Leon L MaletBrazilAsiya Javayant UNQUALIFIED
Mujtaba Q AmigonUnited KingdomAnna Fali NEGOTIATION
Sinclair Y VocelkaBrazilElwin Sharvill QUALIFIED
Stacey U NestleAustraliaStephen Shaw NEGOTIATION
Francesco E NestleAustraliaAmy Elsner UNQUALIFIED
Greenwood S NestleRussiaOnyama Limba RENEWAL
Rodrigues U VenereIndiaIvan Magalhaes NEGOTIATION
Isabel Q TollnerItalyAmy Elsner NEGOTIATION
Misaki V ButtAustraliaStephen Shaw NEGOTIATION
Wickens Z RulapaughIndiaAmy Elsner QUALIFIED
Claire K GlickArgentinaStephen Shaw NEGOTIATION
Mujtaba C DoeAustraliaAnna Fali NEW
Ricardo O IturbideIndiaAsiya Javayant RENEWAL
Jeanfrancois I DilliardBrazilAmy Elsner UNQUALIFIED
Claire K MaletItalyIoni Bowcher NEW
Adams Y SaylorsUnited KingdomOnyama Limba UNQUALIFIED
Aruna E BologniaCanadaElwin Sharvill PROPOSAL
Leon U FerenczAustraliaAnna Fali NEW
Salvatore M VocelkaBrazilStephen Shaw QUALIFIED
Ashley G ChuiJapanBernardo Dominic NEGOTIATION
Costa B InouyeUnited KingdomAmy Elsner PROPOSAL
Clifford H MarrierJapanAnna Fali RENEWAL
Isabel R GarufiAustraliaAsiya Javayant RENEWAL
Adams S ButtIndiaBernardo Dominic RENEWAL
Cody R AmigonArgentinaXuxue Feng NEGOTIATION
Ivar B PaprockiJapanAnna Fali NEW
Kaitlin I FlosiBrazilBernardo Dominic PROPOSAL
David F SlusarskiRussiaIoni Bowcher QUALIFIED
Jennifer P GarufiFranceIoni Bowcher NEGOTIATION
Antonio B WhobreyGermanyElwin Sharvill NEGOTIATION

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