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
Costa E WhobreyFranceStephen Shaw UNQUALIFIED
Kadeem S GauchoItalyXuxue Feng PROPOSAL
Greenwood X VocelkaRussiaElwin Sharvill UNQUALIFIED
Mujtaba Y BriddickBrazilIoni Bowcher UNQUALIFIED
Rodrigues X AmigonSpainOnyama Limba NEW
Leon S GauchoAustraliaIvan Magalhaes PROPOSAL
Antonio L RimGermanyElwin Sharvill NEW
Aditya Q GillianBrazilAsiya Javayant UNQUALIFIED
Octavia L StockhamSpainXuxue Feng UNQUALIFIED
Aditya P TollnerSpainAsiya Javayant PROPOSAL
Ivar M NestleArgentinaOnyama Limba NEGOTIATION
Ashley F DilliardFranceIoni Bowcher RENEWAL
Emily D VocelkaSpainOnyama Limba NEGOTIATION
Chavez G PerinJapanElwin Sharvill PROPOSAL
Aika P FerenczItalyOnyama Limba RENEWAL
Juan B FigeroaCanadaAnna Fali PROPOSAL
Maisha U StensethAustraliaIoni Bowcher PROPOSAL
Izzy G AmigonSpainAnna Fali QUALIFIED
Isabel S FlosiAustraliaOnyama Limba QUALIFIED
Kadeem M PaprockiCanadaAnna Fali NEW
Smith R FlosiSpainStephen Shaw QUALIFIED
Aditya T MaletGermanyStephen Shaw PROPOSAL
Johnson D AmigonSpainIoni Bowcher PROPOSAL
Chavez K GlickSpainOnyama Limba NEW
Leon Q MarrierAustraliaOnyama Limba QUALIFIED
Kaitlin C MaletBrazilOnyama Limba QUALIFIED
Stacey L FigeroaUnited KingdomBernardo Dominic NEW
Deepesh P StockhamJapanAmy Elsner UNQUALIFIED
Jennifer P IturbideIndiaIoni Bowcher NEW
Faith B CaudyArgentinaStephen Shaw NEW
Aruna A NestleAustraliaIoni Bowcher NEGOTIATION
Kadeem A NickaAustraliaIvan Magalhaes RENEWAL
Alejandro E AmigonFranceIoni Bowcher UNQUALIFIED
Aruna E CaudyJapanStephen Shaw RENEWAL
Chavez C StockhamCanadaAmy Elsner UNQUALIFIED
Clifford B InouyeUnited KingdomBernardo Dominic UNQUALIFIED
Aditya U KolmetzRussiaStephen Shaw NEW
Salvatore M SergiCanadaIoni Bowcher QUALIFIED
James M GillianBrazilIvan Magalhaes UNQUALIFIED
Emily X FerenczGermanyStephen Shaw NEGOTIATION
Jennifer P AlbaresBrazilStephen Shaw QUALIFIED
Chavez H GillianCanadaStephen Shaw PROPOSAL
Cody M BowleyGermanyAnna Fali RENEWAL
Adams U DoeSpainBernardo Dominic NEGOTIATION
Jeanfrancois V RimArgentinaIoni Bowcher UNQUALIFIED
Darci I DoeAustraliaAsiya Javayant UNQUALIFIED
Aruna S NestleJapanIoni Bowcher PROPOSAL
Isabel Y RutaCanadaIvan Magalhaes NEGOTIATION
Darci X RulapaughItalyStephen Shaw QUALIFIED
Sinclair J BologniaCanadaAsiya Javayant RENEWAL
Horizontal
NameCountryRepresentativeStatus
Costa S VocelkaArgentinaElwin Sharvill UNQUALIFIED
Jennifer K InouyeSpainAnna Fali UNQUALIFIED
Maria J VocelkaItalyAsiya Javayant NEW
Maisha S VocelkaGermanyElwin Sharvill UNQUALIFIED
Tony Q VocelkaGermanyAnna Fali NEW
Leon P NickaItalyBernardo Dominic PROPOSAL
Izzy C PaprockiUnited KingdomIoni Bowcher UNQUALIFIED
Izzy W InouyeSpainElwin Sharvill QUALIFIED
Antonio J StockhamItalyStephen Shaw NEGOTIATION
Tony T GillianUnited KingdomIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin A CaudyAustralia2024-04-06Feltz Printing Service PROPOSAL27Asiya Javayant
1001Ricardo D OldroydFrance2024-04-05Printing Dimensions QUALIFIED11Xuxue Feng
1002Maisha P FerenczGermany2024-03-27Rangoni Of Florence PROPOSAL41Ioni Bowcher
1003Greenwood B GillianJapan2024-03-29Feltz Printing Service NEGOTIATION17Elwin Sharvill
1004Faith K StensethBrazil2024-04-17Truhlar And Truhlar Attys UNQUALIFIED3Ioni Bowcher
1005James Y CaudyUnited Kingdom2024-04-10Dorl, James J Esq RENEWAL53Elwin Sharvill
1006Smith J GarufiFrance2024-04-14Dorl, James J Esq RENEWAL60Stephen Shaw
1007Murillo C ButtBrazil2024-04-11Commercial Press NEW85Anna Fali
1008Clifford I SergiJapan2024-04-09Rousseaux, Michael Esq QUALIFIED87Onyama Limba
1009Salvatore W VocelkaFrance2024-04-06Benton, John B Jr NEGOTIATION7Ioni Bowcher
1010Adams I SchemmerItaly2024-03-29King, Christopher A Esq PROPOSAL42Asiya Javayant
1011Arvin I RoysterBrazil2024-04-05Commercial Press QUALIFIED15Ioni Bowcher
1012Smith B RoysterRussia2024-03-31Morlong Associates RENEWAL71Onyama Limba
1013Darci O ButtJapan2024-04-15Chemel, James L Cpa QUALIFIED84Anna Fali
1014Kadeem Z FlosiFrance2024-04-15Chapman, Ross E Esq QUALIFIED76Anna Fali
1015James N ShinkoGermany2024-04-06Rousseaux, Michael Esq QUALIFIED61Amy Elsner
1016Tony N OstroskyRussia2024-04-19Chapman, Ross E Esq PROPOSAL32Asiya Javayant
1017Leja R ChuiIndia2024-04-12Rousseaux, Michael Esq NEW34Ivan Magalhaes
1018Deepesh N MaletFrance2024-04-21Commercial Press QUALIFIED15Elwin Sharvill
1019Aruna Y ChuiUnited Kingdom2024-04-01Chemel, James L Cpa UNQUALIFIED89Bernardo Dominic
1020Smith Z AmigonAustralia2024-03-30Chemel, James L Cpa NEW46Elwin Sharvill
1021Aruna Q OldroydItaly2024-04-20Printing Dimensions UNQUALIFIED75Ivan Magalhaes
1022Sinclair T StockhamAustralia2024-04-22Dorl, James J Esq QUALIFIED0Stephen Shaw
1023Rodrigues L SlusarskiArgentina2024-04-24Dorl, James J Esq PROPOSAL24Elwin Sharvill
1024Maisha Q ShinkoRussia2024-04-02Printing Dimensions NEGOTIATION62Stephen Shaw
1025Chavez F CaldareraJapan2024-04-23Morlong Associates NEGOTIATION44Asiya Javayant
1026Claire B WieserItaly2024-04-23Buckley Miller Wright UNQUALIFIED76Amy Elsner
1027Ivar E GarufiGermany2024-04-12Feiner Bros UNQUALIFIED46Anna Fali
1028Mujtaba Q MacleadCanada2024-03-26Rousseaux, Michael Esq NEGOTIATION22Xuxue Feng
1029Isabel X DoeAustralia2024-03-31Buckley Miller Wright QUALIFIED92Ivan Magalhaes
1030Greenwood P BriddickItaly2024-03-27Truhlar And Truhlar Attys RENEWAL42Elwin Sharvill
1031Leon R SergiItaly2024-04-12Buckley Miller Wright NEGOTIATION84Stephen Shaw
1032Arvin P StockhamCanada2024-04-06Feltz Printing Service RENEWAL57Elwin Sharvill
1033Salvatore K OstroskyIndia2024-03-29Chemel, James L Cpa PROPOSAL73Ivan Magalhaes
1034James M CaldareraGermany2024-04-14Chanay, Jeffrey A Esq NEW78Stephen Shaw
1035Octavia R FigeroaJapan2024-04-04Truhlar And Truhlar Attys NEGOTIATION59Elwin Sharvill
1036Mujtaba P KolmetzRussia2024-04-07Chapman, Ross E Esq RENEWAL12Amy Elsner
1037Izzy R DilliardAustralia2024-04-08Rousseaux, Michael Esq NEGOTIATION68Asiya Javayant
1038Arvin X GlickRussia2024-04-13Rangoni Of Florence PROPOSAL51Amy Elsner
1039Aika P MarrierUnited Kingdom2024-03-31Buckley Miller Wright UNQUALIFIED80Asiya Javayant
1040Maria M FerenczSpain2024-03-31Rousseaux, Michael Esq QUALIFIED83Ivan Magalhaes
1041Jones D BowleyBrazil2024-04-18Printing Dimensions RENEWAL63Ioni Bowcher
1042Jones C SaylorsItaly2024-04-21King, Christopher A Esq RENEWAL1Anna Fali
1043Adams T WhobreyItaly2024-04-04Chemel, James L Cpa NEGOTIATION60Xuxue Feng
1044Stacey Z CampainIndia2024-04-02Buckley Miller Wright NEGOTIATION97Anna Fali
1045Izzy O GlickJapan2024-04-06King, Christopher A Esq NEGOTIATION53Ioni Bowcher
1046David R SergiJapan2024-04-12Chapman, Ross E Esq QUALIFIED86Anna Fali
1047Stacey P CampainFrance2024-03-27Benton, John B Jr PROPOSAL26Asiya Javayant
1048Octavia S ButtAustralia2024-04-15Chanay, Jeffrey A Esq NEW91Ivan Magalhaes
1049Mujtaba C StensethIndia2024-04-04Feltz Printing Service NEGOTIATION24Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Smith Q DilliardJapanOnyama Limba UNQUALIFIED
Aruna C OstroskyCanadaStephen Shaw UNQUALIFIED
Darci H FlosiItalyIvan Magalhaes NEW
James I DoeGermanyAmy Elsner UNQUALIFIED
Smith J KuskoSpainXuxue Feng RENEWAL
Emily D DilliardSpainXuxue Feng UNQUALIFIED
Johnson L CaldareraArgentinaAnna Fali QUALIFIED
Izzy E SergiUnited KingdomAsiya Javayant QUALIFIED
Jefferson C KolmetzJapanBernardo Dominic RENEWAL
Deepesh X GarufiUnited KingdomBernardo Dominic RENEWAL
Smith Y SaylorsSpainAnna Fali NEW
Salvatore Y StensethJapanStephen Shaw NEGOTIATION
Silvio O BriddickIndiaBernardo Dominic NEW
Silvio Y ChuiAustraliaElwin Sharvill PROPOSAL
James R RulapaughFranceOnyama Limba PROPOSAL
Alejandro Q SchemmerIndiaAmy Elsner QUALIFIED
Adams A RutaRussiaAsiya Javayant NEGOTIATION
Misaki K RoysterFranceBernardo Dominic QUALIFIED
Wickens S VocelkaRussiaIoni Bowcher QUALIFIED
Ashley D IturbideJapanIvan Magalhaes PROPOSAL
Aika H MacleadSpainOnyama Limba QUALIFIED
Julie M AmigonAustraliaAmy Elsner NEW
Salvatore J KolmetzBrazilOnyama Limba NEGOTIATION
Kadeem I OstroskyAustraliaStephen Shaw QUALIFIED
Wickens Q AmigonSpainAnna Fali NEGOTIATION
Adams J BologniaUnited KingdomAmy Elsner NEGOTIATION
Ashley T StensethGermanyAsiya Javayant QUALIFIED
Adams I PoquetteSpainIvan Magalhaes NEGOTIATION
Misaki Q InouyeCanadaOnyama Limba NEW
Arvin X VenereBrazilElwin Sharvill PROPOSAL
Rodrigues V DarakjySpainElwin Sharvill PROPOSAL
Aika A WieserJapanBernardo Dominic RENEWAL
Jeanfrancois Z DarakjyJapanAmy Elsner QUALIFIED
Cody D MaletCanadaElwin Sharvill RENEWAL
Deepesh Y MorascaItalyXuxue Feng PROPOSAL
Ricardo T WaycottItalyAmy Elsner NEW
Julie F KolmetzSpainIvan Magalhaes UNQUALIFIED
Deepesh F GarufiArgentinaElwin Sharvill UNQUALIFIED
Wickens W KolmetzArgentinaBernardo Dominic QUALIFIED
David U SaylorsArgentinaElwin Sharvill UNQUALIFIED
Ivar I FerenczUnited KingdomElwin Sharvill PROPOSAL
Aika E GarufiRussiaBernardo Dominic RENEWAL
Misaki X ButtFranceIoni Bowcher NEGOTIATION
Murillo E MorascaArgentinaXuxue Feng QUALIFIED
Misaki L RulapaughGermanyAmy Elsner UNQUALIFIED
Octavia Y ButtArgentinaElwin Sharvill QUALIFIED
Ricardo L SlusarskiCanadaStephen Shaw QUALIFIED
Maria M NestleFranceIvan Magalhaes RENEWAL
James S WaycottFranceIvan Magalhaes QUALIFIED
Emily M ChuiArgentinaAnna Fali NEW
Frozen Columns
Name
Leon X Nicka
Kaitlin T Glick
Sinclair Z Amigon
Stacey M Venere
Johnson R Bolognia
Maria C Briddick
Greenwood Q Amigon
Jennifer F Doe
Munro N Malet
Izzy M Inouye
Aika R Nestle
Claire I Saylors
Jennifer A Iturbide
Morrow N Kusko
Costa I Ruta
Antonio U Foller
Rodrigues N Inouye
Isabel M Maclead
Costa C Garufi
Isabel U Marrier
Leja T Nicka
Ricardo L Oldroyd
Juan K Albares
Ashley N Inouye
Faith F Tollner
Julie T Ostrosky
Aruna R Gillian
Kadeem D Butt
Juan K Iturbide
David F Foller
Stacey A Slusarski
Aruna X Caldarera
Mayumi Z Slusarski
Octavia Y Bolognia
Smith N Maclead
Kadeem A Iturbide
Sinclair X Wieser
Greenwood Z Darakjy
Mayumi S Paprocki
Arvin E Poquette
Costa D Gaucho
Kadeem Z Wieser
Nicolas D Bowley
Misaki N Maclead
Mayumi I Oldroyd
Mayumi T Doe
Aika S Tollner
James B Doe
Rodrigues T Stenseth
Sinclair E Malet
IdCountryDate
1000Argentina2024-04-11
1001France2024-04-18
1002Spain2024-04-11
1003Spain2024-04-23
1004Japan2024-04-03
1005Japan2024-04-03
1006Japan2024-03-26
1007Brazil2024-04-17
1008France2024-04-22
1009Brazil2024-04-09
1010Canada2024-03-31
1011France2024-04-09
1012United Kingdom2024-04-01
1013Brazil2024-04-21
1014Canada2024-04-19
1015Japan2024-04-18
1016Spain2024-03-27
1017India2024-04-06
1018Italy2024-04-19
1019Argentina2024-04-07
1020Germany2024-04-12
1021India2024-03-31
1022Germany2024-04-18
1023United Kingdom2024-04-02
1024Australia2024-04-21
1025Argentina2024-04-24
1026India2024-04-03
1027Australia2024-03-27
1028United Kingdom2024-03-29
1029Brazil2024-03-28
1030France2024-04-07
1031Germany2024-03-30
1032Italy2024-03-29
1033United Kingdom2024-04-19
1034United Kingdom2024-03-26
1035Russia2024-04-18
1036Argentina2024-04-01
1037United Kingdom2024-04-21
1038Japan2024-04-20
1039Spain2024-04-15
1040Japan2024-03-30
1041Russia2024-04-11
1042Spain2024-04-22
1043Italy2024-04-22
1044France2024-04-09
1045Italy2024-04-13
1046Germany2024-04-19
1047Russia2024-04-11
1048Italy2024-04-08
1049Argentina2024-04-07

On-Demand Data

NameIdCountryDate
Aditya B Kolmetz1000India2024-04-13
Stacey W Nestle1001Spain2024-03-27
Kaitlin I Paprocki1002Brazil2024-04-01
Aditya R Nicka1003Australia2024-04-12
Johnson O Bowley1004Australia2024-04-18
Juan R Butt1005Japan2024-04-06
Wickens D Waycott1006Germany2024-04-08
Aika B Poquette1007India2024-04-18
Costa O Caudy1008Argentina2024-04-21
Maria Z Figeroa1009Japan2024-04-06
Salvatore R Perin1010Spain2024-04-02
Leja M Garufi1011Russia2024-04-02
Salvatore D Glick1012United Kingdom2024-04-16
Silvio E Waycott1013Russia2024-04-21
Nicolas F Bowley1014Canada2024-04-24
Costa U Nicka1015United Kingdom2024-04-04
Isabel W Oldroyd1016France2024-03-29
Leja D Ferencz1017Germany2024-04-04
Antonio K Whobrey1018India2024-04-05
Octavia J Maclead1019Australia2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley L PaprockiRussiaIoni Bowcher PROPOSAL
Greenwood S MorascaItalyAnna Fali QUALIFIED
Claire Q GlickAustraliaAsiya Javayant RENEWAL
Munro T RoysterCanadaXuxue Feng QUALIFIED
Greenwood M CampainAustraliaAmy Elsner PROPOSAL
Mayumi V ChuiCanadaIoni Bowcher QUALIFIED
Aruna S ButtJapanStephen Shaw PROPOSAL
Aditya F PerinIndiaOnyama Limba RENEWAL
Wickens C StockhamRussiaOnyama Limba RENEWAL
Misaki A MaletIndiaStephen Shaw RENEWAL
Jennifer S AlbaresArgentinaAnna Fali RENEWAL
Aika K GarufiAustraliaStephen Shaw UNQUALIFIED
Ivar S ShinkoCanadaAnna Fali QUALIFIED
Maisha K CaudyAustraliaAmy Elsner NEW
Mujtaba T SchemmerSpainElwin Sharvill RENEWAL
Kaitlin K SergiSpainAmy Elsner NEGOTIATION
Maisha O PaprockiItalyXuxue Feng PROPOSAL
Isabel E GarufiJapanOnyama Limba QUALIFIED
Costa A PerinArgentinaAnna Fali PROPOSAL
Julie L StensethFranceAmy Elsner QUALIFIED
Costa O SergiCanadaIoni Bowcher NEGOTIATION
Mayumi S GarufiSpainIvan Magalhaes NEGOTIATION
Kadeem W FigeroaIndiaIvan Magalhaes RENEWAL
Maria M GlickItalyAsiya Javayant QUALIFIED
Smith B VenereSpainAsiya Javayant QUALIFIED
Claire Y DoeAustraliaAsiya Javayant NEW
Munro D MarrierSpainBernardo Dominic PROPOSAL
Morrow L KuskoAustraliaOnyama Limba RENEWAL
Smith Q PoquetteArgentinaAmy Elsner RENEWAL
Jennifer L MacleadArgentinaAsiya Javayant NEW
Kadeem W BriddickItalyXuxue Feng UNQUALIFIED
Tony B SergiItalyAnna Fali NEW
Maisha K DoeFranceIoni Bowcher RENEWAL
Rodrigues O AlbaresCanadaAmy Elsner UNQUALIFIED
Wickens E KolmetzCanadaAmy Elsner QUALIFIED
Chavez E BologniaItalyAmy Elsner UNQUALIFIED
Leja T DoeJapanAnna Fali QUALIFIED
Juan S MacleadBrazilElwin Sharvill QUALIFIED
Nicolas B StensethJapanAnna Fali UNQUALIFIED
Wickens O GlickSpainAsiya Javayant 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>