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
Isabel I FerenczJapanXuxue Feng NEGOTIATION
Costa C BriddickSpainBernardo Dominic UNQUALIFIED
Jones A WieserIndiaStephen Shaw NEW
Arvin U CaldareraJapanXuxue Feng UNQUALIFIED
Leon S TollnerBrazilElwin Sharvill NEW
Aruna D VocelkaFranceAmy Elsner NEW
Arvin V FerenczUnited KingdomIoni Bowcher RENEWAL
Johnson I PerinRussiaIvan Magalhaes UNQUALIFIED
Misaki E FigeroaIndiaAnna Fali RENEWAL
Jefferson K SaylorsRussiaAsiya Javayant PROPOSAL
Nicolas J FollerFranceStephen Shaw RENEWAL
Alejandro W TollnerRussiaAsiya Javayant UNQUALIFIED
Murillo C MacleadRussiaIoni Bowcher UNQUALIFIED
Costa O FerenczCanadaIvan Magalhaes NEGOTIATION
Kadeem B MaletFranceBernardo Dominic PROPOSAL
Aruna M AmigonCanadaBernardo Dominic PROPOSAL
Johnson W SergiFranceAsiya Javayant QUALIFIED
Octavia P FigeroaFranceIoni Bowcher NEW
Sinclair Q DarakjyArgentinaAnna Fali NEW
Antonio I StensethUnited KingdomStephen Shaw UNQUALIFIED
Stacey F RoysterFranceAsiya Javayant UNQUALIFIED
Darci N OldroydRussiaIvan Magalhaes RENEWAL
David U NickaItalyAsiya Javayant UNQUALIFIED
Stacey D StockhamJapanBernardo Dominic NEGOTIATION
Maria R DoeSpainOnyama Limba RENEWAL
Mujtaba W BologniaGermanyIoni Bowcher RENEWAL
David C SchemmerRussiaIoni Bowcher PROPOSAL
Mayumi Z SlusarskiIndiaXuxue Feng NEW
Smith J CampainBrazilAnna Fali RENEWAL
Julie J NickaFranceXuxue Feng RENEWAL
Leja V KuskoCanadaStephen Shaw PROPOSAL
Chavez U NickaBrazilElwin Sharvill NEGOTIATION
Misaki X IturbideArgentinaAsiya Javayant NEW
Ricardo C VenereArgentinaAmy Elsner NEW
Morrow B GarufiFranceIoni Bowcher RENEWAL
Maria D MorascaGermanyStephen Shaw UNQUALIFIED
Misaki K GillianJapanElwin Sharvill RENEWAL
Clifford A BriddickItalyAnna Fali UNQUALIFIED
Francesco J RulapaughIndiaAsiya Javayant PROPOSAL
Mayumi K NickaArgentinaBernardo Dominic NEW
Sinclair K VocelkaJapanIvan Magalhaes PROPOSAL
Jefferson X VocelkaAustraliaStephen Shaw UNQUALIFIED
Adams B WaycottUnited KingdomAsiya Javayant NEW
Leon E SergiAustraliaXuxue Feng UNQUALIFIED
Jones E FlosiItalyIvan Magalhaes RENEWAL
Costa L InouyeItalyBernardo Dominic PROPOSAL
Costa A NestleJapanStephen Shaw PROPOSAL
David R FlosiFranceBernardo Dominic RENEWAL
Ivar K CaudyJapanBernardo Dominic RENEWAL
Ricardo R VenereUnited KingdomOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jennifer R SchemmerArgentinaIoni Bowcher RENEWAL
Salvatore N KolmetzArgentinaBernardo Dominic PROPOSAL
Antonio Z MorascaIndiaIvan Magalhaes UNQUALIFIED
Cody N DoeSpainAsiya Javayant NEGOTIATION
Stacey S FollerJapanElwin Sharvill PROPOSAL
Silvio K VenereUnited KingdomOnyama Limba NEW
Tony Q FerenczGermanyElwin Sharvill NEW
David P FerenczUnited KingdomStephen Shaw NEW
Aika A DarakjyUnited KingdomAmy Elsner QUALIFIED
Tony M SlusarskiGermanyAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo I CaudyFrance2024-04-04Rousseaux, Michael Esq QUALIFIED99Elwin Sharvill
1001Wickens T RoysterIndia2024-04-01Morlong Associates UNQUALIFIED82Xuxue Feng
1002Wickens H OstroskyJapan2024-04-09Chapman, Ross E Esq PROPOSAL53Xuxue Feng
1003Julie L OstroskyUnited Kingdom2024-03-26Benton, John B Jr UNQUALIFIED11Elwin Sharvill
1004Maisha Z RulapaughAustralia2024-03-26Feltz Printing Service RENEWAL98Bernardo Dominic
1005Arvin F FerenczArgentina2024-04-11Morlong Associates NEW57Amy Elsner
1006Darci B NestleCanada2024-04-07Benton, John B Jr NEW61Anna Fali
1007Maisha I VocelkaFrance2024-04-04Truhlar And Truhlar Attys NEW8Anna Fali
1008Darci B GarufiArgentina2024-04-17Truhlar And Truhlar Attys RENEWAL92Xuxue Feng
1009Maisha C CampainJapan2024-04-17Rousseaux, Michael Esq RENEWAL15Ioni Bowcher
1010Jefferson G MarrierAustralia2024-04-23Buckley Miller Wright NEW89Stephen Shaw
1011Tony S DarakjyIndia2024-04-24Truhlar And Truhlar Attys QUALIFIED88Onyama Limba
1012Aika E IturbideItaly2024-04-24Buckley Miller Wright UNQUALIFIED14Ioni Bowcher
1013Jones P OldroydJapan2024-04-06King, Christopher A Esq UNQUALIFIED46Amy Elsner
1014Claire A DilliardRussia2024-04-08Morlong Associates RENEWAL94Bernardo Dominic
1015Octavia P MacleadArgentina2024-03-27Printing Dimensions NEW98Stephen Shaw
1016Jeanfrancois R PaprockiSpain2024-04-09Feiner Bros RENEWAL65Ioni Bowcher
1017Sinclair O CampainAustralia2024-04-20Printing Dimensions UNQUALIFIED68Asiya Javayant
1018Silvio S NestleFrance2024-04-22Chanay, Jeffrey A Esq NEGOTIATION37Onyama Limba
1019Emily L CampainGermany2024-04-04Chemel, James L Cpa QUALIFIED7Anna Fali
1020Jones Q FerenczGermany2024-04-10King, Christopher A Esq UNQUALIFIED75Xuxue Feng
1021Darci L GarufiUnited Kingdom2024-04-12Dorl, James J Esq UNQUALIFIED61Amy Elsner
1022James N RimAustralia2024-04-24Rangoni Of Florence PROPOSAL50Onyama Limba
1023Deepesh N DilliardAustralia2024-04-15Chapman, Ross E Esq QUALIFIED12Bernardo Dominic
1024David Z PoquetteGermany2024-03-29Rangoni Of Florence PROPOSAL97Ivan Magalhaes
1025Jefferson L CaudyItaly2024-03-27Buckley Miller Wright NEW58Xuxue Feng
1026Kadeem O SaylorsJapan2024-04-10Buckley Miller Wright NEGOTIATION15Ioni Bowcher
1027Adams S RoysterRussia2024-04-11Printing Dimensions PROPOSAL30Asiya Javayant
1028Juan T KuskoRussia2024-04-20Rangoni Of Florence PROPOSAL85Stephen Shaw
1029Jefferson P KolmetzCanada2024-04-11Rangoni Of Florence PROPOSAL16Ivan Magalhaes
1030Maisha S IturbideAustralia2024-03-30Morlong Associates UNQUALIFIED94Anna Fali
1031Deepesh Q PerinSpain2024-04-13King, Christopher A Esq UNQUALIFIED50Xuxue Feng
1032Wickens V VenereUnited Kingdom2024-04-19Truhlar And Truhlar Attys RENEWAL57Bernardo Dominic
1033Stacey K KolmetzItaly2024-04-14Buckley Miller Wright RENEWAL28Ivan Magalhaes
1034Adams F RoysterRussia2024-04-20Rousseaux, Michael Esq NEGOTIATION59Xuxue Feng
1035Octavia P KolmetzRussia2024-04-13Truhlar And Truhlar Attys NEGOTIATION2Anna Fali
1036Leja K FigeroaFrance2024-04-18Chapman, Ross E Esq PROPOSAL44Ioni Bowcher
1037Morrow K SlusarskiFrance2024-04-01Buckley Miller Wright UNQUALIFIED72Ivan Magalhaes
1038Kaitlin V FollerBrazil2024-03-26Feltz Printing Service RENEWAL60Bernardo Dominic
1039Faith A DilliardCanada2024-03-29Truhlar And Truhlar Attys RENEWAL46Anna Fali
1040Isabel M SlusarskiFrance2024-04-11Chemel, James L Cpa RENEWAL80Asiya Javayant
1041Jones T DoeItaly2024-04-08Benton, John B Jr PROPOSAL90Stephen Shaw
1042Mayumi J RimGermany2024-04-04Printing Dimensions NEGOTIATION93Amy Elsner
1043Antonio M AlbaresSpain2024-04-22Commercial Press PROPOSAL20Amy Elsner
1044Jones E MarrierArgentina2024-04-16Rangoni Of Florence PROPOSAL84Anna Fali
1045Darci I AlbaresAustralia2024-04-09Rousseaux, Michael Esq QUALIFIED33Ioni Bowcher
1046Jones K FlosiArgentina2024-04-09Chapman, Ross E Esq NEGOTIATION37Ivan Magalhaes
1047Wickens K FlosiIndia2024-04-15Morlong Associates UNQUALIFIED94Onyama Limba
1048Francesco S CampainGermany2024-03-29Rousseaux, Michael Esq NEW14Onyama Limba
1049Cody L AmigonFrance2024-04-08Morlong Associates QUALIFIED31Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Deepesh S BriddickBrazilElwin Sharvill QUALIFIED
Cody Q ShinkoIndiaStephen Shaw QUALIFIED
Mayumi R ChuiCanadaIvan Magalhaes UNQUALIFIED
Clifford J OstroskyJapanAsiya Javayant UNQUALIFIED
Mayumi C SchemmerItalyAmy Elsner NEW
Aruna I BowleyAustraliaBernardo Dominic QUALIFIED
Deepesh A InouyeUnited KingdomStephen Shaw PROPOSAL
Juan T VenereJapanElwin Sharvill PROPOSAL
Rodrigues K GlickCanadaIoni Bowcher UNQUALIFIED
Jennifer J TollnerGermanyAmy Elsner NEGOTIATION
Faith G SlusarskiJapanAnna Fali NEW
Mayumi Y FollerFranceElwin Sharvill PROPOSAL
Alejandro A KuskoJapanElwin Sharvill NEW
Aruna X StensethSpainIvan Magalhaes PROPOSAL
Mujtaba C FollerGermanyIoni Bowcher UNQUALIFIED
Morrow B AlbaresIndiaOnyama Limba UNQUALIFIED
Emily D AmigonIndiaXuxue Feng QUALIFIED
Aditya L GauchoJapanAsiya Javayant QUALIFIED
Cody H FigeroaCanadaIvan Magalhaes NEGOTIATION
Francesco F AlbaresRussiaBernardo Dominic UNQUALIFIED
Smith P BowleyUnited KingdomStephen Shaw NEW
Jefferson O PaprockiUnited KingdomElwin Sharvill RENEWAL
Jones S WaycottGermanyStephen Shaw QUALIFIED
Ricardo W CaldareraSpainElwin Sharvill RENEWAL
Claire S SaylorsAustraliaAsiya Javayant NEGOTIATION
Maria F SchemmerCanadaAmy Elsner QUALIFIED
Wickens J GauchoItalyStephen Shaw UNQUALIFIED
Morrow G KuskoIndiaElwin Sharvill NEW
Deepesh L StockhamSpainAsiya Javayant NEW
Silvio Y WaycottSpainStephen Shaw RENEWAL
Kaitlin N GillianJapanAmy Elsner NEW
Mayumi L RulapaughIndiaStephen Shaw NEGOTIATION
Murillo Z OstroskyArgentinaStephen Shaw NEGOTIATION
Jeanfrancois I SlusarskiJapanXuxue Feng UNQUALIFIED
Arvin E IturbideFranceBernardo Dominic UNQUALIFIED
Leon R IturbideCanadaIoni Bowcher NEW
David N FollerFranceAmy Elsner RENEWAL
Jennifer U NickaBrazilOnyama Limba NEGOTIATION
Morrow U DarakjyBrazilAsiya Javayant NEGOTIATION
Alejandro T MaletJapanOnyama Limba QUALIFIED
David P IturbideUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi N BriddickCanadaOnyama Limba NEGOTIATION
Nicolas C RulapaughGermanyElwin Sharvill NEW
Aruna A FigeroaAustraliaXuxue Feng NEGOTIATION
Julie O MorascaFranceIoni Bowcher PROPOSAL
Ashley U AlbaresCanadaStephen Shaw PROPOSAL
Antonio I SaylorsIndiaElwin Sharvill NEGOTIATION
Leon R DoeGermanyIoni Bowcher QUALIFIED
Maria V NickaBrazilAmy Elsner PROPOSAL
Sinclair A RimAustraliaIoni Bowcher UNQUALIFIED
Frozen Columns
Name
Cody X Inouye
Salvatore O Foller
Alejandro O Garufi
Salvatore J Maclead
Smith B Flosi
Deepesh C Inouye
Emily C Royster
Francesco K Glick
Jefferson J Doe
Sinclair Y Venere
Deepesh V Glick
Izzy I Slusarski
Julie F Ostrosky
James D Glick
Maisha M Venere
Maria U Iturbide
Kadeem E Shinko
Nicolas E Kusko
Aruna D Paprocki
Izzy O Morasca
Adams T Tollner
Emily B Kusko
Antonio D Marrier
Alejandro Z Gillian
Leja Q Nicka
David K Venere
Smith S Poquette
Deepesh M Gaucho
Morrow P Sergi
Morrow S Shinko
Aika Y Kolmetz
Julie J Maclead
Jones X Saylors
Leon Z Foller
Octavia D Schemmer
Mujtaba P Doe
Mayumi N Gaucho
Misaki I Nicka
Darci O Butt
Costa A Tollner
Clifford U Garufi
Aika R Morasca
Aditya F Rulapaugh
Faith D Saylors
Maria A Morasca
Faith Y Garufi
Rodrigues G Amigon
Sinclair C Morasca
Costa B Doe
Leja Y Bowley
IdCountryDate
1000Argentina2024-04-19
1001Russia2024-04-15
1002Japan2024-03-26
1003Canada2024-04-18
1004Russia2024-04-13
1005India2024-04-06
1006Spain2024-04-07
1007Brazil2024-04-15
1008Russia2024-04-20
1009Canada2024-04-11
1010France2024-04-03
1011Spain2024-04-24
1012Brazil2024-03-30
1013France2024-04-10
1014Japan2024-04-19
1015Canada2024-04-03
1016Argentina2024-04-04
1017Russia2024-03-29
1018Spain2024-04-15
1019Italy2024-04-03
1020Spain2024-04-14
1021Japan2024-04-08
1022Australia2024-03-31
1023Spain2024-03-27
1024Germany2024-03-29
1025United Kingdom2024-04-05
1026Italy2024-03-30
1027Canada2024-04-11
1028Argentina2024-04-18
1029Brazil2024-03-31
1030Argentina2024-04-14
1031Russia2024-04-03
1032Italy2024-04-06
1033Japan2024-04-13
1034United Kingdom2024-04-21
1035United Kingdom2024-04-03
1036Brazil2024-03-28
1037Spain2024-04-24
1038Argentina2024-04-07
1039Spain2024-04-05
1040Australia2024-04-11
1041Argentina2024-03-31
1042Canada2024-03-30
1043France2024-03-28
1044Italy2024-03-28
1045Japan2024-04-20
1046India2024-04-10
1047Germany2024-03-26
1048United Kingdom2024-04-15
1049Canada2024-04-01

On-Demand Data

NameIdCountryDate
Jefferson P Dilliard1000Italy2024-03-30
Mujtaba T Paprocki1001Russia2024-04-18
Faith B Doe1002Spain2024-04-04
Murillo J Gillian1003Italy2024-03-29
Jones B Perin1004France2024-03-27
Emily R Dilliard1005Spain2024-04-04
Morrow N Marrier1006Japan2024-04-08
Jones U Doe1007Japan2024-03-28
David E Sergi1008Germany2024-03-29
Izzy G Iturbide1009Japan2024-04-24
Jones S Dilliard1010Canada2024-04-22
Leon G Bolognia1011Russia2024-04-19
Jefferson Y Glick1012France2024-04-06
Ashley Y Gaucho1013France2024-04-12
Mujtaba Y Doe1014Germany2024-04-07
Claire P Whobrey1015Japan2024-03-30
Wickens W Poquette1016Germany2024-03-27
Silvio D Gaucho1017Japan2024-04-24
Antonio Z Ruta1018Argentina2024-04-14
Leja A Flosi1019Spain2024-03-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore U TollnerUnited KingdomAsiya Javayant QUALIFIED
Clifford U KuskoGermanyXuxue Feng PROPOSAL
Darci O DilliardItalyElwin Sharvill UNQUALIFIED
Silvio X StensethCanadaAmy Elsner RENEWAL
Salvatore C SergiAustraliaElwin Sharvill UNQUALIFIED
Leon Y FigeroaItalyElwin Sharvill UNQUALIFIED
Silvio B SaylorsIndiaStephen Shaw PROPOSAL
Costa Y WhobreyBrazilAnna Fali UNQUALIFIED
Munro X CampainBrazilStephen Shaw QUALIFIED
Isabel N DoeCanadaElwin Sharvill PROPOSAL
Jennifer J VenereArgentinaAsiya Javayant NEGOTIATION
Darci I RutaFranceBernardo Dominic UNQUALIFIED
Maria Q RimSpainXuxue Feng NEW
Smith B RulapaughItalyBernardo Dominic NEW
Aika A WieserSpainXuxue Feng NEW
Mujtaba T PerinRussiaBernardo Dominic PROPOSAL
Antonio A SlusarskiArgentinaAnna Fali QUALIFIED
Misaki U FlosiItalyOnyama Limba UNQUALIFIED
Ashley Q PerinAustraliaXuxue Feng QUALIFIED
James X NickaFranceIoni Bowcher NEW
Jennifer P OstroskyRussiaIvan Magalhaes NEW
Julie F InouyeItalyAsiya Javayant RENEWAL
Munro O OstroskyGermanyAsiya Javayant NEGOTIATION
Smith B ShinkoItalyElwin Sharvill QUALIFIED
Jefferson U AlbaresIndiaAnna Fali NEGOTIATION
Izzy I MacleadIndiaOnyama Limba NEGOTIATION
Jones C WhobreyJapanIvan Magalhaes UNQUALIFIED
Emily Y VocelkaUnited KingdomStephen Shaw QUALIFIED
David M RimItalyBernardo Dominic QUALIFIED
Sinclair U CaldareraItalyAnna Fali RENEWAL
Mayumi N IturbideAustraliaIoni Bowcher UNQUALIFIED
Leja K MaletArgentinaElwin Sharvill NEW
Arvin D DilliardItalyAsiya Javayant QUALIFIED
Misaki E NestleArgentinaAmy Elsner PROPOSAL
Mujtaba F KolmetzBrazilStephen Shaw QUALIFIED
Antonio A MarrierJapanAsiya Javayant QUALIFIED
Cody S VocelkaUnited KingdomBernardo Dominic NEW
Wickens N RimAustraliaStephen Shaw PROPOSAL
Francesco B ChuiUnited KingdomXuxue Feng QUALIFIED
Jeanfrancois B KuskoItalyXuxue Feng PROPOSAL

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