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
Munro O ButtIndiaStephen Shaw QUALIFIED
Smith A GauchoFranceElwin Sharvill QUALIFIED
Arvin N CampainCanadaOnyama Limba RENEWAL
Murillo V MorascaCanadaOnyama Limba UNQUALIFIED
Darci J SergiAustraliaElwin Sharvill PROPOSAL
Claire K RoysterUnited KingdomBernardo Dominic NEW
Smith P GlickJapanOnyama Limba NEW
Greenwood S CaldareraIndiaOnyama Limba PROPOSAL
Sinclair A GlickArgentinaAsiya Javayant NEGOTIATION
Morrow V DilliardIndiaAnna Fali UNQUALIFIED
Costa F SaylorsArgentinaAnna Fali UNQUALIFIED
Rodrigues R GillianJapanAsiya Javayant UNQUALIFIED
Juan S RulapaughUnited KingdomIvan Magalhaes RENEWAL
Izzy P AmigonJapanElwin Sharvill RENEWAL
Kadeem W VocelkaCanadaAsiya Javayant NEGOTIATION
Leja E SaylorsItalyAmy Elsner QUALIFIED
Ricardo K VocelkaItalyIoni Bowcher PROPOSAL
Maria A DoeAustraliaXuxue Feng NEGOTIATION
Claire H RimGermanyBernardo Dominic UNQUALIFIED
Nicolas L GarufiRussiaIvan Magalhaes NEGOTIATION
Wickens N GauchoCanadaAnna Fali NEGOTIATION
Maisha Z GauchoBrazilAsiya Javayant NEGOTIATION
Izzy F SchemmerGermanyBernardo Dominic RENEWAL
Mayumi F SergiItalyAsiya Javayant PROPOSAL
Francesco D BowleyIndiaIvan Magalhaes QUALIFIED
Arvin N GarufiRussiaIoni Bowcher NEGOTIATION
Faith L GauchoUnited KingdomAnna Fali RENEWAL
Misaki A SergiSpainElwin Sharvill PROPOSAL
Rodrigues R BowleyIndiaElwin Sharvill PROPOSAL
Arvin C RimBrazilBernardo Dominic UNQUALIFIED
Francesco L CaldareraUnited KingdomIoni Bowcher PROPOSAL
Mayumi W PaprockiJapanIvan Magalhaes QUALIFIED
Emily H PoquetteAustraliaIvan Magalhaes RENEWAL
Juan V CaldareraJapanAmy Elsner NEW
Costa E GillianJapanElwin Sharvill RENEWAL
Rodrigues X FollerItalyIoni Bowcher QUALIFIED
Tony U DarakjyCanadaXuxue Feng UNQUALIFIED
Arvin C IturbideUnited KingdomOnyama Limba QUALIFIED
Mujtaba V AmigonUnited KingdomAnna Fali QUALIFIED
Claire T OldroydBrazilBernardo Dominic NEGOTIATION
Greenwood H WieserJapanXuxue Feng NEGOTIATION
Jeanfrancois F GauchoAustraliaOnyama Limba NEW
Maisha W VocelkaFranceStephen Shaw NEW
Johnson C RoysterUnited KingdomAnna Fali UNQUALIFIED
Tony X OstroskyBrazilOnyama Limba PROPOSAL
Ricardo J FerenczUnited KingdomIvan Magalhaes NEW
Aruna K MarrierUnited KingdomElwin Sharvill QUALIFIED
Leja V StockhamGermanyAnna Fali NEGOTIATION
Chavez B CaldareraGermanyAnna Fali PROPOSAL
Chavez N VocelkaCanadaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Chavez G SaylorsBrazilAmy Elsner QUALIFIED
Faith S ChuiSpainElwin Sharvill PROPOSAL
Aika P VocelkaCanadaStephen Shaw PROPOSAL
Nicolas O PoquetteJapanAnna Fali RENEWAL
Maria R SlusarskiFranceBernardo Dominic NEW
Stacey S TollnerSpainXuxue Feng UNQUALIFIED
Aditya O TollnerBrazilBernardo Dominic QUALIFIED
Morrow N FlosiBrazilIoni Bowcher NEGOTIATION
Ricardo S RulapaughCanadaElwin Sharvill NEW
Tony C BologniaAustraliaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Faith C WhobreyBrazil2024-04-27Chapman, Ross E Esq QUALIFIED18Onyama Limba
1001Murillo S CaldareraItaly2024-04-16Rangoni Of Florence PROPOSAL67Asiya Javayant
1002Clifford I NickaCanada2024-04-22Feiner Bros QUALIFIED70Ioni Bowcher
1003Faith C PerinAustralia2024-04-06Dorl, James J Esq UNQUALIFIED84Xuxue Feng
1004Greenwood B MacleadUnited Kingdom2024-04-19Chemel, James L Cpa UNQUALIFIED42Bernardo Dominic
1005Leon Q CaudyBrazil2024-04-21Rousseaux, Michael Esq PROPOSAL34Asiya Javayant
1006Tony P DoeGermany2024-04-06Morlong Associates PROPOSAL94Xuxue Feng
1007Antonio Y IturbideIndia2024-04-03King, Christopher A Esq NEW40Onyama Limba
1008Octavia Q PerinItaly2024-04-27Feltz Printing Service NEGOTIATION72Amy Elsner
1009Isabel Y FollerRussia2024-04-04Buckley Miller Wright UNQUALIFIED13Elwin Sharvill
1010James F RulapaughGermany2024-03-31Dorl, James J Esq NEW54Amy Elsner
1011Chavez B VocelkaArgentina2024-04-17King, Christopher A Esq NEW78Asiya Javayant
1012Chavez O FollerRussia2024-04-02Chemel, James L Cpa NEGOTIATION49Amy Elsner
1013Stacey I PaprockiIndia2024-04-22Morlong Associates RENEWAL45Onyama Limba
1014Darci Z GlickAustralia2024-04-20Dorl, James J Esq QUALIFIED64Stephen Shaw
1015Nicolas D OstroskyRussia2024-04-05Commercial Press NEGOTIATION23Anna Fali
1016Chavez O BriddickJapan2024-04-14Truhlar And Truhlar Attys NEW60Onyama Limba
1017Octavia T CaldareraArgentina2024-04-27Dorl, James J Esq QUALIFIED77Amy Elsner
1018Arvin S AmigonSpain2024-04-26Truhlar And Truhlar Attys UNQUALIFIED22Elwin Sharvill
1019Greenwood S GauchoArgentina2024-04-09Dorl, James J Esq QUALIFIED73Asiya Javayant
1020Claire I TollnerRussia2024-04-22Feiner Bros NEGOTIATION33Ivan Magalhaes
1021Francesco G OstroskySpain2024-04-08Buckley Miller Wright UNQUALIFIED23Onyama Limba
1022Jones L DilliardItaly2024-04-08Rousseaux, Michael Esq UNQUALIFIED68Anna Fali
1023Izzy M BowleyFrance2024-04-16Commercial Press PROPOSAL18Anna Fali
1024Jones G KolmetzJapan2024-04-06Benton, John B Jr RENEWAL54Ivan Magalhaes
1025Leja Q KolmetzFrance2024-04-21Rangoni Of Florence NEW25Elwin Sharvill
1026Ricardo U SaylorsBrazil2024-04-21Morlong Associates QUALIFIED21Asiya Javayant
1027Julie O WaycottUnited Kingdom2024-04-16Printing Dimensions NEGOTIATION95Asiya Javayant
1028Juan F KolmetzUnited Kingdom2024-04-20Chanay, Jeffrey A Esq UNQUALIFIED57Ioni Bowcher
1029Aditya E NestleIndia2024-03-30Benton, John B Jr PROPOSAL17Asiya Javayant
1030Jones B FerenczItaly2024-04-24Rousseaux, Michael Esq PROPOSAL40Bernardo Dominic
1031Julie Z WhobreyAustralia2024-04-18Buckley Miller Wright PROPOSAL3Amy Elsner
1032Misaki X WaycottAustralia2024-04-26King, Christopher A Esq PROPOSAL99Elwin Sharvill
1033Misaki O StensethSpain2024-04-12Chanay, Jeffrey A Esq NEGOTIATION78Onyama Limba
1034Maisha E NestleJapan2024-04-03Chanay, Jeffrey A Esq QUALIFIED51Ivan Magalhaes
1035Maria M DilliardJapan2024-04-11Truhlar And Truhlar Attys UNQUALIFIED82Elwin Sharvill
1036Munro N DarakjySpain2024-03-31Feiner Bros PROPOSAL73Xuxue Feng
1037Julie Y SchemmerIndia2024-04-07Chemel, James L Cpa NEW33Ioni Bowcher
1038Ricardo H CampainArgentina2024-04-18Feltz Printing Service QUALIFIED59Onyama Limba
1039Darci A OstroskyItaly2024-04-13Printing Dimensions NEGOTIATION61Ivan Magalhaes
1040Jefferson I GlickUnited Kingdom2024-03-30Feiner Bros PROPOSAL25Onyama Limba
1041Tony T BriddickFrance2024-04-10Chemel, James L Cpa NEGOTIATION5Amy Elsner
1042Francesco F KolmetzItaly2024-04-17Commercial Press QUALIFIED96Stephen Shaw
1043Silvio K BologniaAustralia2024-04-20Buckley Miller Wright QUALIFIED85Xuxue Feng
1044Mayumi L InouyeRussia2024-04-12Chapman, Ross E Esq QUALIFIED56Ioni Bowcher
1045Jones Y FerenczGermany2024-04-22Benton, John B Jr PROPOSAL5Xuxue Feng
1046David S GillianRussia2024-04-21Printing Dimensions RENEWAL17Xuxue Feng
1047Ivar M AlbaresFrance2024-04-13Truhlar And Truhlar Attys NEGOTIATION75Amy Elsner
1048Clifford B KuskoFrance2024-04-24Dorl, James J Esq RENEWAL72Anna Fali
1049Antonio J CaldareraJapan2024-03-30Printing Dimensions PROPOSAL34Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Claire Z RulapaughSpainBernardo Dominic NEGOTIATION
Kaitlin M VenereSpainAnna Fali RENEWAL
Alejandro A PoquetteFranceOnyama Limba NEW
Aditya P IturbideAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba O MaletSpainOnyama Limba RENEWAL
Smith X IturbideJapanIvan Magalhaes QUALIFIED
James M PerinCanadaXuxue Feng UNQUALIFIED
Maria T PaprockiFranceBernardo Dominic PROPOSAL
David U FlosiArgentinaOnyama Limba PROPOSAL
Jefferson S CaldareraSpainAnna Fali UNQUALIFIED
David D CaudyJapanElwin Sharvill NEGOTIATION
Kadeem S PoquetteFranceBernardo Dominic PROPOSAL
Leon H IturbideRussiaXuxue Feng NEW
Izzy P GarufiCanadaAnna Fali QUALIFIED
Misaki Q GlickJapanIoni Bowcher NEW
Maria H VenereJapanElwin Sharvill NEW
Antonio Z BologniaGermanyAnna Fali PROPOSAL
Alejandro W KolmetzItalyIoni Bowcher NEW
Claire V OldroydFranceStephen Shaw UNQUALIFIED
Arvin I DarakjySpainIvan Magalhaes QUALIFIED
Julie C FollerIndiaAnna Fali UNQUALIFIED
Jeanfrancois X ButtAustraliaOnyama Limba QUALIFIED
Ricardo L OstroskyArgentinaOnyama Limba QUALIFIED
Octavia P MaletJapanAnna Fali RENEWAL
Chavez D SchemmerJapanIvan Magalhaes NEGOTIATION
Nicolas M RulapaughUnited KingdomIoni Bowcher PROPOSAL
Kadeem B InouyeBrazilXuxue Feng NEGOTIATION
Sinclair S KuskoCanadaAnna Fali PROPOSAL
Julie C OldroydUnited KingdomStephen Shaw NEW
Munro I IturbideRussiaOnyama Limba PROPOSAL
Salvatore Z CaldareraBrazilBernardo Dominic UNQUALIFIED
Leja A NestleCanadaAmy Elsner RENEWAL
Stacey H TollnerGermanyBernardo Dominic RENEWAL
Kadeem K WieserGermanyElwin Sharvill QUALIFIED
Aika T OldroydAustraliaAsiya Javayant NEW
Tony H OldroydRussiaIvan Magalhaes NEGOTIATION
Antonio V AmigonAustraliaAmy Elsner PROPOSAL
Greenwood Z NestleUnited KingdomAmy Elsner UNQUALIFIED
Chavez G IturbideIndiaBernardo Dominic UNQUALIFIED
Maria K TollnerIndiaOnyama Limba QUALIFIED
Silvio B SlusarskiCanadaStephen Shaw PROPOSAL
Deepesh E BriddickUnited KingdomElwin Sharvill NEGOTIATION
Jefferson Q MaletGermanyIoni Bowcher UNQUALIFIED
Leja H MaletSpainAnna Fali PROPOSAL
Tony L BriddickRussiaElwin Sharvill PROPOSAL
Ashley B IturbideItalyIoni Bowcher UNQUALIFIED
Costa V OldroydArgentinaStephen Shaw RENEWAL
Tony D DarakjyFranceAmy Elsner QUALIFIED
Darci R KolmetzAustraliaIoni Bowcher RENEWAL
Octavia R TollnerCanadaStephen Shaw NEW
Frozen Columns
Name
Emily D Amigon
Misaki N Iturbide
Jeanfrancois B Schemmer
Aditya O Dilliard
Maisha Z Malet
Octavia N Nicka
Tony J Stockham
Misaki L Ruta
Silvio F Chui
Maria F Iturbide
Ivar C Rulapaugh
David X Sergi
Claire X Sergi
Salvatore E Oldroyd
Aruna P Amigon
Maisha X Maclead
Jefferson B Shinko
Juan O Slusarski
Maisha I Morasca
Rodrigues A Whobrey
Nicolas T Kolmetz
Misaki H Caudy
Aika Y Garufi
Wickens F Sergi
Mayumi G Stockham
Isabel B Marrier
Kaitlin P Glick
Clifford P Caldarera
Maria M Whobrey
Aruna B Maclead
Cody H Gaucho
Clifford M Schemmer
David H Oldroyd
Leja N Sergi
Smith M Ruta
Greenwood R Marrier
Juan R Ostrosky
Adams H Saylors
Julie L Whobrey
Maisha M Flosi
Jennifer M Ruta
Greenwood L Malet
Leon W Doe
Salvatore V Saylors
Deepesh A Campain
Nicolas V Caudy
Jefferson I Butt
Sinclair V Inouye
Adams V Rulapaugh
Costa U Stenseth
IdCountryDate
1000Spain2024-04-17
1001France2024-04-15
1002Spain2024-04-03
1003Argentina2024-04-04
1004Argentina2024-04-06
1005Japan2024-04-15
1006United Kingdom2024-04-04
1007Australia2024-04-27
1008Japan2024-04-16
1009Italy2024-04-20
1010Russia2024-04-07
1011Italy2024-04-14
1012Brazil2024-03-30
1013Italy2024-04-26
1014Italy2024-04-07
1015Spain2024-04-28
1016India2024-04-24
1017Australia2024-04-09
1018Argentina2024-04-10
1019Italy2024-04-18
1020Germany2024-04-07
1021Germany2024-04-07
1022Japan2024-04-19
1023Canada2024-04-25
1024Canada2024-04-01
1025Italy2024-04-03
1026Spain2024-04-19
1027Spain2024-04-27
1028United Kingdom2024-04-18
1029France2024-04-21
1030Italy2024-04-05
1031Germany2024-04-06
1032Germany2024-04-13
1033Spain2024-04-20
1034Argentina2024-04-13
1035Germany2024-04-15
1036Spain2024-04-17
1037Argentina2024-03-30
1038United Kingdom2024-04-01
1039India2024-04-06
1040Russia2024-04-26
1041Japan2024-04-15
1042Germany2024-04-15
1043United Kingdom2024-04-28
1044Italy2024-04-21
1045Argentina2024-04-14
1046Japan2024-04-18
1047Germany2024-04-20
1048France2024-03-31
1049Italy2024-04-11

On-Demand Data

NameIdCountryDate
Leja F Gaucho1000United Kingdom2024-04-21
Ivar V Campain1001India2024-04-05
Ivar X Dilliard1002Brazil2024-04-09
James N Morasca1003India2024-04-16
Smith V Tollner1004France2024-04-20
Kadeem M Poquette1005India2024-04-18
Nicolas Q Gillian1006Canada2024-04-10
Costa S Albares1007Spain2024-04-01
Jones H Shinko1008Germany2024-04-01
Isabel K Figeroa1009Japan2024-04-15
Izzy F Tollner1010Australia2024-04-07
Wickens C Nestle1011Germany2024-04-14
Morrow E Bowley1012Brazil2024-04-01
Julie X Rim1013Japan2024-04-16
Jefferson I Royster1014Australia2024-04-23
Deepesh S Chui1015Germany2024-04-18
Emily T Morasca1016Australia2024-04-21
Morrow W Poquette1017Italy2024-04-20
Emily C Inouye1018Spain2024-04-02
Antonio X Iturbide1019Russia2024-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones K StockhamBrazilOnyama Limba NEW
Isabel I TollnerItalyStephen Shaw UNQUALIFIED
James C KuskoSpainStephen Shaw UNQUALIFIED
Jennifer C MacleadSpainOnyama Limba NEW
Maisha E SergiCanadaAmy Elsner PROPOSAL
David W KuskoCanadaXuxue Feng NEW
Leon S MacleadJapanIoni Bowcher UNQUALIFIED
Morrow S WieserSpainElwin Sharvill NEGOTIATION
Smith V NestleUnited KingdomIvan Magalhaes NEW
Emily W FerenczAustraliaAsiya Javayant PROPOSAL
Ivar H WhobreyArgentinaOnyama Limba NEGOTIATION
Clifford Z KolmetzItalyXuxue Feng PROPOSAL
Darci J NickaAustraliaBernardo Dominic QUALIFIED
Munro G CaldareraFranceIoni Bowcher RENEWAL
Stacey E VocelkaItalyAsiya Javayant QUALIFIED
Rodrigues R KolmetzItalyStephen Shaw NEW
Morrow I DilliardAustraliaIoni Bowcher RENEWAL
Emily R IturbideItalyAmy Elsner NEW
Wickens F DilliardAustraliaOnyama Limba RENEWAL
Misaki Q OstroskyGermanyAsiya Javayant NEW
Chavez Y CaldareraBrazilXuxue Feng QUALIFIED
Clifford W GauchoSpainAnna Fali PROPOSAL
Aika I RoysterCanadaIvan Magalhaes NEW
Jennifer D DarakjyIndiaAmy Elsner UNQUALIFIED
Silvio G PaprockiArgentinaIvan Magalhaes PROPOSAL
Maisha Z PoquetteRussiaIoni Bowcher NEW
Greenwood P RoysterArgentinaIvan Magalhaes PROPOSAL
Emily V NickaJapanStephen Shaw NEGOTIATION
Juan S AmigonArgentinaAsiya Javayant PROPOSAL
Jeanfrancois M GarufiFranceIoni Bowcher UNQUALIFIED
Aika A RulapaughUnited KingdomIvan Magalhaes RENEWAL
Costa H NestleAustraliaAnna Fali PROPOSAL
Cody Q GarufiBrazilAnna Fali NEGOTIATION
Jennifer T BowleyIndiaIoni Bowcher UNQUALIFIED
Aruna M ButtRussiaIvan Magalhaes NEGOTIATION
Adams R KolmetzAustraliaXuxue Feng NEW
Morrow S PerinArgentinaAmy Elsner QUALIFIED
Jeanfrancois A MaletRussiaIoni Bowcher RENEWAL
Aika J CampainCanadaAmy Elsner NEGOTIATION
Jones E GauchoGermanyOnyama Limba NEW

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