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
Mayumi C VenereUnited KingdomIoni Bowcher NEGOTIATION
Alejandro M RutaGermanyXuxue Feng PROPOSAL
Silvio Y NestleBrazilIvan Magalhaes PROPOSAL
Aditya T CampainCanadaIvan Magalhaes NEGOTIATION
Tony R RimAustraliaAnna Fali UNQUALIFIED
David L StensethItalyAmy Elsner NEGOTIATION
Maria G WhobreyAustraliaOnyama Limba UNQUALIFIED
Smith O ShinkoSpainIoni Bowcher QUALIFIED
Leja X OldroydBrazilBernardo Dominic PROPOSAL
Claire W IturbideArgentinaXuxue Feng QUALIFIED
Mayumi T SlusarskiSpainIoni Bowcher UNQUALIFIED
Morrow K AmigonBrazilAnna Fali PROPOSAL
Leon Z DilliardCanadaAnna Fali QUALIFIED
Izzy I CaudyIndiaIoni Bowcher NEGOTIATION
Francesco B VenereArgentinaOnyama Limba NEGOTIATION
Faith L TollnerIndiaElwin Sharvill UNQUALIFIED
Julie C NickaArgentinaAnna Fali NEW
James R ButtItalyOnyama Limba PROPOSAL
Silvio F FerenczBrazilAsiya Javayant NEW
Costa Z ChuiJapanBernardo Dominic RENEWAL
Aika N MacleadFranceBernardo Dominic NEGOTIATION
Jeanfrancois S StensethIndiaIvan Magalhaes RENEWAL
Claire X BowleyRussiaAnna Fali NEGOTIATION
Darci F PerinSpainAnna Fali NEW
Claire W GlickBrazilAmy Elsner RENEWAL
Jefferson Q GlickFranceOnyama Limba NEGOTIATION
Misaki L FlosiGermanyAmy Elsner RENEWAL
Clifford T RimJapanAsiya Javayant PROPOSAL
Mayumi D ShinkoJapanOnyama Limba RENEWAL
Smith F RimAustraliaOnyama Limba UNQUALIFIED
Chavez Z FigeroaBrazilElwin Sharvill RENEWAL
Tony Q CaldareraAustraliaXuxue Feng QUALIFIED
Claire F DilliardBrazilOnyama Limba NEW
Francesco Q MarrierArgentinaXuxue Feng PROPOSAL
David K AmigonRussiaIoni Bowcher RENEWAL
Rodrigues I ButtSpainBernardo Dominic NEGOTIATION
Octavia L DarakjyCanadaOnyama Limba NEW
Deepesh R GillianItalyStephen Shaw NEGOTIATION
Aruna N NickaBrazilAmy Elsner NEW
Greenwood T BriddickAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba X TollnerCanadaAsiya Javayant RENEWAL
Clifford L MaletCanadaOnyama Limba NEW
Mayumi Z PaprockiUnited KingdomAsiya Javayant QUALIFIED
Mujtaba I VenereSpainIoni Bowcher NEGOTIATION
Darci U OstroskyBrazilBernardo Dominic UNQUALIFIED
Jennifer A MorascaGermanyIvan Magalhaes QUALIFIED
Johnson M KolmetzBrazilStephen Shaw UNQUALIFIED
Salvatore Z ShinkoSpainOnyama Limba PROPOSAL
Darci Z PerinFranceAmy Elsner NEW
Ivar J KuskoRussiaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Murillo A VenereItalyBernardo Dominic PROPOSAL
Mujtaba R GlickGermanyOnyama Limba NEW
Stacey Y ChuiSpainXuxue Feng QUALIFIED
Leon A MaletSpainElwin Sharvill RENEWAL
Deepesh Y BriddickCanadaOnyama Limba RENEWAL
Emily V GauchoCanadaOnyama Limba PROPOSAL
Stacey Y InouyeFranceXuxue Feng PROPOSAL
Smith J RulapaughUnited KingdomAmy Elsner PROPOSAL
Chavez D WieserArgentinaXuxue Feng RENEWAL
Salvatore F PoquetteCanadaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna C NickaBrazil2024-03-31Rousseaux, Michael Esq NEW16Bernardo Dominic
1001Leja B DilliardBrazil2024-04-02Buckley Miller Wright RENEWAL51Asiya Javayant
1002Kadeem K DarakjyFrance2024-04-13Benton, John B Jr NEW36Amy Elsner
1003Aika E DilliardCanada2024-04-02Chemel, James L Cpa UNQUALIFIED50Amy Elsner
1004Misaki T FerenczSpain2024-03-21Benton, John B Jr RENEWAL2Anna Fali
1005Johnson R NickaGermany2024-03-23King, Christopher A Esq QUALIFIED22Elwin Sharvill
1006Claire S StensethUnited Kingdom2024-04-17Feiner Bros NEW99Asiya Javayant
1007Aruna R DarakjyBrazil2024-04-06Chapman, Ross E Esq RENEWAL95Ioni Bowcher
1008Costa Y FollerGermany2024-04-11Printing Dimensions PROPOSAL3Ioni Bowcher
1009Maria M IturbideArgentina2024-04-14Rangoni Of Florence NEGOTIATION47Ioni Bowcher
1010Antonio B KuskoJapan2024-03-31Chemel, James L Cpa UNQUALIFIED88Amy Elsner
1011Jefferson L SchemmerSpain2024-04-13Chemel, James L Cpa RENEWAL10Anna Fali
1012David Y BriddickFrance2024-03-24Printing Dimensions QUALIFIED99Amy Elsner
1013Antonio T FlosiUnited Kingdom2024-04-18Feiner Bros QUALIFIED70Ioni Bowcher
1014Sinclair R TollnerCanada2024-04-02Feiner Bros NEW85Ioni Bowcher
1015Ricardo V RutaAustralia2024-03-21Buckley Miller Wright NEGOTIATION46Amy Elsner
1016Emily T MarrierFrance2024-03-27Rousseaux, Michael Esq QUALIFIED93Ioni Bowcher
1017Clifford U TollnerAustralia2024-03-26Chanay, Jeffrey A Esq RENEWAL16Amy Elsner
1018Jennifer L GlickRussia2024-04-03Buckley Miller Wright NEGOTIATION93Elwin Sharvill
1019Aika Z WhobreyCanada2024-04-06Chapman, Ross E Esq QUALIFIED20Anna Fali
1020Mayumi O SchemmerAustralia2024-03-20Commercial Press QUALIFIED94Ivan Magalhaes
1021Nicolas K PerinBrazil2024-04-05Truhlar And Truhlar Attys NEW99Onyama Limba
1022Claire V FigeroaFrance2024-03-24Rousseaux, Michael Esq RENEWAL36Xuxue Feng
1023Isabel K SaylorsUnited Kingdom2024-03-26Printing Dimensions NEW10Onyama Limba
1024Darci F WhobreyIndia2024-04-06Feiner Bros NEGOTIATION45Xuxue Feng
1025Tony H PoquetteAustralia2024-04-01Chemel, James L Cpa NEW37Xuxue Feng
1026Jefferson G SergiCanada2024-03-25King, Christopher A Esq RENEWAL59Ivan Magalhaes
1027Mujtaba S FigeroaItaly2024-04-02Printing Dimensions RENEWAL48Amy Elsner
1028Maisha N GillianCanada2024-04-14Buckley Miller Wright PROPOSAL57Ivan Magalhaes
1029Darci J CaldareraAustralia2024-03-21Dorl, James J Esq UNQUALIFIED3Bernardo Dominic
1030Chavez O FigeroaGermany2024-04-02Truhlar And Truhlar Attys NEGOTIATION29Ivan Magalhaes
1031Kadeem G PoquetteArgentina2024-04-18Chapman, Ross E Esq NEGOTIATION56Stephen Shaw
1032Rodrigues P FerenczAustralia2024-04-07Feltz Printing Service QUALIFIED20Anna Fali
1033Clifford I GillianCanada2024-03-24Commercial Press PROPOSAL70Onyama Limba
1034Francesco P BriddickJapan2024-04-01Printing Dimensions PROPOSAL8Onyama Limba
1035Aruna P SaylorsJapan2024-04-08Feiner Bros QUALIFIED48Bernardo Dominic
1036Emily H ShinkoBrazil2024-03-24Feiner Bros UNQUALIFIED43Anna Fali
1037Aika G OldroydRussia2024-04-01Dorl, James J Esq UNQUALIFIED13Asiya Javayant
1038Mujtaba I FlosiUnited Kingdom2024-04-15Rousseaux, Michael Esq QUALIFIED12Bernardo Dominic
1039Alejandro V PoquetteFrance2024-04-03Truhlar And Truhlar Attys UNQUALIFIED29Ioni Bowcher
1040Antonio E OstroskyGermany2024-03-22Buckley Miller Wright QUALIFIED25Bernardo Dominic
1041James Z BologniaArgentina2024-03-27Buckley Miller Wright NEGOTIATION2Elwin Sharvill
1042Wickens I ShinkoCanada2024-04-16Rousseaux, Michael Esq UNQUALIFIED30Asiya Javayant
1043Jones N IturbideBrazil2024-03-21Chanay, Jeffrey A Esq UNQUALIFIED63Amy Elsner
1044Jefferson S CampainIndia2024-04-13Printing Dimensions RENEWAL52Ioni Bowcher
1045Murillo R StensethSpain2024-03-29Printing Dimensions PROPOSAL63Ivan Magalhaes
1046Ashley J RoysterFrance2024-04-05Feiner Bros PROPOSAL99Asiya Javayant
1047Greenwood C AmigonSpain2024-04-17Commercial Press RENEWAL77Amy Elsner
1048Isabel C InouyeJapan2024-04-05King, Christopher A Esq RENEWAL47Xuxue Feng
1049Nicolas C MaletIndia2024-04-08Chapman, Ross E Esq NEW21Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Arvin D InouyeJapanBernardo Dominic NEGOTIATION
Jones E MorascaRussiaAsiya Javayant PROPOSAL
Munro J BriddickBrazilAsiya Javayant RENEWAL
Sinclair V PaprockiItalyBernardo Dominic NEGOTIATION
Aika W PerinCanadaIvan Magalhaes NEW
Johnson W KolmetzFranceIoni Bowcher PROPOSAL
Kadeem V FlosiCanadaAsiya Javayant QUALIFIED
Leon U CaldareraIndiaElwin Sharvill PROPOSAL
Silvio U KolmetzJapanAmy Elsner QUALIFIED
Aruna W ShinkoBrazilAsiya Javayant NEGOTIATION
Chavez P FigeroaSpainOnyama Limba NEGOTIATION
Izzy H CaldareraUnited KingdomIoni Bowcher UNQUALIFIED
Alejandro E VenereArgentinaBernardo Dominic NEGOTIATION
Mujtaba H StensethCanadaElwin Sharvill NEGOTIATION
Mujtaba N PerinRussiaStephen Shaw PROPOSAL
Kadeem I PaprockiRussiaIoni Bowcher QUALIFIED
Isabel Y ButtCanadaIoni Bowcher NEW
Nicolas O RimRussiaBernardo Dominic RENEWAL
Greenwood Q WieserArgentinaIvan Magalhaes PROPOSAL
Deepesh Y FlosiSpainIoni Bowcher NEGOTIATION
Cody C GarufiJapanBernardo Dominic RENEWAL
Silvio B RoysterGermanyIoni Bowcher PROPOSAL
Francesco S FollerFranceAsiya Javayant QUALIFIED
Juan I AlbaresFranceIvan Magalhaes NEGOTIATION
Jeanfrancois H NestleSpainBernardo Dominic QUALIFIED
Ashley P WieserRussiaStephen Shaw RENEWAL
Alejandro T IturbideArgentinaIvan Magalhaes NEGOTIATION
Francesco C DilliardSpainBernardo Dominic NEGOTIATION
Ashley I MacleadGermanyBernardo Dominic UNQUALIFIED
Aruna Y InouyeBrazilOnyama Limba UNQUALIFIED
Sinclair M GillianSpainIvan Magalhaes RENEWAL
Emily H NickaJapanOnyama Limba NEW
Mayumi J DilliardSpainElwin Sharvill RENEWAL
Ivar Y KuskoGermanyAsiya Javayant PROPOSAL
Morrow F NickaIndiaBernardo Dominic NEGOTIATION
Izzy P VocelkaAustraliaXuxue Feng UNQUALIFIED
Ashley T RulapaughArgentinaAmy Elsner UNQUALIFIED
Nicolas L CaudyGermanyIvan Magalhaes PROPOSAL
Jeanfrancois K WieserGermanyBernardo Dominic RENEWAL
Adams L FerenczJapanAnna Fali NEGOTIATION
Kadeem T CaldareraGermanyElwin Sharvill RENEWAL
Arvin M SergiBrazilStephen Shaw PROPOSAL
Rodrigues U DarakjyAustraliaIvan Magalhaes UNQUALIFIED
Emily X GillianUnited KingdomElwin Sharvill RENEWAL
Jefferson E ButtCanadaStephen Shaw UNQUALIFIED
Jones C OstroskyJapanIoni Bowcher PROPOSAL
Maisha A FigeroaFranceBernardo Dominic RENEWAL
Jones P WieserRussiaAmy Elsner QUALIFIED
Smith B CampainCanadaBernardo Dominic QUALIFIED
Aruna A DilliardGermanyAmy Elsner NEGOTIATION
Frozen Columns
Name
Cody W Vocelka
Mujtaba Y Malet
Kadeem L Malet
Maisha Y Nestle
Greenwood J Sergi
Aditya Z Tollner
Murillo E Foller
Kadeem N Nestle
Salvatore R Maclead
Cody C Flosi
James P Gaucho
Jefferson U Albares
Jeanfrancois E Inouye
Julie L Stenseth
Aruna N Caudy
Nicolas S Inouye
Ashley E Venere
Aruna L Caldarera
Mujtaba B Campain
Ivar N Dilliard
Isabel H Iturbide
Emily I Iturbide
Leja B Ferencz
Costa V Kolmetz
Johnson Q Royster
Alejandro M Gillian
Aruna M Rulapaugh
Darci V Briddick
Costa G Sergi
Julie C Bolognia
Alejandro I Saylors
Murillo C Kusko
Costa R Bowley
Mujtaba W Iturbide
Faith V Kusko
Munro K Gillian
Darci Q Nicka
Ricardo N Bolognia
Leja L Campain
Emily P Campain
Juan L Dilliard
Ricardo G Marrier
Julie J Malet
Arvin W Flosi
Isabel Z Nicka
Wickens W Whobrey
Mujtaba A Vocelka
Isabel U Gillian
Jefferson F Ruta
Munro O Bowley
IdCountryDate
1000Russia2024-03-27
1001Australia2024-04-14
1002United Kingdom2024-04-17
1003Germany2024-04-08
1004Spain2024-03-21
1005Spain2024-04-06
1006Australia2024-04-08
1007Italy2024-04-05
1008Brazil2024-04-05
1009Brazil2024-03-24
1010Australia2024-04-11
1011Canada2024-04-12
1012Russia2024-04-05
1013Spain2024-04-15
1014Spain2024-03-21
1015Germany2024-03-26
1016Russia2024-04-11
1017United Kingdom2024-03-24
1018Italy2024-03-20
1019Australia2024-04-11
1020Japan2024-04-09
1021France2024-03-23
1022India2024-04-06
1023United Kingdom2024-04-08
1024Japan2024-03-27
1025Brazil2024-04-02
1026India2024-04-11
1027Japan2024-03-26
1028Canada2024-04-17
1029United Kingdom2024-04-15
1030Spain2024-04-08
1031United Kingdom2024-04-03
1032Italy2024-04-04
1033Brazil2024-03-21
1034Brazil2024-03-31
1035Australia2024-04-12
1036Germany2024-04-18
1037Canada2024-04-09
1038Japan2024-03-22
1039Spain2024-04-08
1040Canada2024-03-26
1041Germany2024-03-21
1042Spain2024-04-08
1043Argentina2024-04-06
1044Spain2024-04-16
1045India2024-04-13
1046Japan2024-03-24
1047Japan2024-03-27
1048Spain2024-04-17
1049Canada2024-04-08

On-Demand Data

NameIdCountryDate
Ashley F Caudy1000Brazil2024-03-20
Adams T Perin1001United Kingdom2024-03-25
Alejandro X Paprocki1002United Kingdom2024-03-21
Nicolas B Whobrey1003France2024-03-28
Leon A Kolmetz1004Germany2024-03-23
Cody J Sergi1005Germany2024-03-29
Leja D Iturbide1006Germany2024-04-14
Aruna A Butt1007Italy2024-04-07
Maria K Whobrey1008Germany2024-04-06
Stacey S Saylors1009India2024-03-29
Maria J Gillian1010India2024-04-18
Deepesh E Vocelka1011Japan2024-04-06
James W Albares1012India2024-04-08
Misaki S Darakjy1013United Kingdom2024-04-01
Cody J Campain1014Germany2024-04-13
Kaitlin H Dilliard1015India2024-03-24
Claire B Butt1016Argentina2024-04-03
Juan W Malet1017Spain2024-04-16
Maria O Perin1018Italy2024-04-16
Jefferson P Chui1019Spain2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja Z AmigonIndiaElwin Sharvill QUALIFIED
Aruna V KuskoGermanyIvan Magalhaes NEW
Jeanfrancois D GarufiAustraliaAnna Fali NEGOTIATION
Izzy Q BriddickSpainAsiya Javayant PROPOSAL
Costa E SchemmerFranceStephen Shaw NEW
Maria M BologniaBrazilAsiya Javayant UNQUALIFIED
Mujtaba C WaycottGermanyBernardo Dominic QUALIFIED
Salvatore I PaprockiCanadaElwin Sharvill NEW
Leja D InouyeBrazilAmy Elsner UNQUALIFIED
Mujtaba O RulapaughArgentinaAsiya Javayant UNQUALIFIED
Chavez U BowleyIndiaAnna Fali UNQUALIFIED
Claire Y SchemmerCanadaAnna Fali NEGOTIATION
Greenwood Y DilliardIndiaElwin Sharvill NEW
Cody Q StensethRussiaXuxue Feng PROPOSAL
Mayumi E FlosiCanadaBernardo Dominic NEW
Silvio U OstroskyAustraliaIoni Bowcher PROPOSAL
Stacey R CaldareraArgentinaIvan Magalhaes RENEWAL
Leon I DilliardItalyAsiya Javayant PROPOSAL
Kaitlin S RimItalyOnyama Limba QUALIFIED
Rodrigues M DarakjyUnited KingdomElwin Sharvill QUALIFIED
Faith X BowleyJapanIvan Magalhaes NEW
Aika L TollnerBrazilStephen Shaw RENEWAL
Ivar G PoquetteUnited KingdomElwin Sharvill NEGOTIATION
Nicolas P GauchoJapanBernardo Dominic RENEWAL
Juan G GauchoRussiaAnna Fali NEW
Tony V BriddickIndiaElwin Sharvill NEW
Jennifer K ShinkoJapanAnna Fali NEGOTIATION
Munro O SchemmerArgentinaIvan Magalhaes NEW
Greenwood N VocelkaGermanyAnna Fali NEW
Clifford P NestleRussiaIvan Magalhaes PROPOSAL
Alejandro M VenereFranceAsiya Javayant UNQUALIFIED
Cody Z AmigonSpainOnyama Limba RENEWAL
Faith Y GlickUnited KingdomIoni Bowcher NEGOTIATION
Aditya M MacleadIndiaAnna Fali UNQUALIFIED
Smith D FollerItalyElwin Sharvill NEGOTIATION
Misaki P PoquetteCanadaElwin Sharvill PROPOSAL
Maisha C SchemmerFranceAnna Fali RENEWAL
Claire K MaletGermanyXuxue Feng UNQUALIFIED
Antonio X RoysterCanadaIoni Bowcher UNQUALIFIED
Chavez S StensethRussiaAnna Fali NEGOTIATION

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