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 O SaylorsSpainBernardo Dominic NEGOTIATION
Smith D RulapaughSpainOnyama Limba PROPOSAL
Jeanfrancois C StockhamItalyOnyama Limba NEW
Jones N CampainRussiaOnyama Limba NEGOTIATION
Clifford S GlickIndiaAmy Elsner UNQUALIFIED
Murillo C DilliardIndiaStephen Shaw NEW
Murillo X PerinIndiaAmy Elsner QUALIFIED
Ivar B ChuiCanadaBernardo Dominic UNQUALIFIED
Rodrigues T NickaJapanStephen Shaw NEW
Leja B MacleadIndiaBernardo Dominic PROPOSAL
Morrow N OldroydBrazilAmy Elsner QUALIFIED
Leja Q FigeroaUnited KingdomAsiya Javayant PROPOSAL
Isabel Z RimBrazilXuxue Feng NEW
David P MarrierFranceAnna Fali NEW
Nicolas C GauchoRussiaAnna Fali RENEWAL
Aika N MarrierArgentinaOnyama Limba PROPOSAL
Mujtaba F StockhamBrazilIvan Magalhaes NEW
Jeanfrancois R IturbideUnited KingdomOnyama Limba NEGOTIATION
Munro K KuskoIndiaAsiya Javayant NEGOTIATION
Adams U StockhamJapanAnna Fali PROPOSAL
Rodrigues S CampainSpainStephen Shaw UNQUALIFIED
Tony V KolmetzGermanyElwin Sharvill NEW
Maria G FigeroaJapanStephen Shaw NEW
Misaki M InouyeBrazilBernardo Dominic RENEWAL
Kadeem S RulapaughArgentinaOnyama Limba NEGOTIATION
Aditya K DilliardAustraliaAnna Fali NEW
Francesco F CaldareraIndiaOnyama Limba RENEWAL
Ricardo A SchemmerIndiaElwin Sharvill RENEWAL
Aika Q RoysterJapanBernardo Dominic QUALIFIED
Clifford B GlickFranceAnna Fali QUALIFIED
Greenwood P FigeroaRussiaAnna Fali RENEWAL
Antonio V PerinSpainAmy Elsner UNQUALIFIED
Darci I BowleyAustraliaIoni Bowcher RENEWAL
Aditya Q MaletCanadaAmy Elsner NEW
Aika Y CaldareraUnited KingdomAsiya Javayant NEW
Jefferson P OldroydBrazilOnyama Limba RENEWAL
Morrow P FlosiArgentinaElwin Sharvill NEGOTIATION
Jones D BriddickFranceIoni Bowcher PROPOSAL
Ashley X PaprockiUnited KingdomXuxue Feng UNQUALIFIED
Kadeem P PerinIndiaAsiya Javayant RENEWAL
Jefferson H IturbideGermanyOnyama Limba PROPOSAL
Deepesh X RulapaughAustraliaXuxue Feng RENEWAL
Julie E SchemmerItalyAnna Fali QUALIFIED
Adams M MacleadUnited KingdomAnna Fali UNQUALIFIED
Adams G KolmetzItalyStephen Shaw RENEWAL
Aika R VenereUnited KingdomElwin Sharvill PROPOSAL
Emily L MaletArgentinaBernardo Dominic PROPOSAL
Smith U StockhamJapanIvan Magalhaes NEGOTIATION
Jeanfrancois K FlosiItalyIvan Magalhaes QUALIFIED
Tony R MaletJapanIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Aruna I NestleFranceIvan Magalhaes QUALIFIED
Juan L AmigonCanadaBernardo Dominic NEGOTIATION
Emily G MacleadFranceOnyama Limba UNQUALIFIED
Aditya H MacleadFranceOnyama Limba RENEWAL
Murillo S VocelkaUnited KingdomElwin Sharvill RENEWAL
Mayumi F SlusarskiUnited KingdomXuxue Feng UNQUALIFIED
Chavez B FlosiItalyAmy Elsner PROPOSAL
Costa Q MaletArgentinaIoni Bowcher PROPOSAL
Silvio P FigeroaJapanIvan Magalhaes NEGOTIATION
Greenwood E BriddickFranceStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones K RulapaughGermany2024-04-03Morlong Associates RENEWAL73Onyama Limba
1001Tony L BologniaRussia2024-03-24Buckley Miller Wright UNQUALIFIED63Ivan Magalhaes
1002Kadeem F PoquetteIndia2024-04-17Feiner Bros NEW73Elwin Sharvill
1003Arvin S NestleGermany2024-04-08Buckley Miller Wright UNQUALIFIED13Asiya Javayant
1004Costa Q GlickFrance2024-03-27Buckley Miller Wright PROPOSAL7Ivan Magalhaes
1005Tony X NickaGermany2024-04-17Feiner Bros RENEWAL65Elwin Sharvill
1006Ricardo K StockhamIndia2024-03-22King, Christopher A Esq RENEWAL61Stephen Shaw
1007Maisha B DarakjyArgentina2024-04-17Commercial Press PROPOSAL5Ivan Magalhaes
1008Munro E StockhamAustralia2024-04-13Chemel, James L Cpa NEW32Bernardo Dominic
1009Rodrigues Y AmigonFrance2024-03-29Truhlar And Truhlar Attys QUALIFIED56Xuxue Feng
1010Morrow R StockhamFrance2024-04-01Rangoni Of Florence PROPOSAL56Xuxue Feng
1011Wickens U BologniaItaly2024-04-06Rangoni Of Florence RENEWAL18Ivan Magalhaes
1012Mujtaba X MorascaIndia2024-04-08Chapman, Ross E Esq PROPOSAL92Xuxue Feng
1013Stacey G BologniaUnited Kingdom2024-03-29Morlong Associates NEW50Anna Fali
1014Alejandro V SlusarskiGermany2024-04-17Commercial Press RENEWAL29Bernardo Dominic
1015Claire N VenereRussia2024-03-24Commercial Press UNQUALIFIED76Bernardo Dominic
1016Jones J MarrierUnited Kingdom2024-04-18Truhlar And Truhlar Attys UNQUALIFIED42Ioni Bowcher
1017Jennifer X RutaUnited Kingdom2024-04-11Dorl, James J Esq NEW72Anna Fali
1018James R DoeUnited Kingdom2024-03-22Truhlar And Truhlar Attys PROPOSAL83Ivan Magalhaes
1019Isabel P GarufiItaly2024-04-08Benton, John B Jr NEGOTIATION33Xuxue Feng
1020Wickens T BowleyIndia2024-03-28Chapman, Ross E Esq RENEWAL26Anna Fali
1021Tony W RoysterBrazil2024-03-22Rangoni Of Florence NEGOTIATION76Anna Fali
1022Antonio F CampainJapan2024-03-31Chapman, Ross E Esq QUALIFIED63Ivan Magalhaes
1023Deepesh R WhobreyRussia2024-04-05Commercial Press QUALIFIED16Stephen Shaw
1024Misaki V NestleSpain2024-03-30Morlong Associates PROPOSAL84Bernardo Dominic
1025Smith O RulapaughSpain2024-04-11Buckley Miller Wright PROPOSAL90Ioni Bowcher
1026Jones C FlosiAustralia2024-04-01Printing Dimensions RENEWAL56Onyama Limba
1027Jones W SergiGermany2024-04-13Chemel, James L Cpa QUALIFIED94Ivan Magalhaes
1028Kaitlin T StensethIndia2024-04-14Benton, John B Jr NEW98Elwin Sharvill
1029Leon P InouyeUnited Kingdom2024-04-18Feltz Printing Service PROPOSAL48Amy Elsner
1030Silvio F SlusarskiAustralia2024-03-21Rousseaux, Michael Esq QUALIFIED42Elwin Sharvill
1031Maisha B StockhamFrance2024-04-01Morlong Associates RENEWAL91Ivan Magalhaes
1032Aruna N SlusarskiRussia2024-04-17Benton, John B Jr QUALIFIED10Anna Fali
1033Izzy W ButtItaly2024-04-12Buckley Miller Wright UNQUALIFIED52Xuxue Feng
1034Aika C VocelkaSpain2024-03-22Chemel, James L Cpa RENEWAL79Xuxue Feng
1035Alejandro D SergiBrazil2024-04-06Morlong Associates QUALIFIED24Bernardo Dominic
1036Deepesh T GarufiArgentina2024-04-08Buckley Miller Wright PROPOSAL30Ivan Magalhaes
1037Faith N PoquetteIndia2024-03-22Feltz Printing Service PROPOSAL4Amy Elsner
1038Maisha E MarrierGermany2024-04-18Buckley Miller Wright QUALIFIED10Asiya Javayant
1039Izzy D FigeroaItaly2024-04-02Truhlar And Truhlar Attys PROPOSAL61Asiya Javayant
1040Faith R VenereGermany2024-04-12Truhlar And Truhlar Attys QUALIFIED55Bernardo Dominic
1041Wickens F PerinSpain2024-04-17Buckley Miller Wright NEGOTIATION13Stephen Shaw
1042Ricardo J FollerUnited Kingdom2024-04-08Rousseaux, Michael Esq PROPOSAL57Elwin Sharvill
1043Isabel D RimSpain2024-03-26Benton, John B Jr RENEWAL95Ivan Magalhaes
1044Silvio R RutaBrazil2024-03-27Rousseaux, Michael Esq NEW1Stephen Shaw
1045Jones H SchemmerGermany2024-03-30Feltz Printing Service PROPOSAL16Amy Elsner
1046Julie G TollnerUnited Kingdom2024-03-31Feltz Printing Service NEGOTIATION4Ivan Magalhaes
1047Stacey R RutaBrazil2024-04-17Printing Dimensions NEGOTIATION10Bernardo Dominic
1048Francesco T CampainCanada2024-04-17Printing Dimensions NEGOTIATION88Ioni Bowcher
1049Juan W MorascaJapan2024-04-18Truhlar And Truhlar Attys NEGOTIATION5Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Sinclair W DilliardUnited KingdomElwin Sharvill PROPOSAL
Aditya N NestleCanadaStephen Shaw QUALIFIED
Stacey A StensethIndiaStephen Shaw RENEWAL
Kadeem Z StockhamSpainAsiya Javayant PROPOSAL
Octavia P BriddickFranceIoni Bowcher UNQUALIFIED
Mayumi H BowleyBrazilXuxue Feng PROPOSAL
Octavia B BologniaSpainIvan Magalhaes NEW
Jennifer N FlosiIndiaStephen Shaw UNQUALIFIED
Claire A IturbideRussiaBernardo Dominic NEW
Leja F DoeItalyXuxue Feng UNQUALIFIED
Tony V GauchoRussiaOnyama Limba PROPOSAL
Francesco A PerinItalyIoni Bowcher UNQUALIFIED
Deepesh T InouyeRussiaOnyama Limba NEGOTIATION
Ivar L BologniaIndiaAmy Elsner RENEWAL
Mayumi P FollerAustraliaIoni Bowcher NEW
Smith O BriddickFranceOnyama Limba RENEWAL
Izzy Y OstroskyFranceBernardo Dominic NEW
Munro X SchemmerJapanAsiya Javayant UNQUALIFIED
Stacey Y VocelkaItalyStephen Shaw NEGOTIATION
Morrow Z RoysterUnited KingdomAsiya Javayant PROPOSAL
Deepesh O KolmetzArgentinaIoni Bowcher RENEWAL
Clifford S GauchoAustraliaAsiya Javayant UNQUALIFIED
Jeanfrancois D MacleadGermanyAnna Fali RENEWAL
Octavia K RulapaughSpainStephen Shaw QUALIFIED
Tony V PoquetteItalyOnyama Limba NEGOTIATION
Silvio D WieserRussiaAsiya Javayant PROPOSAL
Ashley P GauchoIndiaXuxue Feng UNQUALIFIED
Arvin K ShinkoSpainBernardo Dominic QUALIFIED
Salvatore X RutaAustraliaIoni Bowcher NEGOTIATION
Maisha S ShinkoUnited KingdomStephen Shaw RENEWAL
Julie Q DilliardJapanIvan Magalhaes UNQUALIFIED
Ashley H FollerFranceOnyama Limba NEGOTIATION
Kadeem N WhobreyAustraliaOnyama Limba PROPOSAL
Leon F CaudyUnited KingdomStephen Shaw UNQUALIFIED
Chavez A SlusarskiRussiaIoni Bowcher NEGOTIATION
Kadeem H GillianFranceBernardo Dominic QUALIFIED
Greenwood D CaldareraArgentinaBernardo Dominic PROPOSAL
Nicolas W NickaArgentinaIvan Magalhaes PROPOSAL
Rodrigues N TollnerSpainIvan Magalhaes NEW
Johnson I NickaJapanBernardo Dominic RENEWAL
Mujtaba G SergiAustraliaAmy Elsner UNQUALIFIED
Wickens M GlickAustraliaAmy Elsner UNQUALIFIED
Aruna P FollerGermanyAmy Elsner UNQUALIFIED
Maria U RulapaughIndiaIvan Magalhaes RENEWAL
Izzy G FigeroaFranceBernardo Dominic NEGOTIATION
Julie V ShinkoJapanAsiya Javayant QUALIFIED
Cody A PoquetteJapanOnyama Limba PROPOSAL
Jeanfrancois V MaletGermanyXuxue Feng NEGOTIATION
Silvio O PoquetteItalyXuxue Feng UNQUALIFIED
Wickens H VocelkaRussiaBernardo Dominic QUALIFIED
Frozen Columns
Name
Francesco S Foller
Jeanfrancois W Venere
Ricardo R Royster
Adams T Sergi
Stacey V Garufi
Kadeem J Butt
James O Wieser
Chavez T Glick
Deepesh B Dilliard
Cody S Ostrosky
Leon M Campain
Wickens V Campain
Claire O Gaucho
Stacey K Waycott
Emily G Nicka
Wickens Q Morasca
Nicolas E Maclead
Maria A Nestle
James L Butt
Emily K Iturbide
Costa R Ruta
Julie A Maclead
Greenwood L Marrier
Wickens Q Waycott
Jennifer D Saylors
Mayumi B Figeroa
Munro B Saylors
Chavez O Amigon
Jones S Nicka
Morrow Y Caudy
Kaitlin A Caldarera
Jeanfrancois D Slusarski
Tony M Ferencz
Clifford Y Darakjy
Emily O Foller
Silvio W Perin
Francesco X Doe
Jennifer C Campain
Darci Q Figeroa
Kaitlin Y Briddick
Julie B Ferencz
Francesco S Slusarski
Murillo J Wieser
Misaki V Slusarski
Izzy O Rim
Rodrigues G Rim
Mujtaba P Amigon
Francesco R Foller
Clifford H Briddick
Clifford C Stockham
IdCountryDate
1000Argentina2024-04-06
1001Brazil2024-04-16
1002Australia2024-04-09
1003France2024-04-16
1004United Kingdom2024-04-12
1005Italy2024-03-23
1006Australia2024-04-08
1007Italy2024-03-30
1008Brazil2024-03-23
1009Canada2024-03-30
1010Argentina2024-03-24
1011Brazil2024-03-27
1012Brazil2024-04-09
1013Japan2024-04-03
1014Brazil2024-04-01
1015Canada2024-04-04
1016Australia2024-04-15
1017Argentina2024-04-08
1018Spain2024-03-24
1019Spain2024-04-07
1020Canada2024-04-13
1021Italy2024-03-30
1022Germany2024-04-10
1023France2024-03-28
1024United Kingdom2024-04-17
1025Argentina2024-04-01
1026Brazil2024-04-04
1027Italy2024-04-12
1028Australia2024-03-31
1029India2024-04-12
1030Spain2024-04-03
1031Canada2024-04-04
1032Canada2024-04-11
1033Australia2024-03-30
1034United Kingdom2024-04-15
1035France2024-03-31
1036Russia2024-03-22
1037Italy2024-03-25
1038Spain2024-04-02
1039Germany2024-04-07
1040France2024-03-26
1041United Kingdom2024-04-12
1042Russia2024-04-11
1043Brazil2024-04-05
1044United Kingdom2024-03-29
1045Canada2024-03-24
1046Italy2024-04-12
1047Germany2024-04-11
1048France2024-03-31
1049Japan2024-03-22

On-Demand Data

NameIdCountryDate
Murillo V Venere1000Canada2024-03-31
Wickens C Rulapaugh1001Japan2024-03-23
Aika I Butt1002Spain2024-04-04
Juan R Albares1003Japan2024-04-14
Claire L Dilliard1004United Kingdom2024-04-08
Chavez M Stockham1005Russia2024-04-09
Sinclair X Iturbide1006Australia2024-03-30
Antonio F Caudy1007United Kingdom2024-04-02
Ivar C Sergi1008Australia2024-04-14
Maisha B Slusarski1009Italy2024-04-09
Arvin D Flosi1010Australia2024-03-21
Kaitlin R Royster1011Canada2024-03-26
Aika Y Bolognia1012Argentina2024-04-05
Adams V Perin1013Brazil2024-03-27
Isabel U Foller1014Spain2024-03-24
Mujtaba H Saylors1015Japan2024-04-16
Tony D Dilliard1016Australia2024-03-31
James G Figeroa1017Germany2024-04-01
Kadeem Q Garufi1018France2024-04-07
Mujtaba P Bowley1019Canada2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika K BriddickIndiaAnna Fali QUALIFIED
Smith P GarufiBrazilIvan Magalhaes PROPOSAL
Sinclair Z WaycottSpainBernardo Dominic NEGOTIATION
Nicolas Z VenereIndiaElwin Sharvill NEGOTIATION
Ivar M FigeroaSpainIoni Bowcher RENEWAL
Clifford N SchemmerItalyStephen Shaw UNQUALIFIED
Jennifer U SergiArgentinaBernardo Dominic QUALIFIED
Tony Y PoquetteCanadaXuxue Feng PROPOSAL
Leon L DilliardSpainIoni Bowcher RENEWAL
Julie V InouyeAustraliaIoni Bowcher NEGOTIATION
Chavez M DarakjyAustraliaAnna Fali RENEWAL
Mujtaba L BologniaRussiaIoni Bowcher QUALIFIED
Cody K RutaUnited KingdomXuxue Feng RENEWAL
Mujtaba X CaldareraItalyXuxue Feng QUALIFIED
Munro M FollerSpainStephen Shaw RENEWAL
Kadeem L MaletRussiaIvan Magalhaes RENEWAL
Isabel V CaldareraUnited KingdomOnyama Limba NEGOTIATION
Greenwood P GauchoAustraliaAsiya Javayant UNQUALIFIED
Smith Z WhobreyUnited KingdomElwin Sharvill NEW
Sinclair G OstroskyAustraliaIvan Magalhaes QUALIFIED
Greenwood U AmigonFranceBernardo Dominic NEGOTIATION
Cody V WhobreySpainAnna Fali UNQUALIFIED
Claire K NestleBrazilBernardo Dominic NEGOTIATION
Smith Q WieserIndiaOnyama Limba NEGOTIATION
Deepesh V AlbaresUnited KingdomIvan Magalhaes NEGOTIATION
Izzy S DilliardRussiaElwin Sharvill NEGOTIATION
Mayumi S RutaIndiaAnna Fali PROPOSAL
Maria O VenereUnited KingdomIvan Magalhaes PROPOSAL
Wickens R BriddickBrazilAsiya Javayant RENEWAL
Aruna Y GauchoIndiaAmy Elsner PROPOSAL
Aditya N VocelkaArgentinaStephen Shaw NEGOTIATION
Julie R PoquetteRussiaIvan Magalhaes PROPOSAL
Deepesh A SergiCanadaAsiya Javayant RENEWAL
Aditya I ShinkoBrazilElwin Sharvill NEGOTIATION
Izzy K FlosiAustraliaXuxue Feng RENEWAL
Deepesh N GlickItalyOnyama Limba RENEWAL
Munro S IturbideIndiaBernardo Dominic PROPOSAL
Clifford J AmigonSpainAsiya Javayant UNQUALIFIED
Isabel R TollnerArgentinaAnna Fali RENEWAL
Aditya C WhobreyBrazilIvan Magalhaes 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>