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
Aika D MaletGermanyIvan Magalhaes NEW
Greenwood Y FollerUnited KingdomStephen Shaw PROPOSAL
Arvin V CaldareraJapanElwin Sharvill NEW
Ricardo V FlosiCanadaElwin Sharvill PROPOSAL
Munro I InouyeSpainIvan Magalhaes PROPOSAL
Claire Q NestleJapanIvan Magalhaes PROPOSAL
David F InouyeCanadaAsiya Javayant NEGOTIATION
Costa S MaletGermanyIvan Magalhaes RENEWAL
Leon X SaylorsBrazilAnna Fali RENEWAL
Francesco D GauchoFranceStephen Shaw UNQUALIFIED
Jefferson O MarrierUnited KingdomAnna Fali UNQUALIFIED
Nicolas L RimSpainStephen Shaw PROPOSAL
Faith N DarakjyItalyElwin Sharvill NEW
Rodrigues L DoeAustraliaElwin Sharvill UNQUALIFIED
Jefferson E BriddickFranceAsiya Javayant PROPOSAL
Wickens V KuskoArgentinaIvan Magalhaes NEGOTIATION
Francesco X BowleyRussiaStephen Shaw QUALIFIED
Murillo B PaprockiIndiaElwin Sharvill NEW
Adams Q BologniaUnited KingdomStephen Shaw PROPOSAL
Kadeem L RulapaughRussiaAmy Elsner UNQUALIFIED
Claire C RutaSpainStephen Shaw QUALIFIED
Faith K PoquetteJapanAsiya Javayant QUALIFIED
Mayumi Q VenereJapanAsiya Javayant QUALIFIED
Wickens D BologniaFranceAsiya Javayant NEW
Kadeem M FollerCanadaAnna Fali UNQUALIFIED
Emily U GillianJapanOnyama Limba NEGOTIATION
Alejandro I StensethGermanyXuxue Feng RENEWAL
Faith W VenereFranceBernardo Dominic QUALIFIED
James K AmigonItalyIoni Bowcher RENEWAL
Jennifer C FigeroaUnited KingdomElwin Sharvill NEW
Octavia F FigeroaFranceStephen Shaw QUALIFIED
Greenwood N RimFranceXuxue Feng RENEWAL
Mayumi Y OstroskyRussiaAsiya Javayant RENEWAL
Nicolas Y FollerUnited KingdomStephen Shaw PROPOSAL
Leon Y GlickBrazilAsiya Javayant NEW
Kadeem P FlosiIndiaAnna Fali NEW
Deepesh K PoquetteSpainAnna Fali NEGOTIATION
Isabel A SaylorsArgentinaAmy Elsner UNQUALIFIED
Mujtaba W RutaBrazilElwin Sharvill QUALIFIED
Munro O ChuiUnited KingdomAnna Fali NEGOTIATION
Morrow O NestleArgentinaAmy Elsner RENEWAL
Clifford T PerinRussiaXuxue Feng NEW
James F DilliardItalyStephen Shaw NEW
Maisha A WaycottItalyOnyama Limba PROPOSAL
Johnson F SaylorsAustraliaElwin Sharvill RENEWAL
Kadeem B MorascaSpainOnyama Limba NEGOTIATION
Jeanfrancois Z FerenczBrazilBernardo Dominic QUALIFIED
Misaki C MaletIndiaOnyama Limba NEW
Francesco C ShinkoUnited KingdomOnyama Limba RENEWAL
Juan Y RoysterAustraliaAsiya Javayant NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Costa J DarakjyGermanyAsiya Javayant RENEWAL
Nicolas W VocelkaSpainIvan Magalhaes QUALIFIED
Julie R StensethGermanyOnyama Limba PROPOSAL
Mayumi T SaylorsFranceAsiya Javayant QUALIFIED
Nicolas A ChuiCanadaAnna Fali UNQUALIFIED
Jennifer V FollerItalyStephen Shaw PROPOSAL
James F SergiSpainBernardo Dominic PROPOSAL
Mujtaba D FollerBrazilIoni Bowcher NEGOTIATION
Leja N MorascaJapanOnyama Limba NEGOTIATION
David S TollnerSpainXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin X ChuiSpain2024-04-16Morlong Associates RENEWAL18Stephen Shaw
1001Kadeem I WaycottUnited Kingdom2024-04-21Feiner Bros QUALIFIED25Elwin Sharvill
1002Tony S MaletUnited Kingdom2024-04-12Chapman, Ross E Esq PROPOSAL15Elwin Sharvill
1003Claire O WhobreyArgentina2024-04-24Morlong Associates NEW46Bernardo Dominic
1004Arvin O PerinAustralia2024-04-28Morlong Associates NEW31Bernardo Dominic
1005Claire N CaudyCanada2024-04-28Dorl, James J Esq NEW13Ivan Magalhaes
1006Antonio D KolmetzBrazil2024-04-11Chapman, Ross E Esq UNQUALIFIED78Stephen Shaw
1007Jefferson Z GillianRussia2024-04-22King, Christopher A Esq NEW38Ivan Magalhaes
1008Alejandro N ShinkoArgentina2024-05-01Truhlar And Truhlar Attys UNQUALIFIED40Elwin Sharvill
1009Jennifer W SergiRussia2024-04-26Chapman, Ross E Esq QUALIFIED33Onyama Limba
1010Salvatore H FollerIndia2024-04-19Benton, John B Jr QUALIFIED26Ioni Bowcher
1011Leon X PoquetteArgentina2024-04-22Printing Dimensions RENEWAL29Amy Elsner
1012Julie T ChuiAustralia2024-04-07Chapman, Ross E Esq NEW28Elwin Sharvill
1013Ivar N OstroskyGermany2024-04-29King, Christopher A Esq NEGOTIATION84Asiya Javayant
1014Costa G StockhamJapan2024-04-09Dorl, James J Esq NEW57Stephen Shaw
1015Rodrigues E RimAustralia2024-05-01Rousseaux, Michael Esq QUALIFIED60Ioni Bowcher
1016Ivar Z FigeroaJapan2024-04-23Morlong Associates UNQUALIFIED37Elwin Sharvill
1017Maria X SergiFrance2024-04-20Chemel, James L Cpa RENEWAL95Asiya Javayant
1018Cody T FollerSpain2024-04-13Commercial Press PROPOSAL37Xuxue Feng
1019Maisha D VocelkaAustralia2024-04-22Feiner Bros RENEWAL87Xuxue Feng
1020Greenwood Z DilliardFrance2024-04-23Commercial Press NEGOTIATION52Bernardo Dominic
1021Ivar U ButtArgentina2024-04-18Rangoni Of Florence PROPOSAL4Ioni Bowcher
1022Sinclair W SchemmerGermany2024-05-02Dorl, James J Esq UNQUALIFIED4Ioni Bowcher
1023Leja E MarrierItaly2024-04-14Commercial Press NEW33Asiya Javayant
1024Aika J PerinSpain2024-04-20Chanay, Jeffrey A Esq NEGOTIATION53Elwin Sharvill
1025Aruna D BologniaIndia2024-04-24Rangoni Of Florence PROPOSAL13Ioni Bowcher
1026Johnson N PoquetteIndia2024-04-06Truhlar And Truhlar Attys NEW57Stephen Shaw
1027Antonio N MaletBrazil2024-04-21Chapman, Ross E Esq QUALIFIED59Ivan Magalhaes
1028Ricardo O VocelkaFrance2024-04-30Truhlar And Truhlar Attys QUALIFIED24Stephen Shaw
1029Murillo G CaldareraBrazil2024-04-23Commercial Press QUALIFIED41Stephen Shaw
1030Antonio Z CaudyIndia2024-05-05Chemel, James L Cpa RENEWAL4Asiya Javayant
1031Rodrigues I FerenczUnited Kingdom2024-04-25Chanay, Jeffrey A Esq NEGOTIATION19Elwin Sharvill
1032James G RimGermany2024-04-14Morlong Associates NEGOTIATION20Ivan Magalhaes
1033Juan W ShinkoUnited Kingdom2024-04-24Chapman, Ross E Esq NEW22Asiya Javayant
1034Aditya Q KolmetzBrazil2024-04-24Morlong Associates NEGOTIATION58Anna Fali
1035Cody K StensethItaly2024-04-17Dorl, James J Esq NEGOTIATION76Asiya Javayant
1036Misaki N OstroskyBrazil2024-04-18Commercial Press RENEWAL78Onyama Limba
1037Misaki Q FerenczJapan2024-04-21Benton, John B Jr UNQUALIFIED57Asiya Javayant
1038Greenwood U PerinArgentina2024-04-25Rangoni Of Florence PROPOSAL78Bernardo Dominic
1039Deepesh D RulapaughUnited Kingdom2024-04-07Rangoni Of Florence NEW12Anna Fali
1040David I WieserItaly2024-04-13Dorl, James J Esq UNQUALIFIED51Bernardo Dominic
1041David E ShinkoIndia2024-04-27Commercial Press UNQUALIFIED75Asiya Javayant
1042Aika W MorascaItaly2024-04-30Morlong Associates NEGOTIATION10Xuxue Feng
1043Antonio G GauchoAustralia2024-04-28Feltz Printing Service RENEWAL34Xuxue Feng
1044Maria T TollnerUnited Kingdom2024-04-10Feltz Printing Service NEW81Anna Fali
1045Johnson N MarrierRussia2024-04-13Commercial Press QUALIFIED45Xuxue Feng
1046Chavez E RulapaughGermany2024-04-22Truhlar And Truhlar Attys QUALIFIED83Elwin Sharvill
1047Octavia N PaprockiCanada2024-04-11Rousseaux, Michael Esq PROPOSAL83Stephen Shaw
1048Silvio Q IturbideFrance2024-04-21Feiner Bros RENEWAL5Bernardo Dominic
1049Emily U MaletFrance2024-04-13Feltz Printing Service NEGOTIATION12Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Isabel G ShinkoCanadaIvan Magalhaes NEGOTIATION
Rodrigues X VenereFranceBernardo Dominic UNQUALIFIED
Salvatore C KuskoArgentinaXuxue Feng NEGOTIATION
Jeanfrancois A PerinRussiaIoni Bowcher NEW
Mayumi J BologniaJapanBernardo Dominic RENEWAL
Greenwood Q GauchoJapanAmy Elsner RENEWAL
Ricardo B MaletGermanyElwin Sharvill RENEWAL
Chavez F GlickAustraliaOnyama Limba QUALIFIED
Maria P FerenczRussiaAmy Elsner UNQUALIFIED
Mujtaba V GauchoIndiaAmy Elsner NEGOTIATION
Nicolas D FigeroaRussiaIoni Bowcher PROPOSAL
Emily L DilliardIndiaXuxue Feng RENEWAL
Julie C StensethBrazilStephen Shaw PROPOSAL
Adams D DilliardIndiaAnna Fali NEW
Jennifer Y IturbideFranceStephen Shaw NEGOTIATION
Costa O SchemmerArgentinaIoni Bowcher QUALIFIED
Darci G GlickBrazilIoni Bowcher NEW
Misaki N MaletItalyAsiya Javayant RENEWAL
Octavia B StockhamCanadaXuxue Feng RENEWAL
Morrow K BologniaRussiaIvan Magalhaes NEW
Johnson L CaldareraItalyAnna Fali QUALIFIED
Darci U FigeroaIndiaOnyama Limba NEW
Aruna O WhobreyIndiaAmy Elsner RENEWAL
Kaitlin P GillianRussiaAnna Fali NEW
Jeanfrancois L WaycottCanadaAsiya Javayant PROPOSAL
Juan N RimBrazilElwin Sharvill QUALIFIED
Aruna W GauchoItalyOnyama Limba NEW
Salvatore L TollnerArgentinaXuxue Feng UNQUALIFIED
Darci M SchemmerAustraliaAsiya Javayant QUALIFIED
Emily O PaprockiSpainXuxue Feng UNQUALIFIED
Antonio W MaletFranceElwin Sharvill RENEWAL
Adams A RulapaughAustraliaOnyama Limba RENEWAL
Isabel B SergiItalyIoni Bowcher NEGOTIATION
Darci J GillianFranceElwin Sharvill NEW
Kadeem Y KolmetzAustraliaAsiya Javayant PROPOSAL
Ricardo D FigeroaIndiaAmy Elsner PROPOSAL
Costa U GarufiRussiaAnna Fali QUALIFIED
Smith O SergiGermanyAnna Fali PROPOSAL
Wickens G AlbaresJapanIvan Magalhaes NEGOTIATION
Antonio H ShinkoBrazilAsiya Javayant RENEWAL
Misaki M OstroskyArgentinaBernardo Dominic NEW
Smith Z CaldareraUnited KingdomAsiya Javayant QUALIFIED
Jones T FlosiIndiaBernardo Dominic RENEWAL
Costa R AmigonBrazilStephen Shaw NEW
Silvio L SergiGermanyBernardo Dominic RENEWAL
Arvin F PerinJapanAsiya Javayant NEW
Isabel M IturbideArgentinaBernardo Dominic PROPOSAL
Clifford W RoysterRussiaAsiya Javayant NEGOTIATION
Ivar M FollerCanadaIvan Magalhaes QUALIFIED
Antonio V StensethItalyOnyama Limba NEGOTIATION
Frozen Columns
Name
Ricardo Q Oldroyd
Sinclair K Amigon
Emily F Caldarera
Maria M Venere
Maria T Butt
Wickens T Sergi
Munro E Malet
Leja T Tollner
Juan G Garufi
Francesco P Figeroa
Alejandro O Nicka
Leon Y Ruta
Emily A Sergi
Wickens G Royster
Antonio U Ruta
Deepesh K Gaucho
Misaki J Ostrosky
Julie T Amigon
Mujtaba X Rim
Stacey K Figeroa
Leon I Nestle
Maisha K Caudy
Deepesh Z Foller
Leja B Rulapaugh
Alejandro N Stockham
Ashley J Stockham
Silvio N Wieser
Greenwood R Caudy
Izzy S Waycott
Maisha H Caldarera
Mayumi Q Dilliard
Adams A Butt
Claire J Waycott
Leja A Wieser
Kaitlin F Foller
Mujtaba S Perin
Jones F Briddick
Greenwood Z Wieser
Juan F Stenseth
Clifford T Vocelka
Jefferson M Marrier
Julie H Wieser
Greenwood J Foller
Smith M Schemmer
Izzy U Venere
Julie I Wieser
Misaki L Shinko
James K Dilliard
Deepesh D Oldroyd
Emily T Tollner
IdCountryDate
1000Canada2024-04-24
1001Brazil2024-04-18
1002Japan2024-05-04
1003Germany2024-04-10
1004Brazil2024-05-01
1005Russia2024-04-20
1006India2024-04-25
1007Argentina2024-04-24
1008United Kingdom2024-04-11
1009India2024-04-28
1010Brazil2024-04-29
1011United Kingdom2024-05-04
1012United Kingdom2024-04-18
1013Canada2024-04-22
1014Australia2024-04-26
1015Argentina2024-04-08
1016Japan2024-04-26
1017Russia2024-04-12
1018Brazil2024-04-29
1019Australia2024-04-15
1020Brazil2024-04-15
1021India2024-04-13
1022Spain2024-04-06
1023India2024-04-12
1024India2024-04-09
1025France2024-04-26
1026France2024-04-25
1027Brazil2024-04-21
1028Russia2024-04-12
1029India2024-04-10
1030Australia2024-04-08
1031Australia2024-04-24
1032Australia2024-04-17
1033Canada2024-04-10
1034Canada2024-04-16
1035United Kingdom2024-04-06
1036Spain2024-04-14
1037Germany2024-04-10
1038Argentina2024-04-28
1039France2024-05-03
1040India2024-04-30
1041United Kingdom2024-04-16
1042Australia2024-04-09
1043Japan2024-04-07
1044Brazil2024-04-13
1045Germany2024-04-21
1046Italy2024-04-22
1047Russia2024-05-01
1048Russia2024-04-30
1049Italy2024-05-04

On-Demand Data

NameIdCountryDate
Mayumi M Butt1000Spain2024-05-05
Stacey F Garufi1001India2024-04-07
Mujtaba V Stockham1002Canada2024-04-13
Arvin A Flosi1003France2024-04-21
Jefferson J Malet1004Australia2024-04-17
James Y Venere1005Canada2024-04-16
Salvatore S Chui1006Germany2024-04-06
Ashley B Wieser1007Australia2024-04-14
Smith Z Ferencz1008Spain2024-04-27
Leon T Maclead1009India2024-04-28
Adams A Tollner1010Japan2024-04-09
Morrow J Kusko1011Australia2024-04-18
Jones E Garufi1012France2024-04-09
Murillo N Glick1013Spain2024-04-18
Juan F Malet1014Brazil2024-04-07
Jefferson G Nicka1015France2024-04-18
Greenwood D Briddick1016Spain2024-04-29
David Q Ruta1017Russia2024-04-09
Johnson E Morasca1018Italy2024-05-01
Mujtaba Z Chui1019Canada2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Izzy B VocelkaJapanIoni Bowcher NEW
Maisha C KuskoUnited KingdomIoni Bowcher NEW
Nicolas B RutaSpainStephen Shaw RENEWAL
Ricardo S SergiRussiaElwin Sharvill NEGOTIATION
Faith J DilliardSpainXuxue Feng NEGOTIATION
Deepesh U SergiIndiaBernardo Dominic RENEWAL
Aditya L FollerRussiaAsiya Javayant UNQUALIFIED
Mujtaba W SaylorsItalyXuxue Feng NEW
Kadeem H RulapaughIndiaIoni Bowcher NEGOTIATION
Julie J KuskoRussiaAsiya Javayant NEW
Johnson H OstroskyCanadaElwin Sharvill RENEWAL
Nicolas A DilliardIndiaOnyama Limba RENEWAL
Juan R OstroskySpainIvan Magalhaes UNQUALIFIED
Claire X RoysterCanadaStephen Shaw UNQUALIFIED
Sinclair A RoysterArgentinaOnyama Limba NEW
Maria R AlbaresUnited KingdomAnna Fali NEGOTIATION
Kaitlin I SergiUnited KingdomElwin Sharvill NEW
Claire U ChuiSpainOnyama Limba QUALIFIED
Kaitlin S MorascaSpainStephen Shaw NEGOTIATION
Salvatore H RulapaughIndiaAsiya Javayant PROPOSAL
Antonio H TollnerJapanStephen Shaw RENEWAL
Mayumi Q NickaFranceBernardo Dominic NEGOTIATION
Murillo M RoysterIndiaStephen Shaw PROPOSAL
Jeanfrancois B MarrierCanadaElwin Sharvill PROPOSAL
Silvio W BowleyBrazilBernardo Dominic NEW
Nicolas R WaycottCanadaAnna Fali NEGOTIATION
Deepesh N DarakjyCanadaAnna Fali NEW
Mayumi W AmigonRussiaIoni Bowcher PROPOSAL
Ricardo H RulapaughArgentinaStephen Shaw RENEWAL
Juan T NestleIndiaOnyama Limba QUALIFIED
Jones S OldroydJapanOnyama Limba PROPOSAL
Aruna G OldroydRussiaStephen Shaw PROPOSAL
Chavez F RoysterArgentinaXuxue Feng NEW
Leja N GarufiGermanyAnna Fali RENEWAL
Arvin D StockhamJapanOnyama Limba RENEWAL
Maisha E KolmetzJapanAmy Elsner NEGOTIATION
Izzy J VenereUnited KingdomOnyama Limba RENEWAL
Stacey C VocelkaGermanyOnyama Limba UNQUALIFIED
Kadeem A PerinAustraliaIvan Magalhaes NEGOTIATION
Costa H BowleyJapanIoni Bowcher 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>