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
Darci Y CaudyCanadaBernardo Dominic UNQUALIFIED
Nicolas Q CaudyAustraliaElwin Sharvill NEGOTIATION
James N MarrierUnited KingdomAsiya Javayant NEGOTIATION
Tony Y FollerJapanOnyama Limba NEW
Wickens Z VenereItalyIoni Bowcher NEW
Francesco X SchemmerItalyIvan Magalhaes QUALIFIED
Claire T VocelkaAustraliaElwin Sharvill RENEWAL
Kadeem V MorascaGermanyXuxue Feng RENEWAL
Cody N PaprockiUnited KingdomElwin Sharvill NEGOTIATION
Salvatore J ChuiCanadaAmy Elsner RENEWAL
Leja A KolmetzUnited KingdomIoni Bowcher NEGOTIATION
Cody H FerenczIndiaIoni Bowcher NEW
Rodrigues W VenereIndiaXuxue Feng RENEWAL
Tony K OstroskyAustraliaIoni Bowcher NEW
Maria F MaletAustraliaStephen Shaw RENEWAL
Isabel W MorascaRussiaAmy Elsner RENEWAL
Kaitlin E WieserCanadaXuxue Feng UNQUALIFIED
Silvio B BowleyUnited KingdomAnna Fali PROPOSAL
Clifford S InouyeCanadaIvan Magalhaes RENEWAL
Arvin O RutaArgentinaBernardo Dominic NEW
Cody E PoquetteAustraliaElwin Sharvill UNQUALIFIED
Izzy B StensethIndiaAnna Fali QUALIFIED
Aruna A ShinkoCanadaAmy Elsner NEGOTIATION
Kadeem Q MacleadFranceElwin Sharvill NEGOTIATION
Stacey D RutaRussiaXuxue Feng NEW
David Q RimGermanyIoni Bowcher UNQUALIFIED
Octavia Q PoquetteSpainAsiya Javayant QUALIFIED
Chavez V OstroskyCanadaAmy Elsner UNQUALIFIED
Chavez W SchemmerItalyElwin Sharvill UNQUALIFIED
Francesco O BowleyAustraliaAnna Fali QUALIFIED
Arvin S StockhamArgentinaAsiya Javayant QUALIFIED
Leja U MaletAustraliaIvan Magalhaes RENEWAL
Stacey V RoysterBrazilXuxue Feng UNQUALIFIED
Mujtaba A ChuiItalyAnna Fali QUALIFIED
Claire E ChuiJapanAsiya Javayant PROPOSAL
Izzy V BowleyUnited KingdomBernardo Dominic NEW
Clifford D SaylorsIndiaElwin Sharvill UNQUALIFIED
Murillo M VocelkaCanadaIvan Magalhaes RENEWAL
Isabel P PoquetteIndiaIvan Magalhaes UNQUALIFIED
Stacey V FollerArgentinaStephen Shaw PROPOSAL
Ashley B StensethAustraliaIvan Magalhaes NEGOTIATION
Aditya C WieserGermanyIoni Bowcher NEGOTIATION
Rodrigues I CaudyGermanyAmy Elsner RENEWAL
Rodrigues X AmigonItalyOnyama Limba QUALIFIED
Jennifer B GillianItalyOnyama Limba NEGOTIATION
David K VocelkaSpainStephen Shaw QUALIFIED
Chavez O VenereFranceElwin Sharvill RENEWAL
Isabel L VenereIndiaAnna Fali NEGOTIATION
Clifford L BriddickArgentinaAsiya Javayant NEW
Mujtaba C StensethBrazilXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Sinclair O ShinkoArgentinaXuxue Feng QUALIFIED
Adams R OldroydIndiaIoni Bowcher PROPOSAL
Cody G ButtItalyAmy Elsner QUALIFIED
Rodrigues E RoysterIndiaIoni Bowcher PROPOSAL
Nicolas G CaudyIndiaAmy Elsner PROPOSAL
Cody O CaldareraGermanyBernardo Dominic NEGOTIATION
Maisha N CaldareraUnited KingdomOnyama Limba PROPOSAL
Morrow Z CampainBrazilAnna Fali QUALIFIED
Sinclair K BologniaAustraliaXuxue Feng QUALIFIED
Rodrigues V NestleGermanyIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ricardo U AlbaresAustralia2024-04-17Feiner Bros NEW69Elwin Sharvill
1001Maria J PaprockiCanada2024-04-14Truhlar And Truhlar Attys QUALIFIED73Elwin Sharvill
1002Salvatore H DilliardAustralia2024-04-14Feltz Printing Service RENEWAL12Bernardo Dominic
1003Tony S SaylorsJapan2024-03-29Dorl, James J Esq NEGOTIATION5Onyama Limba
1004Morrow X GillianIndia2024-04-16Chapman, Ross E Esq RENEWAL58Stephen Shaw
1005Jeanfrancois G VocelkaIndia2024-04-01Rousseaux, Michael Esq PROPOSAL50Stephen Shaw
1006Arvin F WaycottJapan2024-04-14Morlong Associates QUALIFIED16Bernardo Dominic
1007Mujtaba G BowleySpain2024-04-02Benton, John B Jr UNQUALIFIED8Bernardo Dominic
1008Cody Q RoysterFrance2024-03-31Chemel, James L Cpa PROPOSAL36Bernardo Dominic
1009Mayumi X NestleItaly2024-04-22Chapman, Ross E Esq NEGOTIATION64Ivan Magalhaes
1010Deepesh R IturbideArgentina2024-04-20Buckley Miller Wright NEW52Asiya Javayant
1011Faith R SergiRussia2024-04-14Buckley Miller Wright NEW64Ivan Magalhaes
1012Emily O ChuiJapan2024-04-06Benton, John B Jr QUALIFIED6Amy Elsner
1013Ashley Y ChuiRussia2024-04-13Benton, John B Jr RENEWAL40Xuxue Feng
1014Clifford Y AmigonGermany2024-04-02Morlong Associates RENEWAL53Asiya Javayant
1015Aruna D KuskoRussia2024-03-29Feltz Printing Service NEW94Ioni Bowcher
1016Julie K SchemmerBrazil2024-04-25Morlong Associates RENEWAL17Onyama Limba
1017Emily B FigeroaRussia2024-04-07Feiner Bros RENEWAL18Amy Elsner
1018Ricardo C NickaAustralia2024-03-27Rangoni Of Florence PROPOSAL66Xuxue Feng
1019Aditya X NickaGermany2024-04-24Commercial Press RENEWAL55Anna Fali
1020Jeanfrancois F FlosiArgentina2024-04-11Chanay, Jeffrey A Esq UNQUALIFIED67Amy Elsner
1021Cody W BowleyArgentina2024-04-24Chanay, Jeffrey A Esq QUALIFIED41Ivan Magalhaes
1022Leja E GauchoSpain2024-04-18Printing Dimensions RENEWAL61Onyama Limba
1023Johnson H RoysterBrazil2024-04-14Rangoni Of Florence QUALIFIED72Bernardo Dominic
1024Faith H NestleFrance2024-04-21Morlong Associates NEGOTIATION38Xuxue Feng
1025Isabel D ChuiFrance2024-04-01Chemel, James L Cpa NEW39Xuxue Feng
1026Maria Q DarakjyUnited Kingdom2024-04-23Buckley Miller Wright PROPOSAL96Ioni Bowcher
1027Aika O RimUnited Kingdom2024-04-04Commercial Press NEW63Amy Elsner
1028Munro M PoquetteIndia2024-03-27Printing Dimensions UNQUALIFIED13Amy Elsner
1029Leon V SchemmerFrance2024-04-24Truhlar And Truhlar Attys UNQUALIFIED75Elwin Sharvill
1030Arvin N SlusarskiArgentina2024-04-06Morlong Associates PROPOSAL53Bernardo Dominic
1031Munro W RutaArgentina2024-04-06King, Christopher A Esq QUALIFIED86Onyama Limba
1032Aruna H FerenczJapan2024-03-28Chanay, Jeffrey A Esq RENEWAL18Ioni Bowcher
1033Silvio Z MaletJapan2024-04-11Chemel, James L Cpa NEGOTIATION75Asiya Javayant
1034Alejandro F StensethCanada2024-04-22Benton, John B Jr PROPOSAL68Bernardo Dominic
1035Tony O FigeroaRussia2024-04-06Rousseaux, Michael Esq NEW40Xuxue Feng
1036Salvatore R BriddickJapan2024-03-30Chemel, James L Cpa NEW24Anna Fali
1037Alejandro V GillianFrance2024-04-03Feiner Bros NEW3Asiya Javayant
1038Julie D FerenczIndia2024-03-31Morlong Associates RENEWAL58Amy Elsner
1039Ivar D SlusarskiUnited Kingdom2024-04-12Morlong Associates RENEWAL53Anna Fali
1040Claire H GillianFrance2024-04-21Buckley Miller Wright RENEWAL20Ioni Bowcher
1041Ricardo V StensethItaly2024-03-28Printing Dimensions NEW29Asiya Javayant
1042Wickens T WaycottCanada2024-04-11Chemel, James L Cpa NEGOTIATION37Anna Fali
1043Morrow W CaldareraJapan2024-03-27Buckley Miller Wright PROPOSAL52Xuxue Feng
1044Kaitlin H OldroydCanada2024-04-06Morlong Associates NEGOTIATION23Asiya Javayant
1045Morrow R DoeCanada2024-04-02Chemel, James L Cpa RENEWAL57Elwin Sharvill
1046Munro U KolmetzBrazil2024-04-13Rangoni Of Florence UNQUALIFIED64Onyama Limba
1047Aika S TollnerRussia2024-04-12Chapman, Ross E Esq NEW79Asiya Javayant
1048Mujtaba G SlusarskiGermany2024-04-15Chapman, Ross E Esq PROPOSAL78Anna Fali
1049Johnson V FerenczAustralia2024-04-25Feiner Bros UNQUALIFIED92Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Stacey I FigeroaRussiaOnyama Limba RENEWAL
Chavez E MarrierBrazilOnyama Limba UNQUALIFIED
Julie D GillianItalyXuxue Feng UNQUALIFIED
Darci I ButtAustraliaBernardo Dominic RENEWAL
Mayumi B RoysterArgentinaAmy Elsner PROPOSAL
Izzy X GillianSpainIoni Bowcher UNQUALIFIED
Aruna M InouyeBrazilOnyama Limba RENEWAL
Ashley E ShinkoFranceIvan Magalhaes PROPOSAL
Mujtaba W KolmetzIndiaOnyama Limba NEW
Kaitlin C FigeroaAustraliaAsiya Javayant NEGOTIATION
Izzy J NestleAustraliaBernardo Dominic UNQUALIFIED
Darci D StockhamJapanOnyama Limba NEGOTIATION
Cody K MarrierRussiaIoni Bowcher PROPOSAL
Mayumi J WhobreyBrazilXuxue Feng UNQUALIFIED
Costa B DoeArgentinaAmy Elsner QUALIFIED
Leon J OstroskyAustraliaAsiya Javayant PROPOSAL
Darci U WhobreyJapanBernardo Dominic RENEWAL
Morrow P FlosiItalyIvan Magalhaes RENEWAL
Murillo Z SergiItalyOnyama Limba NEGOTIATION
Mujtaba A NestleJapanIoni Bowcher UNQUALIFIED
Ricardo M MorascaRussiaIvan Magalhaes NEW
Aditya D ShinkoArgentinaAmy Elsner UNQUALIFIED
Murillo O FigeroaItalyIvan Magalhaes NEW
Maria L NickaRussiaAmy Elsner QUALIFIED
David Y GillianArgentinaAmy Elsner NEW
Silvio O KolmetzArgentinaAnna Fali NEGOTIATION
Kaitlin D BowleyCanadaBernardo Dominic PROPOSAL
Darci R FlosiBrazilAmy Elsner QUALIFIED
Ashley O OstroskyJapanIoni Bowcher NEGOTIATION
Leja M FollerRussiaXuxue Feng NEW
Francesco V RutaAustraliaXuxue Feng RENEWAL
Sinclair D BowleyFranceIoni Bowcher NEGOTIATION
Julie N InouyeFranceStephen Shaw PROPOSAL
Maria T RutaIndiaOnyama Limba UNQUALIFIED
Kaitlin Z GlickItalyAmy Elsner NEW
Murillo O BowleyBrazilOnyama Limba NEGOTIATION
Munro G MorascaBrazilElwin Sharvill NEGOTIATION
Misaki B DoeGermanyBernardo Dominic UNQUALIFIED
Johnson T StensethItalyElwin Sharvill QUALIFIED
Alejandro J GauchoBrazilAmy Elsner RENEWAL
Maisha Z TollnerAustraliaIvan Magalhaes QUALIFIED
Jennifer P OstroskyJapanAsiya Javayant NEW
Chavez C VenereItalyOnyama Limba PROPOSAL
Francesco R SlusarskiIndiaBernardo Dominic RENEWAL
Arvin D VocelkaArgentinaAsiya Javayant UNQUALIFIED
Maria I MaletJapanStephen Shaw PROPOSAL
Sinclair M GarufiArgentinaBernardo Dominic PROPOSAL
Murillo N KolmetzIndiaIoni Bowcher PROPOSAL
Faith B GauchoRussiaOnyama Limba UNQUALIFIED
Munro O StockhamJapanAsiya Javayant NEGOTIATION
Frozen Columns
Name
Francesco S Bolognia
Stacey I Kusko
Nicolas F Wieser
Claire G Iturbide
Antonio J Sergi
Leja L Wieser
Ivar V Rulapaugh
Silvio G Rim
Jones Y Albares
Leja M Nestle
Munro Z Briddick
Chavez E Caudy
Greenwood Q Rim
Aditya D Caldarera
Jefferson M Malet
Claire Z Doe
Alejandro H Shinko
Aika I Flosi
Francesco Q Tollner
Jones G Saylors
David P Rulapaugh
Faith C Stockham
Claire S Gaucho
Aika Q Whobrey
Sinclair Q Glick
Leon U Royster
Smith M Briddick
Misaki H Shinko
Maisha C Sergi
Clifford C Glick
Jennifer L Shinko
Francesco Q Oldroyd
Misaki N Malet
Nicolas Q Shinko
Francesco L Shinko
Murillo V Venere
Mujtaba V Figeroa
Adams J Vocelka
Maria C Stockham
Cody L Rim
Arvin U Malet
Nicolas B Poquette
Emily Q Briddick
Misaki U Figeroa
Morrow S Ferencz
Stacey T Ostrosky
Maisha U Briddick
Darci P Oldroyd
Maisha P Figeroa
Smith Q Glick
IdCountryDate
1000United Kingdom2024-04-18
1001Russia2024-04-14
1002Italy2024-04-07
1003India2024-04-03
1004India2024-04-11
1005Japan2024-04-12
1006Spain2024-04-23
1007India2024-04-21
1008India2024-04-21
1009Argentina2024-04-10
1010United Kingdom2024-03-30
1011Italy2024-04-21
1012France2024-04-09
1013United Kingdom2024-04-09
1014Spain2024-03-28
1015Argentina2024-04-21
1016Canada2024-03-29
1017Russia2024-04-19
1018Canada2024-04-16
1019Germany2024-03-28
1020Australia2024-04-02
1021Australia2024-04-07
1022Canada2024-04-10
1023United Kingdom2024-04-04
1024Canada2024-04-20
1025Canada2024-03-30
1026Brazil2024-04-13
1027Japan2024-04-04
1028Italy2024-04-07
1029Spain2024-03-29
1030Russia2024-04-04
1031Australia2024-04-09
1032Australia2024-03-28
1033India2024-03-29
1034Spain2024-03-27
1035France2024-04-13
1036Canada2024-04-07
1037Canada2024-04-16
1038Canada2024-04-21
1039Brazil2024-04-24
1040Japan2024-04-17
1041Italy2024-04-24
1042India2024-03-30
1043Italy2024-03-27
1044Brazil2024-04-18
1045France2024-04-12
1046India2024-03-29
1047Spain2024-04-19
1048Japan2024-04-25
1049France2024-04-21

On-Demand Data

NameIdCountryDate
Costa S Iturbide1000India2024-04-10
Sinclair O Schemmer1001Germany2024-03-28
Maisha W Slusarski1002France2024-04-21
Mayumi M Inouye1003India2024-04-16
Leja K Garufi1004Germany2024-04-10
Octavia M Caudy1005France2024-04-20
Clifford U Kusko1006Spain2024-04-19
Jones S Stockham1007Canada2024-04-01
Julie O Ostrosky1008Spain2024-04-01
Stacey H Rulapaugh1009Argentina2024-03-28
Emily Z Darakjy1010Canada2024-04-21
Darci P Maclead1011Russia2024-04-20
Salvatore E Darakjy1012India2024-03-28
Morrow M Royster1013Germany2024-04-04
Leon N Vocelka1014France2024-04-14
Salvatore P Schemmer1015France2024-04-19
Jennifer V Shinko1016Japan2024-04-19
Jefferson A Nicka1017Brazil2024-04-09
Clifford L Maclead1018Canada2024-04-20
Maisha R Kolmetz1019Italy2024-04-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire O RulapaughFranceIoni Bowcher NEW
Leja O SaylorsArgentinaOnyama Limba QUALIFIED
Aditya I KuskoIndiaAsiya Javayant RENEWAL
Isabel I WhobreyIndiaIoni Bowcher UNQUALIFIED
Costa M WhobreyCanadaXuxue Feng NEW
Maisha A CaldareraArgentinaAmy Elsner QUALIFIED
Faith V NickaCanadaOnyama Limba PROPOSAL
Rodrigues K DoeAustraliaStephen Shaw UNQUALIFIED
Deepesh O RutaCanadaBernardo Dominic PROPOSAL
Maria C MacleadBrazilBernardo Dominic PROPOSAL
Izzy R ChuiIndiaBernardo Dominic NEGOTIATION
Munro Q RutaFranceElwin Sharvill RENEWAL
Greenwood Y RimGermanyElwin Sharvill PROPOSAL
Julie J SlusarskiAustraliaAsiya Javayant QUALIFIED
Murillo Q OldroydJapanAnna Fali PROPOSAL
Maria Q NestleBrazilXuxue Feng RENEWAL
Julie B GauchoRussiaIvan Magalhaes NEGOTIATION
Aditya U StockhamUnited KingdomAnna Fali NEGOTIATION
Jennifer E BriddickCanadaAsiya Javayant PROPOSAL
Mujtaba H SaylorsRussiaIvan Magalhaes PROPOSAL
Morrow H ChuiSpainStephen Shaw QUALIFIED
Silvio C RimSpainAmy Elsner PROPOSAL
Greenwood I StensethBrazilXuxue Feng NEW
Francesco A SchemmerAustraliaAnna Fali QUALIFIED
Aditya R VocelkaFranceBernardo Dominic NEGOTIATION
Misaki L AlbaresFranceAsiya Javayant RENEWAL
Ivar X MarrierFranceIvan Magalhaes PROPOSAL
Antonio I CaudyCanadaIoni Bowcher UNQUALIFIED
Greenwood K GillianFranceIoni Bowcher PROPOSAL
Julie W MaletIndiaOnyama Limba UNQUALIFIED
Jennifer O PaprockiBrazilIoni Bowcher NEGOTIATION
Jones D RimFranceXuxue Feng UNQUALIFIED
Claire B MaletIndiaXuxue Feng NEGOTIATION
Maria H KuskoArgentinaStephen Shaw UNQUALIFIED
Leon L FigeroaArgentinaAnna Fali NEGOTIATION
Izzy C MacleadRussiaAnna Fali UNQUALIFIED
Greenwood V BologniaSpainStephen Shaw RENEWAL
David U GlickAustraliaOnyama Limba UNQUALIFIED
Kaitlin Z CaudyFranceAmy Elsner NEGOTIATION
Claire N MacleadCanadaAmy Elsner RENEWAL

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