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
Aditya H WhobreyUnited KingdomIvan Magalhaes UNQUALIFIED
Deepesh V RutaGermanyStephen Shaw RENEWAL
Salvatore F BologniaGermanyIoni Bowcher NEW
Clifford S TollnerSpainStephen Shaw QUALIFIED
Izzy I AlbaresUnited KingdomOnyama Limba PROPOSAL
Ivar O MorascaBrazilBernardo Dominic QUALIFIED
James H CaudyJapanElwin Sharvill NEW
Francesco U StockhamCanadaAmy Elsner RENEWAL
Smith N InouyeFranceAsiya Javayant NEW
Wickens Y FigeroaUnited KingdomAsiya Javayant UNQUALIFIED
Juan M StockhamJapanIvan Magalhaes RENEWAL
Aika H CampainFranceOnyama Limba NEW
David M StockhamUnited KingdomStephen Shaw PROPOSAL
Faith K GlickIndiaElwin Sharvill UNQUALIFIED
Aditya E ShinkoIndiaIoni Bowcher RENEWAL
Johnson V GarufiIndiaIoni Bowcher NEW
Faith V GillianFranceXuxue Feng PROPOSAL
Maria D AmigonJapanIoni Bowcher PROPOSAL
Aruna N PerinAustraliaStephen Shaw NEGOTIATION
Salvatore D OldroydItalyStephen Shaw UNQUALIFIED
Jefferson Q OldroydItalyOnyama Limba QUALIFIED
Ivar A GlickJapanIvan Magalhaes NEW
Nicolas K AmigonGermanyIoni Bowcher RENEWAL
Deepesh O RimItalyIvan Magalhaes PROPOSAL
Costa I RutaGermanyIoni Bowcher UNQUALIFIED
Greenwood T MarrierItalyXuxue Feng NEW
Arvin I BowleyCanadaOnyama Limba NEW
Alejandro H KuskoAustraliaIvan Magalhaes UNQUALIFIED
Octavia O PoquetteBrazilBernardo Dominic QUALIFIED
Stacey I SaylorsGermanyAmy Elsner RENEWAL
Rodrigues X GlickIndiaBernardo Dominic NEGOTIATION
Maisha I WhobreyAustraliaStephen Shaw UNQUALIFIED
David K DilliardIndiaIoni Bowcher NEW
Ashley V NestleAustraliaIvan Magalhaes UNQUALIFIED
Nicolas V MarrierIndiaIoni Bowcher UNQUALIFIED
Juan Y RoysterAustraliaAnna Fali PROPOSAL
Aditya O BowleyRussiaIoni Bowcher NEW
David Z AlbaresArgentinaAnna Fali NEW
Juan I FigeroaSpainIoni Bowcher QUALIFIED
Arvin Z StockhamRussiaBernardo Dominic NEW
Leja U KuskoSpainStephen Shaw NEGOTIATION
Nicolas D DarakjyUnited KingdomStephen Shaw UNQUALIFIED
Stacey U WhobreyRussiaElwin Sharvill PROPOSAL
James M FigeroaJapanXuxue Feng PROPOSAL
Morrow Z OldroydGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois U RulapaughIndiaAmy Elsner NEGOTIATION
Adams B PerinGermanyAnna Fali NEGOTIATION
Jefferson I IturbideItalyIvan Magalhaes RENEWAL
Kadeem A TollnerRussiaStephen Shaw NEGOTIATION
Kaitlin W FollerArgentinaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody D TollnerAustraliaXuxue Feng UNQUALIFIED
Cody J IturbideCanadaAnna Fali QUALIFIED
Julie D AmigonArgentinaBernardo Dominic NEGOTIATION
Maria O NickaAustraliaAnna Fali PROPOSAL
Costa R GarufiJapanAsiya Javayant NEW
Francesco G PaprockiRussiaAmy Elsner RENEWAL
Octavia C SlusarskiBrazilAsiya Javayant PROPOSAL
Faith F MaletItalyIvan Magalhaes RENEWAL
Kaitlin U VenereCanadaAsiya Javayant RENEWAL
Leon J BriddickRussiaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez T GlickIndia2024-03-25Morlong Associates UNQUALIFIED22Amy Elsner
1001Jones Q RoysterFrance2024-04-20Truhlar And Truhlar Attys PROPOSAL24Asiya Javayant
1002Murillo H WieserRussia2024-04-09Chapman, Ross E Esq NEW52Anna Fali
1003Isabel D GillianBrazil2024-04-01Dorl, James J Esq RENEWAL82Onyama Limba
1004Salvatore C GillianUnited Kingdom2024-04-03Commercial Press PROPOSAL83Onyama Limba
1005Juan W DilliardAustralia2024-04-05King, Christopher A Esq NEW13Amy Elsner
1006Leon R AlbaresIndia2024-04-10Chemel, James L Cpa RENEWAL71Ivan Magalhaes
1007Ivar Z SchemmerSpain2024-04-03Buckley Miller Wright QUALIFIED89Elwin Sharvill
1008Sinclair L DilliardCanada2024-04-13Chanay, Jeffrey A Esq RENEWAL32Ioni Bowcher
1009Kaitlin Y PoquetteJapan2024-04-20Chemel, James L Cpa NEW2Stephen Shaw
1010Misaki B MaletCanada2024-04-12Chanay, Jeffrey A Esq RENEWAL77Ivan Magalhaes
1011Izzy Y SchemmerIndia2024-04-17Feltz Printing Service RENEWAL44Anna Fali
1012Deepesh Q KuskoRussia2024-04-09Dorl, James J Esq NEGOTIATION13Onyama Limba
1013Jeanfrancois V DilliardUnited Kingdom2024-04-11Printing Dimensions RENEWAL14Anna Fali
1014Jennifer Q FigeroaSpain2024-04-18Buckley Miller Wright UNQUALIFIED70Elwin Sharvill
1015Nicolas N CampainAustralia2024-03-28Printing Dimensions PROPOSAL53Ioni Bowcher
1016Izzy S AlbaresFrance2024-04-09Morlong Associates PROPOSAL46Stephen Shaw
1017Leon H StockhamBrazil2024-04-05Dorl, James J Esq PROPOSAL20Onyama Limba
1018Stacey C NestleCanada2024-04-04Printing Dimensions NEGOTIATION80Xuxue Feng
1019Deepesh F AlbaresFrance2024-04-11Commercial Press RENEWAL9Asiya Javayant
1020Isabel Q TollnerFrance2024-04-20King, Christopher A Esq NEW87Elwin Sharvill
1021Salvatore Y GauchoItaly2024-04-06Rangoni Of Florence PROPOSAL80Ioni Bowcher
1022Clifford S CaldareraFrance2024-03-31Chemel, James L Cpa NEGOTIATION88Anna Fali
1023Alejandro V OldroydGermany2024-04-14Feltz Printing Service UNQUALIFIED19Stephen Shaw
1024Juan N SchemmerBrazil2024-03-29Chanay, Jeffrey A Esq NEW97Xuxue Feng
1025Jennifer F MaletAustralia2024-04-04Buckley Miller Wright QUALIFIED97Ivan Magalhaes
1026Murillo M SaylorsRussia2024-04-22Morlong Associates NEW25Ioni Bowcher
1027Greenwood O ChuiIndia2024-04-02Dorl, James J Esq NEW60Ivan Magalhaes
1028Clifford B DarakjyBrazil2024-04-19Chapman, Ross E Esq QUALIFIED68Anna Fali
1029Chavez J DilliardAustralia2024-03-28Feiner Bros NEGOTIATION60Amy Elsner
1030Murillo C SchemmerUnited Kingdom2024-03-27Feiner Bros NEW42Onyama Limba
1031Darci G WhobreyItaly2024-03-27Feltz Printing Service QUALIFIED62Stephen Shaw
1032Rodrigues B ButtIndia2024-04-18Chemel, James L Cpa PROPOSAL93Asiya Javayant
1033Izzy S SchemmerIndia2024-04-16Rangoni Of Florence UNQUALIFIED21Elwin Sharvill
1034Smith M MaletBrazil2024-03-30Benton, John B Jr PROPOSAL64Stephen Shaw
1035Juan K CampainGermany2024-04-09Chanay, Jeffrey A Esq RENEWAL31Stephen Shaw
1036Morrow N ButtFrance2024-04-01Commercial Press UNQUALIFIED20Amy Elsner
1037Arvin D DilliardAustralia2024-04-03Rangoni Of Florence RENEWAL2Ioni Bowcher
1038Morrow U ButtUnited Kingdom2024-04-22King, Christopher A Esq NEW4Ioni Bowcher
1039Octavia T MaletRussia2024-04-12Morlong Associates QUALIFIED86Ivan Magalhaes
1040Misaki A CaldareraUnited Kingdom2024-03-28Chapman, Ross E Esq QUALIFIED32Elwin Sharvill
1041Misaki R PerinJapan2024-03-26Rangoni Of Florence PROPOSAL81Xuxue Feng
1042Emily R FigeroaArgentina2024-03-27Chemel, James L Cpa NEGOTIATION33Ivan Magalhaes
1043Cody R MacleadItaly2024-04-03Benton, John B Jr PROPOSAL51Ivan Magalhaes
1044Aruna W DilliardJapan2024-04-17Dorl, James J Esq NEW25Xuxue Feng
1045Costa K FigeroaRussia2024-04-17Benton, John B Jr UNQUALIFIED7Asiya Javayant
1046Aruna L DarakjyBrazil2024-03-28Morlong Associates RENEWAL34Ioni Bowcher
1047Faith X InouyeFrance2024-04-19Printing Dimensions NEW16Onyama Limba
1048Arvin Y GauchoAustralia2024-04-09Feltz Printing Service RENEWAL8Asiya Javayant
1049Mujtaba U PoquetteCanada2024-04-01Printing Dimensions UNQUALIFIED13Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Cody H TollnerJapanBernardo Dominic NEGOTIATION
Jones P OstroskyAustraliaXuxue Feng QUALIFIED
Ashley H OstroskySpainOnyama Limba QUALIFIED
Maria C PoquetteIndiaXuxue Feng NEW
Salvatore P BologniaAustraliaIoni Bowcher NEGOTIATION
Leon Y AlbaresItalyIoni Bowcher PROPOSAL
Leon P OstroskyUnited KingdomBernardo Dominic RENEWAL
Jeanfrancois Q ChuiItalyOnyama Limba NEW
Jeanfrancois X MorascaBrazilOnyama Limba UNQUALIFIED
Clifford M WhobreyArgentinaOnyama Limba NEW
David Z PaprockiAustraliaAmy Elsner UNQUALIFIED
Aika C WaycottAustraliaBernardo Dominic NEW
Cody D RutaUnited KingdomOnyama Limba UNQUALIFIED
Stacey J SchemmerSpainStephen Shaw NEGOTIATION
Clifford Q CaldareraJapanAmy Elsner NEGOTIATION
Jeanfrancois J GauchoFranceIvan Magalhaes NEW
Julie Z ChuiJapanElwin Sharvill NEGOTIATION
Kaitlin J TollnerRussiaOnyama Limba UNQUALIFIED
Julie W RulapaughBrazilXuxue Feng UNQUALIFIED
Ashley Q AlbaresJapanAmy Elsner QUALIFIED
Greenwood N BologniaGermanyXuxue Feng PROPOSAL
Leja C MarrierIndiaBernardo Dominic RENEWAL
Sinclair U FerenczRussiaIoni Bowcher NEGOTIATION
Jefferson O StensethUnited KingdomIoni Bowcher QUALIFIED
Mujtaba B VocelkaArgentinaAnna Fali NEW
Murillo F ChuiItalyBernardo Dominic RENEWAL
Nicolas V PaprockiCanadaIoni Bowcher NEW
Francesco L OldroydRussiaElwin Sharvill PROPOSAL
Kadeem H NestleArgentinaAnna Fali NEGOTIATION
Maria G WieserAustraliaBernardo Dominic UNQUALIFIED
Antonio F FerenczItalyAmy Elsner NEW
Rodrigues T GillianItalyIoni Bowcher PROPOSAL
Salvatore A IturbideRussiaIoni Bowcher RENEWAL
Wickens B RulapaughUnited KingdomXuxue Feng NEGOTIATION
Aditya H BowleyArgentinaElwin Sharvill QUALIFIED
Arvin Q VenereArgentinaAsiya Javayant RENEWAL
Sinclair K GarufiIndiaIoni Bowcher NEW
Ashley D GauchoUnited KingdomIoni Bowcher UNQUALIFIED
Munro D VenereGermanyIoni Bowcher UNQUALIFIED
Jefferson G ButtArgentinaIvan Magalhaes NEGOTIATION
Aditya D GauchoGermanyAmy Elsner QUALIFIED
Kaitlin J RimGermanyIvan Magalhaes RENEWAL
Salvatore O CaldareraArgentinaAnna Fali NEW
David R OstroskyBrazilAsiya Javayant QUALIFIED
Maria K GlickArgentinaIoni Bowcher RENEWAL
Silvio O VocelkaItalyAsiya Javayant UNQUALIFIED
Antonio W DarakjySpainOnyama Limba PROPOSAL
Alejandro Q NestleCanadaIvan Magalhaes NEGOTIATION
Cody U AmigonJapanElwin Sharvill NEW
Leja P CaldareraBrazilIoni Bowcher RENEWAL
Frozen Columns
Name
Claire O Bowley
Darci T Butt
Maria Y Malet
David W Gillian
Jeanfrancois R Venere
Salvatore D Venere
Arvin A Campain
Alejandro S Kolmetz
Munro B Kusko
Aika D Malet
Antonio P Ruta
Antonio C Marrier
Izzy J Iturbide
Arvin E Kolmetz
Greenwood B Oldroyd
Faith L Stockham
Claire Z Butt
Jennifer W Amigon
Deepesh P Caudy
Ricardo T Oldroyd
Cody W Campain
Misaki M Sergi
Faith O Malet
Maisha O Stenseth
Leja I Stockham
Sinclair G Marrier
Maisha R Vocelka
James K Rulapaugh
Chavez H Caudy
Morrow V Ruta
Misaki P Maclead
Claire P Kolmetz
Julie T Saylors
David P Nicka
Sinclair S Ferencz
Aditya D Sergi
Aruna B Ostrosky
Costa P Bowley
Silvio T Rim
Tony X Marrier
Deepesh X Schemmer
Costa M Figeroa
Faith X Briddick
Clifford H Wieser
Maisha P Gaucho
Claire Q Rulapaugh
Nicolas G Oldroyd
Claire E Marrier
Jeanfrancois F Amigon
Smith K Iturbide
IdCountryDate
1000Argentina2024-04-01
1001Japan2024-04-02
1002Spain2024-04-07
1003Brazil2024-04-12
1004Brazil2024-04-22
1005India2024-03-25
1006Italy2024-03-30
1007Brazil2024-04-10
1008Brazil2024-04-15
1009Canada2024-03-28
1010Japan2024-04-04
1011Spain2024-04-09
1012Japan2024-04-04
1013Germany2024-04-17
1014Japan2024-03-24
1015Brazil2024-04-19
1016France2024-04-10
1017Argentina2024-04-16
1018India2024-04-15
1019Spain2024-03-27
1020United Kingdom2024-04-11
1021Japan2024-03-31
1022Argentina2024-03-28
1023Canada2024-03-28
1024Australia2024-03-25
1025Italy2024-04-15
1026India2024-03-24
1027Japan2024-04-11
1028Spain2024-04-05
1029India2024-04-07
1030Argentina2024-04-05
1031Italy2024-04-04
1032Germany2024-04-09
1033Canada2024-03-31
1034Germany2024-04-19
1035Argentina2024-04-13
1036Japan2024-04-01
1037Russia2024-03-29
1038Argentina2024-04-05
1039Italy2024-03-24
1040Australia2024-04-16
1041Germany2024-04-11
1042Germany2024-04-22
1043Russia2024-04-13
1044United Kingdom2024-03-24
1045United Kingdom2024-04-07
1046Argentina2024-04-12
1047Argentina2024-04-04
1048United Kingdom2024-04-15
1049India2024-04-14

On-Demand Data

NameIdCountryDate
Munro J Stockham1000Italy2024-04-05
Morrow V Kolmetz1001Russia2024-04-04
Mujtaba X Kolmetz1002Australia2024-04-19
Ashley E Schemmer1003Argentina2024-03-31
Aruna C Tollner1004United Kingdom2024-04-20
Silvio X Amigon1005Japan2024-04-16
Nicolas F Malet1006Germany2024-04-05
Silvio U Morasca1007Australia2024-04-04
Ashley S Slusarski1008Australia2024-04-04
Antonio L Briddick1009Russia2024-04-05
Francesco C Stenseth1010Italy2024-04-19
James S Foller1011Russia2024-04-04
Darci U Briddick1012Argentina2024-04-02
David R Malet1013Australia2024-03-28
Silvio F Gillian1014United Kingdom2024-03-24
Greenwood Z Briddick1015Canada2024-04-12
Wickens B Bowley1016Australia2024-04-20
Ashley O Flosi1017Canada2024-04-17
Claire I Doe1018Germany2024-03-24
Johnson P Kolmetz1019Japan2024-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar U NestleGermanyIoni Bowcher PROPOSAL
Juan X SlusarskiJapanBernardo Dominic RENEWAL
Silvio H RulapaughCanadaIoni Bowcher UNQUALIFIED
Aditya T CaudyGermanyElwin Sharvill QUALIFIED
Maisha B VocelkaJapanAmy Elsner QUALIFIED
Aruna O IturbideJapanElwin Sharvill NEGOTIATION
Ricardo M MaletRussiaAmy Elsner RENEWAL
Misaki V StensethRussiaXuxue Feng NEGOTIATION
Juan T MorascaSpainIvan Magalhaes RENEWAL
Jones W OstroskySpainBernardo Dominic QUALIFIED
Maria C GlickSpainIoni Bowcher RENEWAL
Munro H ShinkoSpainElwin Sharvill UNQUALIFIED
Maisha B VenereItalyXuxue Feng PROPOSAL
David T WaycottJapanElwin Sharvill PROPOSAL
Murillo Y SaylorsJapanIoni Bowcher PROPOSAL
Johnson L VocelkaGermanyXuxue Feng QUALIFIED
Smith T GauchoCanadaIoni Bowcher QUALIFIED
Francesco C RoysterFranceIvan Magalhaes UNQUALIFIED
Isabel S BologniaBrazilAnna Fali RENEWAL
Adams P MacleadIndiaIvan Magalhaes NEW
Murillo O BriddickFranceIvan Magalhaes PROPOSAL
Emily G DarakjyUnited KingdomIvan Magalhaes NEW
David E GarufiRussiaIvan Magalhaes UNQUALIFIED
Jones J DarakjyGermanyIvan Magalhaes RENEWAL
Mujtaba P VenereFranceBernardo Dominic RENEWAL
Wickens P MacleadItalyElwin Sharvill QUALIFIED
Isabel O AlbaresItalyBernardo Dominic NEGOTIATION
Octavia O VocelkaRussiaAnna Fali QUALIFIED
Kadeem F GauchoCanadaOnyama Limba UNQUALIFIED
Munro R SergiUnited KingdomAnna Fali NEGOTIATION
Murillo P StockhamArgentinaStephen Shaw PROPOSAL
Isabel D VocelkaAustraliaAnna Fali NEGOTIATION
Tony E BowleyCanadaStephen Shaw QUALIFIED
Wickens J RulapaughJapanIvan Magalhaes NEGOTIATION
Deepesh G DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Emily P NickaItalyIvan Magalhaes RENEWAL
Isabel G PoquetteAustraliaXuxue Feng UNQUALIFIED
Costa U MacleadCanadaIoni Bowcher PROPOSAL
Johnson J NickaAustraliaIoni Bowcher NEW
Antonio A DilliardCanadaAnna Fali QUALIFIED

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