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
Nicolas W MaletJapanIvan Magalhaes UNQUALIFIED
Alejandro B WaycottRussiaAsiya Javayant UNQUALIFIED
Francesco R FollerRussiaIoni Bowcher QUALIFIED
Wickens U SlusarskiItalyAmy Elsner RENEWAL
Deepesh K BologniaAustraliaBernardo Dominic RENEWAL
Wickens K InouyeBrazilStephen Shaw QUALIFIED
Isabel U KuskoBrazilIoni Bowcher NEW
Arvin X RimItalyXuxue Feng PROPOSAL
Munro R SaylorsRussiaStephen Shaw NEGOTIATION
Clifford Q CaudyCanadaIoni Bowcher PROPOSAL
Ivar X KuskoFranceBernardo Dominic UNQUALIFIED
Munro P MarrierItalyOnyama Limba QUALIFIED
Jeanfrancois K OldroydUnited KingdomIoni Bowcher QUALIFIED
Rodrigues M ShinkoItalyStephen Shaw NEW
Nicolas X FerenczBrazilIvan Magalhaes NEW
Julie H VenereAustraliaXuxue Feng RENEWAL
Cody F SchemmerFranceAsiya Javayant NEW
Ashley F AlbaresFranceAnna Fali PROPOSAL
Costa Y WaycottFranceIoni Bowcher UNQUALIFIED
Silvio Y MarrierFranceIvan Magalhaes UNQUALIFIED
Kadeem K WieserItalyOnyama Limba QUALIFIED
Kaitlin W CaldareraFranceBernardo Dominic PROPOSAL
Smith H CampainRussiaAnna Fali NEGOTIATION
Jones B KuskoItalyBernardo Dominic NEGOTIATION
Kadeem D StockhamFranceXuxue Feng RENEWAL
Maisha S FollerSpainAnna Fali NEW
Antonio C KolmetzIndiaAmy Elsner RENEWAL
Sinclair W NickaCanadaAmy Elsner NEGOTIATION
Arvin Z WaycottUnited KingdomAmy Elsner NEW
Tony U BologniaIndiaIoni Bowcher PROPOSAL
Claire M MaletItalyIvan Magalhaes PROPOSAL
Jones T MaletArgentinaElwin Sharvill QUALIFIED
Salvatore J PerinFranceAsiya Javayant RENEWAL
Wickens H RimRussiaXuxue Feng PROPOSAL
Julie D OldroydFranceXuxue Feng UNQUALIFIED
David N StensethBrazilAnna Fali UNQUALIFIED
Adams A AmigonCanadaXuxue Feng PROPOSAL
David E MorascaSpainAnna Fali NEGOTIATION
Kaitlin I FigeroaGermanyAmy Elsner NEGOTIATION
Izzy O AmigonAustraliaAnna Fali RENEWAL
Leja X NestleFranceStephen Shaw UNQUALIFIED
Ivar L GillianArgentinaXuxue Feng PROPOSAL
Munro C WieserFranceXuxue Feng PROPOSAL
Jefferson H FollerGermanyIoni Bowcher UNQUALIFIED
Clifford A RulapaughGermanyAnna Fali NEGOTIATION
Wickens G RoysterBrazilIoni Bowcher UNQUALIFIED
Claire X BowleyFranceIvan Magalhaes NEW
Smith Y SlusarskiGermanyElwin Sharvill NEW
Mujtaba L VenereItalyElwin Sharvill QUALIFIED
Murillo F GauchoUnited KingdomAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Maisha A ChuiRussiaElwin Sharvill PROPOSAL
Silvio Y AmigonCanadaBernardo Dominic NEW
Morrow T RimAustraliaBernardo Dominic PROPOSAL
Francesco D ButtBrazilIoni Bowcher PROPOSAL
Arvin B RulapaughAustraliaElwin Sharvill NEGOTIATION
Isabel Y KolmetzBrazilAnna Fali UNQUALIFIED
Tony F MarrierCanadaXuxue Feng NEGOTIATION
David N SchemmerItalyOnyama Limba QUALIFIED
Sinclair S CaldareraGermanyIvan Magalhaes UNQUALIFIED
Maisha C SlusarskiBrazilXuxue Feng NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood B MaletIndia2024-04-24King, Christopher A Esq NEW71Bernardo Dominic
1001Morrow X MarrierUnited Kingdom2024-04-23Chapman, Ross E Esq NEW98Elwin Sharvill
1002Jennifer C PerinBrazil2024-03-30Commercial Press PROPOSAL30Onyama Limba
1003Cody M InouyeAustralia2024-04-05Truhlar And Truhlar Attys NEW79Amy Elsner
1004Nicolas V PaprockiRussia2024-03-30Dorl, James J Esq PROPOSAL28Ivan Magalhaes
1005Greenwood A BriddickGermany2024-03-31Feiner Bros QUALIFIED11Ivan Magalhaes
1006Aditya Q BriddickAustralia2024-04-25King, Christopher A Esq NEGOTIATION62Onyama Limba
1007Jennifer C DoeSpain2024-04-05Dorl, James J Esq QUALIFIED93Amy Elsner
1008Jennifer V MaletBrazil2024-04-09Feiner Bros PROPOSAL69Asiya Javayant
1009Kadeem O DoeFrance2024-04-13Benton, John B Jr PROPOSAL35Bernardo Dominic
1010Nicolas F MorascaAustralia2024-04-20Dorl, James J Esq PROPOSAL3Ioni Bowcher
1011Claire Q StensethUnited Kingdom2024-04-16Buckley Miller Wright QUALIFIED21Anna Fali
1012Mayumi L OstroskyBrazil2024-04-06Printing Dimensions NEW52Ivan Magalhaes
1013Arvin K FlosiIndia2024-04-04Rangoni Of Florence QUALIFIED96Bernardo Dominic
1014Mujtaba N GillianCanada2024-04-09Chapman, Ross E Esq RENEWAL84Elwin Sharvill
1015Murillo U DilliardItaly2024-04-20Feltz Printing Service RENEWAL84Xuxue Feng
1016Juan K SaylorsJapan2024-03-31Benton, John B Jr NEGOTIATION5Bernardo Dominic
1017Octavia N SchemmerItaly2024-04-23Rousseaux, Michael Esq QUALIFIED80Elwin Sharvill
1018Wickens X FigeroaCanada2024-04-10Chemel, James L Cpa NEGOTIATION29Bernardo Dominic
1019Nicolas O StensethJapan2024-04-03Dorl, James J Esq RENEWAL52Ioni Bowcher
1020Aditya Q NickaIndia2024-04-14Chanay, Jeffrey A Esq RENEWAL92Xuxue Feng
1021Clifford L MorascaFrance2024-04-23Feiner Bros QUALIFIED92Onyama Limba
1022Stacey J CaudyBrazil2024-04-13Chapman, Ross E Esq QUALIFIED47Ivan Magalhaes
1023Aruna I NickaUnited Kingdom2024-04-25Chemel, James L Cpa UNQUALIFIED62Stephen Shaw
1024Nicolas O GauchoSpain2024-04-08Feiner Bros UNQUALIFIED56Asiya Javayant
1025Arvin E BowleyArgentina2024-04-13Commercial Press UNQUALIFIED47Xuxue Feng
1026Aditya A ChuiCanada2024-04-09Rousseaux, Michael Esq NEGOTIATION39Ivan Magalhaes
1027Francesco W ShinkoBrazil2024-03-31Benton, John B Jr NEGOTIATION3Xuxue Feng
1028Wickens S MaletCanada2024-04-01Dorl, James J Esq UNQUALIFIED48Stephen Shaw
1029Maria M WaycottIndia2024-04-01Benton, John B Jr PROPOSAL40Ivan Magalhaes
1030Ivar D OstroskyArgentina2024-04-03Buckley Miller Wright NEW28Anna Fali
1031Chavez Y CampainCanada2024-03-30Truhlar And Truhlar Attys UNQUALIFIED95Ioni Bowcher
1032Stacey M PoquetteItaly2024-04-25Benton, John B Jr NEGOTIATION6Elwin Sharvill
1033Arvin I MaletIndia2024-04-14Chanay, Jeffrey A Esq QUALIFIED28Anna Fali
1034Leon W FerenczRussia2024-04-06King, Christopher A Esq NEGOTIATION67Stephen Shaw
1035Mujtaba V WieserIndia2024-04-26Dorl, James J Esq NEGOTIATION32Onyama Limba
1036Darci G RimUnited Kingdom2024-04-06Feiner Bros NEW34Stephen Shaw
1037Ivar S DilliardGermany2024-04-17Commercial Press PROPOSAL64Ivan Magalhaes
1038Nicolas N VenereUnited Kingdom2024-03-30Printing Dimensions UNQUALIFIED94Asiya Javayant
1039Leja J ChuiUnited Kingdom2024-04-11Rangoni Of Florence RENEWAL5Stephen Shaw
1040Cody P IturbideRussia2024-03-31Morlong Associates UNQUALIFIED81Elwin Sharvill
1041Stacey C DoeUnited Kingdom2024-04-14Feltz Printing Service UNQUALIFIED81Elwin Sharvill
1042Deepesh J DoeAustralia2024-04-01Benton, John B Jr UNQUALIFIED46Stephen Shaw
1043Ivar Z GlickItaly2024-04-17Buckley Miller Wright QUALIFIED34Anna Fali
1044Jefferson T TollnerJapan2024-04-10Feiner Bros PROPOSAL87Anna Fali
1045Murillo C GillianIndia2024-04-18Morlong Associates PROPOSAL81Onyama Limba
1046Stacey C PerinRussia2024-04-27Rangoni Of Florence NEGOTIATION75Elwin Sharvill
1047Mujtaba F PaprockiArgentina2024-03-30Commercial Press NEGOTIATION82Stephen Shaw
1048Juan A BowleyBrazil2024-04-14Printing Dimensions RENEWAL1Onyama Limba
1049Kaitlin G IturbideCanada2024-03-30Feiner Bros QUALIFIED76Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Salvatore Z IturbideBrazilStephen Shaw QUALIFIED
Octavia H ShinkoRussiaAnna Fali QUALIFIED
Munro P RutaGermanyAmy Elsner QUALIFIED
Ivar F TollnerRussiaOnyama Limba QUALIFIED
Aika E StensethBrazilStephen Shaw RENEWAL
Arvin H VenereBrazilIvan Magalhaes UNQUALIFIED
Jefferson W PerinBrazilOnyama Limba UNQUALIFIED
Ivar X OstroskyRussiaAsiya Javayant RENEWAL
Wickens V VenereArgentinaAsiya Javayant NEW
Mayumi G FigeroaJapanIoni Bowcher UNQUALIFIED
Aditya S IturbideJapanIoni Bowcher RENEWAL
Salvatore M ChuiAustraliaXuxue Feng NEW
Sinclair R GauchoAustraliaAmy Elsner NEW
Izzy P FlosiBrazilBernardo Dominic RENEWAL
Greenwood P MaletSpainAsiya Javayant QUALIFIED
Leja A MarrierItalyIvan Magalhaes PROPOSAL
Murillo Y BriddickItalyAnna Fali NEW
Aditya F MaletBrazilAmy Elsner PROPOSAL
Tony B SlusarskiJapanAmy Elsner RENEWAL
Jones G OstroskyCanadaAnna Fali NEGOTIATION
Julie F AmigonUnited KingdomIoni Bowcher RENEWAL
Wickens Z MarrierJapanOnyama Limba NEW
Cody M StockhamUnited KingdomElwin Sharvill UNQUALIFIED
Misaki T StockhamGermanyElwin Sharvill QUALIFIED
Jefferson I VenereRussiaAnna Fali RENEWAL
Alejandro R DoeFranceBernardo Dominic UNQUALIFIED
Munro F RutaCanadaAmy Elsner QUALIFIED
Leja J DoeCanadaStephen Shaw UNQUALIFIED
Tony Y MacleadSpainAnna Fali PROPOSAL
Greenwood N AlbaresJapanAnna Fali PROPOSAL
Clifford D VenereAustraliaXuxue Feng NEW
Claire R NickaCanadaElwin Sharvill QUALIFIED
Deepesh A RulapaughArgentinaElwin Sharvill UNQUALIFIED
Deepesh J RoysterUnited KingdomAnna Fali QUALIFIED
Costa Q InouyeAustraliaXuxue Feng PROPOSAL
Arvin U SchemmerItalyElwin Sharvill NEW
Jones B OldroydIndiaStephen Shaw RENEWAL
Juan Q MarrierSpainStephen Shaw PROPOSAL
Greenwood K WaycottJapanIoni Bowcher UNQUALIFIED
Antonio F KuskoCanadaElwin Sharvill UNQUALIFIED
Salvatore N OstroskyUnited KingdomOnyama Limba QUALIFIED
Cody K DilliardArgentinaAmy Elsner NEGOTIATION
Ricardo K OldroydJapanStephen Shaw RENEWAL
Misaki B KuskoJapanStephen Shaw PROPOSAL
Jefferson U KuskoIndiaBernardo Dominic QUALIFIED
Ashley V RulapaughArgentinaAnna Fali NEGOTIATION
Johnson B MaletJapanElwin Sharvill RENEWAL
Aditya Y ChuiIndiaAnna Fali QUALIFIED
David Y PoquetteGermanyAnna Fali QUALIFIED
Johnson J GillianIndiaAnna Fali RENEWAL
Frozen Columns
Name
Aruna V Caudy
Maisha G Ostrosky
Julie U Rulapaugh
Maria K Glick
Johnson Q Nestle
Jeanfrancois V Iturbide
Stacey D Maclead
David P Caldarera
Deepesh M Stockham
Clifford R Butt
Stacey N Schemmer
Clifford H Ostrosky
Morrow R Inouye
Julie N Slusarski
Greenwood M Nestle
Sinclair E Gillian
Antonio T Paprocki
Morrow I Inouye
Isabel M Malet
Ivar U Caudy
Salvatore W Bowley
Maisha A Stenseth
Misaki A Shinko
Misaki T Rulapaugh
Juan H Stockham
Morrow J Gaucho
Alejandro C Stockham
Chavez J Darakjy
Faith L Caldarera
Munro S Nestle
Chavez Q Ostrosky
Leon F Paprocki
Antonio U Briddick
Leon K Ostrosky
Aruna M Amigon
Rodrigues V Wieser
Cody S Venere
Rodrigues N Vocelka
Mujtaba Y Figeroa
Mujtaba Y Inouye
Claire J Royster
Francesco H Vocelka
Leja Z Ferencz
Misaki W Schemmer
Julie Y Sergi
Stacey P Royster
David P Royster
Aruna F Gillian
Stacey A Paprocki
Misaki F Poquette
IdCountryDate
1000Australia2024-04-11
1001Canada2024-04-10
1002Italy2024-04-02
1003Italy2024-04-09
1004Italy2024-04-27
1005Russia2024-04-17
1006Russia2024-04-09
1007Spain2024-04-02
1008France2024-04-01
1009Australia2024-04-20
1010Argentina2024-04-05
1011Italy2024-04-11
1012Italy2024-04-02
1013Canada2024-04-04
1014Italy2024-03-30
1015United Kingdom2024-03-31
1016Russia2024-04-18
1017Japan2024-03-31
1018Australia2024-04-14
1019Argentina2024-03-31
1020Argentina2024-04-03
1021France2024-03-30
1022Canada2024-04-05
1023Brazil2024-04-19
1024United Kingdom2024-04-10
1025Russia2024-04-16
1026Australia2024-04-22
1027United Kingdom2024-04-13
1028Argentina2024-04-14
1029Brazil2024-04-25
1030Russia2024-04-07
1031Spain2024-03-31
1032Spain2024-04-03
1033United Kingdom2024-04-17
1034Japan2024-04-21
1035Canada2024-04-21
1036Russia2024-04-05
1037Spain2024-04-13
1038United Kingdom2024-04-16
1039France2024-04-24
1040Spain2024-04-14
1041Spain2024-04-04
1042Canada2024-04-27
1043Italy2024-03-29
1044Japan2024-04-05
1045Argentina2024-04-22
1046Canada2024-04-09
1047Canada2024-04-02
1048Brazil2024-04-21
1049Canada2024-04-23

On-Demand Data

NameIdCountryDate
Julie O Shinko1000France2024-04-03
Octavia M Poquette1001Japan2024-03-30
Cody Q Caudy1002Argentina2024-04-26
Jennifer H Poquette1003Spain2024-04-21
Faith F Malet1004Brazil2024-04-08
Ricardo Y Foller1005Germany2024-04-18
Maisha M Garufi1006Australia2024-04-21
Johnson V Dilliard1007Italy2024-04-11
Antonio O Schemmer1008Japan2024-04-26
Nicolas U Royster1009Spain2024-04-21
James B Caldarera1010India2024-04-04
Aditya D Garufi1011Japan2024-04-06
Misaki R Tollner1012Australia2024-04-06
Munro Z Nestle1013Japan2024-04-26
David V Malet1014France2024-04-09
Octavia D Flosi1015India2024-04-16
Francesco B Kusko1016France2024-04-08
Jennifer C Ruta1017Australia2024-04-10
Salvatore D Rulapaugh1018India2024-04-14
Johnson M Ruta1019India2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Faith T ButtUnited KingdomOnyama Limba NEGOTIATION
Stacey U DoeGermanyAmy Elsner QUALIFIED
Misaki B ButtGermanyStephen Shaw PROPOSAL
Deepesh D SergiFranceStephen Shaw NEW
Juan R WieserUnited KingdomAnna Fali UNQUALIFIED
Ricardo H StensethItalyAmy Elsner NEW
Juan W GarufiGermanyOnyama Limba RENEWAL
Julie H CaudyAustraliaAnna Fali QUALIFIED
Octavia J IturbideBrazilIoni Bowcher RENEWAL
Maria N WieserIndiaOnyama Limba UNQUALIFIED
Ashley K ShinkoItalyBernardo Dominic PROPOSAL
Salvatore J NestleIndiaAmy Elsner QUALIFIED
Adams V SaylorsUnited KingdomXuxue Feng QUALIFIED
Emily R StockhamIndiaBernardo Dominic UNQUALIFIED
Isabel M IturbideSpainAnna Fali QUALIFIED
Jennifer Y MorascaJapanElwin Sharvill UNQUALIFIED
Emily G AlbaresRussiaBernardo Dominic RENEWAL
Greenwood S VocelkaItalyXuxue Feng RENEWAL
Sinclair R InouyeArgentinaIvan Magalhaes UNQUALIFIED
Tony A KolmetzCanadaIoni Bowcher RENEWAL
David L MaletArgentinaAmy Elsner RENEWAL
Octavia I DarakjyFranceOnyama Limba NEW
Leja E MaletFranceXuxue Feng RENEWAL
David L MacleadGermanyAnna Fali UNQUALIFIED
Kaitlin Y RutaJapanStephen Shaw RENEWAL
Mujtaba F PerinJapanIoni Bowcher NEW
Aditya C BowleyBrazilIvan Magalhaes NEGOTIATION
Smith C IturbideCanadaElwin Sharvill QUALIFIED
Ashley T RutaItalyBernardo Dominic QUALIFIED
Leja W WaycottItalyBernardo Dominic NEW
Maria C SlusarskiIndiaElwin Sharvill QUALIFIED
Mayumi L DilliardRussiaXuxue Feng QUALIFIED
Aditya M SlusarskiJapanAnna Fali NEGOTIATION
Leja U FerenczArgentinaAsiya Javayant NEGOTIATION
Aruna K VenereArgentinaXuxue Feng NEW
Jones O ButtUnited KingdomIoni Bowcher QUALIFIED
Rodrigues G StensethUnited KingdomBernardo Dominic QUALIFIED
Francesco P BologniaBrazilAnna Fali QUALIFIED
Silvio Y MaletIndiaIoni Bowcher RENEWAL
Sinclair Z KuskoItalyOnyama Limba RENEWAL

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