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
Morrow R MacleadRussiaBernardo Dominic NEGOTIATION
Julie F RutaFranceIoni Bowcher UNQUALIFIED
Morrow D FigeroaIndiaStephen Shaw RENEWAL
Jones Q FigeroaCanadaBernardo Dominic PROPOSAL
Aruna H NestleItalyIoni Bowcher RENEWAL
Clifford R WhobreyAustraliaIvan Magalhaes NEGOTIATION
Antonio O KuskoAustraliaIvan Magalhaes PROPOSAL
Aika G MaletSpainAmy Elsner NEW
Munro N RutaItalyBernardo Dominic NEW
David J StensethFranceIoni Bowcher UNQUALIFIED
Smith S GauchoItalyAnna Fali RENEWAL
Misaki U NickaFranceXuxue Feng NEGOTIATION
Jones P SaylorsItalyAnna Fali UNQUALIFIED
Silvio I WhobreySpainIoni Bowcher NEW
Isabel Z VenereSpainOnyama Limba NEGOTIATION
Ricardo S CaudyIndiaXuxue Feng RENEWAL
Aruna E AmigonAustraliaIoni Bowcher UNQUALIFIED
Stacey L PerinIndiaXuxue Feng NEW
Salvatore E GauchoIndiaIvan Magalhaes NEGOTIATION
Leon H FerenczFranceElwin Sharvill PROPOSAL
Jennifer T GarufiJapanOnyama Limba UNQUALIFIED
Faith W RimBrazilAmy Elsner PROPOSAL
Cody R NickaUnited KingdomIvan Magalhaes RENEWAL
David Y DarakjySpainStephen Shaw NEGOTIATION
Juan A FigeroaRussiaAnna Fali UNQUALIFIED
Misaki L MaletArgentinaStephen Shaw RENEWAL
Julie B VenereBrazilAmy Elsner PROPOSAL
Aika B ButtUnited KingdomAmy Elsner QUALIFIED
Maria O MaletBrazilStephen Shaw PROPOSAL
Chavez L SchemmerItalyElwin Sharvill PROPOSAL
Misaki Z SergiCanadaAnna Fali QUALIFIED
Ivar X AmigonUnited KingdomIoni Bowcher RENEWAL
Claire C KolmetzGermanyElwin Sharvill QUALIFIED
Faith M VenereCanadaIoni Bowcher RENEWAL
Jeanfrancois O TollnerUnited KingdomIvan Magalhaes PROPOSAL
Maisha N FerenczIndiaAsiya Javayant PROPOSAL
Izzy N ChuiFranceXuxue Feng QUALIFIED
Smith C ChuiSpainOnyama Limba NEW
Ivar V DilliardJapanIoni Bowcher NEGOTIATION
Emily S SchemmerJapanIoni Bowcher PROPOSAL
Leja B NestleUnited KingdomIvan Magalhaes NEW
Arvin B AlbaresRussiaIvan Magalhaes NEW
Jefferson U DarakjyGermanyStephen Shaw NEGOTIATION
Costa X PerinRussiaXuxue Feng PROPOSAL
Smith X AlbaresCanadaXuxue Feng PROPOSAL
Johnson B StensethUnited KingdomBernardo Dominic NEW
Mujtaba O DilliardGermanyStephen Shaw NEW
Ricardo L SergiAustraliaAsiya Javayant UNQUALIFIED
Wickens J ChuiSpainAmy Elsner UNQUALIFIED
Jefferson H NickaBrazilAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Jefferson T KuskoJapanIoni Bowcher QUALIFIED
Jeanfrancois H GlickAustraliaBernardo Dominic NEW
Silvio M DarakjyFranceStephen Shaw UNQUALIFIED
Smith P AlbaresFranceElwin Sharvill PROPOSAL
Aditya X AlbaresJapanXuxue Feng PROPOSAL
Murillo U StensethIndiaAsiya Javayant UNQUALIFIED
Munro E SaylorsBrazilAnna Fali RENEWAL
Darci T GillianUnited KingdomOnyama Limba RENEWAL
Jefferson C PaprockiFranceAnna Fali PROPOSAL
Rodrigues Z BriddickRussiaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues Y ShinkoRussia2024-04-09Chemel, James L Cpa UNQUALIFIED68Ioni Bowcher
1001Aika Q StensethIndia2024-04-04Truhlar And Truhlar Attys NEGOTIATION78Xuxue Feng
1002Julie A BologniaBrazil2024-04-18Rangoni Of Florence NEGOTIATION8Elwin Sharvill
1003Kaitlin R ShinkoIndia2024-04-21Benton, John B Jr QUALIFIED64Ioni Bowcher
1004Costa I BriddickCanada2024-04-19Dorl, James J Esq NEW96Xuxue Feng
1005Salvatore N DoeBrazil2024-04-26King, Christopher A Esq UNQUALIFIED99Bernardo Dominic
1006Tony Y GillianGermany2024-04-06Rangoni Of Florence NEW29Stephen Shaw
1007Emily Z MorascaSpain2024-04-05Benton, John B Jr UNQUALIFIED7Stephen Shaw
1008Jeanfrancois L OldroydCanada2024-04-18Chanay, Jeffrey A Esq QUALIFIED69Amy Elsner
1009James A GillianSpain2024-04-07Rangoni Of Florence UNQUALIFIED63Bernardo Dominic
1010Morrow U WhobreySpain2024-04-15Commercial Press RENEWAL72Xuxue Feng
1011Jefferson T MaletBrazil2024-04-07Truhlar And Truhlar Attys RENEWAL14Elwin Sharvill
1012Misaki Q SaylorsBrazil2024-03-30Chemel, James L Cpa QUALIFIED84Ioni Bowcher
1013Maisha R BowleyIndia2024-04-15Chemel, James L Cpa NEGOTIATION30Bernardo Dominic
1014Jennifer R WhobreyBrazil2024-04-20Dorl, James J Esq UNQUALIFIED96Asiya Javayant
1015Ricardo E ChuiJapan2024-04-17Chemel, James L Cpa NEGOTIATION16Asiya Javayant
1016Wickens Y SaylorsRussia2024-03-31Commercial Press QUALIFIED16Bernardo Dominic
1017Munro V ShinkoAustralia2024-04-03Rousseaux, Michael Esq UNQUALIFIED37Asiya Javayant
1018Adams I FerenczAustralia2024-04-19Truhlar And Truhlar Attys NEW54Amy Elsner
1019Jennifer D MaletFrance2024-04-22Feltz Printing Service RENEWAL64Anna Fali
1020Octavia Z OldroydItaly2024-04-08Feltz Printing Service QUALIFIED2Asiya Javayant
1021Salvatore R RimCanada2024-04-22Truhlar And Truhlar Attys UNQUALIFIED31Ivan Magalhaes
1022Adams A StensethCanada2024-03-30Feiner Bros NEGOTIATION68Stephen Shaw
1023Morrow H MaletBrazil2024-04-02Morlong Associates UNQUALIFIED7Ioni Bowcher
1024Leon S SchemmerUnited Kingdom2024-04-11Truhlar And Truhlar Attys NEGOTIATION46Bernardo Dominic
1025Nicolas V KolmetzGermany2024-04-10Chapman, Ross E Esq QUALIFIED21Xuxue Feng
1026Jefferson E ButtSpain2024-03-28Printing Dimensions NEW10Amy Elsner
1027David S DilliardAustralia2024-04-24Rangoni Of Florence QUALIFIED21Anna Fali
1028Jennifer T BriddickAustralia2024-04-12Morlong Associates PROPOSAL91Bernardo Dominic
1029Kaitlin Q FerenczGermany2024-04-12Benton, John B Jr QUALIFIED13Amy Elsner
1030Ivar D SergiUnited Kingdom2024-04-24Truhlar And Truhlar Attys RENEWAL6Bernardo Dominic
1031Antonio I SaylorsArgentina2024-04-10King, Christopher A Esq QUALIFIED35Anna Fali
1032Adams Z RoysterRussia2024-03-30Feltz Printing Service NEGOTIATION87Anna Fali
1033Nicolas T DilliardRussia2024-04-05Benton, John B Jr NEGOTIATION58Stephen Shaw
1034Greenwood K RutaAustralia2024-04-11Rousseaux, Michael Esq NEW80Xuxue Feng
1035Chavez A FigeroaSpain2024-04-09King, Christopher A Esq PROPOSAL28Asiya Javayant
1036Octavia R StockhamItaly2024-04-01Buckley Miller Wright UNQUALIFIED45Anna Fali
1037Tony B TollnerIndia2024-04-13Rangoni Of Florence NEW61Onyama Limba
1038Stacey P ButtItaly2024-04-03Printing Dimensions QUALIFIED85Asiya Javayant
1039Kaitlin J SlusarskiSpain2024-04-09Feltz Printing Service UNQUALIFIED61Elwin Sharvill
1040Antonio Q StockhamCanada2024-04-25Rousseaux, Michael Esq QUALIFIED7Asiya Javayant
1041Chavez X DilliardAustralia2024-03-30Chemel, James L Cpa UNQUALIFIED12Asiya Javayant
1042Isabel G MaletItaly2024-04-02Commercial Press NEW13Elwin Sharvill
1043Jennifer W SergiAustralia2024-04-15Dorl, James J Esq UNQUALIFIED26Elwin Sharvill
1044Murillo X DoeJapan2024-04-05Truhlar And Truhlar Attys RENEWAL79Amy Elsner
1045Murillo G WhobreySpain2024-03-29Feiner Bros RENEWAL69Bernardo Dominic
1046Maisha O SergiGermany2024-04-17King, Christopher A Esq UNQUALIFIED46Ivan Magalhaes
1047Misaki O SchemmerRussia2024-04-11Rangoni Of Florence NEGOTIATION4Onyama Limba
1048Kadeem V BowleyFrance2024-03-28Feltz Printing Service NEW34Bernardo Dominic
1049Stacey W VocelkaJapan2024-04-14Truhlar And Truhlar Attys NEGOTIATION24Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Jefferson O ShinkoGermanyIoni Bowcher PROPOSAL
David N BriddickBrazilStephen Shaw NEW
Mayumi J FlosiRussiaOnyama Limba RENEWAL
Deepesh P MorascaAustraliaAmy Elsner NEGOTIATION
Silvio L BowleyItalyXuxue Feng PROPOSAL
Juan I MorascaArgentinaIoni Bowcher UNQUALIFIED
Leja C IturbideAustraliaOnyama Limba QUALIFIED
Morrow G VenereGermanyAnna Fali RENEWAL
Deepesh D DarakjyArgentinaAnna Fali UNQUALIFIED
Clifford J ShinkoFranceAmy Elsner NEW
Octavia O StockhamBrazilBernardo Dominic QUALIFIED
Cody H MorascaArgentinaOnyama Limba QUALIFIED
Wickens C SaylorsAustraliaIoni Bowcher QUALIFIED
Darci A MaletJapanElwin Sharvill PROPOSAL
Tony O CaudyGermanyAnna Fali RENEWAL
Stacey R TollnerItalyIvan Magalhaes NEGOTIATION
Francesco R CaudyJapanStephen Shaw NEGOTIATION
Aika G ShinkoFranceOnyama Limba QUALIFIED
Sinclair A StockhamUnited KingdomAsiya Javayant NEGOTIATION
Costa S BowleyJapanBernardo Dominic NEW
Misaki B SlusarskiAustraliaIoni Bowcher NEW
Morrow O PoquetteIndiaStephen Shaw RENEWAL
Nicolas P CaudyAustraliaIvan Magalhaes RENEWAL
Rodrigues W FerenczJapanXuxue Feng NEW
Jennifer R GarufiGermanyStephen Shaw PROPOSAL
Mayumi G FollerSpainXuxue Feng QUALIFIED
Deepesh N MacleadAustraliaAmy Elsner NEW
Leja V ButtArgentinaAnna Fali NEGOTIATION
Jones B RoysterArgentinaOnyama Limba NEW
Faith K GauchoJapanAsiya Javayant NEGOTIATION
Jefferson O RutaArgentinaIoni Bowcher PROPOSAL
Ashley C BologniaJapanIvan Magalhaes NEGOTIATION
Alejandro C MaletBrazilAsiya Javayant QUALIFIED
Wickens J RimAustraliaStephen Shaw PROPOSAL
David J StockhamJapanIoni Bowcher NEW
Maria V ShinkoUnited KingdomOnyama Limba PROPOSAL
Julie T ShinkoArgentinaStephen Shaw UNQUALIFIED
Leon W NickaFranceIoni Bowcher PROPOSAL
Ricardo L KolmetzItalyBernardo Dominic QUALIFIED
Adams L SchemmerBrazilIoni Bowcher RENEWAL
Salvatore E ChuiJapanXuxue Feng PROPOSAL
Alejandro Z MacleadFranceIvan Magalhaes UNQUALIFIED
Nicolas J OldroydCanadaOnyama Limba RENEWAL
Tony R DarakjyIndiaIvan Magalhaes NEW
Rodrigues I RutaSpainIoni Bowcher RENEWAL
Juan N AlbaresUnited KingdomXuxue Feng PROPOSAL
Ivar N FlosiSpainIoni Bowcher PROPOSAL
Maisha A VocelkaIndiaOnyama Limba PROPOSAL
Sinclair W MacleadFranceIoni Bowcher PROPOSAL
Mayumi J GlickRussiaStephen Shaw QUALIFIED
Frozen Columns
Name
Mayumi U Bowley
Aruna T Bowley
Francesco D Poquette
Alejandro N Flosi
Smith B Schemmer
Wickens I Nicka
Alejandro D Morasca
Mayumi Y Chui
Silvio R Morasca
Kaitlin K Nestle
Ashley K Dilliard
Faith F Morasca
Kadeem H Maclead
David A Flosi
Jennifer O Slusarski
Darci W Kusko
Kaitlin F Whobrey
Sinclair P Oldroyd
Leja I Whobrey
Darci C Ostrosky
Clifford G Ostrosky
Emily X Glick
Salvatore Q Stenseth
Claire N Rulapaugh
Jeanfrancois E Briddick
Salvatore B Kolmetz
Misaki F Rulapaugh
Jefferson W Gillian
Stacey P Poquette
Aditya N Bolognia
Francesco W Wieser
Jefferson U Nicka
Maria L Darakjy
Alejandro V Caldarera
Leon J Ruta
Ashley H Poquette
James T Maclead
Faith J Glick
Octavia B Schemmer
Silvio W Saylors
Arvin F Malet
Isabel T Albares
Deepesh B Iturbide
Aruna Z Campain
Murillo N Flosi
Julie P Oldroyd
Maisha Y Ostrosky
Isabel F Garufi
Costa W Figeroa
Sinclair S Waycott
IdCountryDate
1000Japan2024-04-01
1001France2024-03-30
1002Germany2024-03-31
1003Brazil2024-04-24
1004Russia2024-04-06
1005Japan2024-04-16
1006Germany2024-04-01
1007Australia2024-04-11
1008United Kingdom2024-04-12
1009Argentina2024-04-02
1010Spain2024-04-22
1011Australia2024-04-05
1012Brazil2024-04-09
1013Germany2024-04-12
1014Canada2024-04-11
1015India2024-04-09
1016Brazil2024-04-13
1017Canada2024-03-28
1018Brazil2024-04-08
1019Australia2024-04-08
1020Russia2024-03-29
1021Japan2024-04-08
1022Russia2024-03-30
1023France2024-04-13
1024France2024-04-02
1025Argentina2024-04-24
1026Argentina2024-04-13
1027France2024-04-10
1028Russia2024-04-06
1029Italy2024-04-25
1030Argentina2024-04-03
1031Japan2024-03-29
1032Germany2024-04-03
1033Italy2024-04-15
1034Italy2024-04-22
1035Italy2024-04-23
1036France2024-04-14
1037Spain2024-04-23
1038Russia2024-04-09
1039Spain2024-04-19
1040India2024-04-08
1041Italy2024-04-10
1042Brazil2024-03-30
1043India2024-04-10
1044United Kingdom2024-04-04
1045France2024-04-23
1046Italy2024-03-28
1047India2024-04-06
1048Russia2024-04-26
1049Spain2024-04-10

On-Demand Data

NameIdCountryDate
Munro P Poquette1000Spain2024-04-14
Johnson I Shinko1001India2024-04-06
Jones Z Gaucho1002United Kingdom2024-04-10
Silvio W Vocelka1003Argentina2024-04-03
Chavez K Butt1004Italy2024-04-15
Aika X Flosi1005Brazil2024-04-15
Misaki R Venere1006France2024-04-08
Maisha W Malet1007Japan2024-04-21
Adams C Maclead1008Italy2024-04-24
Octavia O Iturbide1009Japan2024-04-21
Jefferson Z Rim1010Japan2024-04-14
Jennifer Q Campain1011Germany2024-04-21
Chavez S Shinko1012United Kingdom2024-04-21
Izzy D Schemmer1013Spain2024-03-29
Murillo Y Marrier1014France2024-04-13
Sinclair A Oldroyd1015Canada2024-03-31
Misaki T Chui1016Australia2024-04-24
Ivar B Foller1017Italy2024-04-18
Octavia A Campain1018Germany2024-04-03
Octavia J Poquette1019United Kingdom2024-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David X ChuiSpainAsiya Javayant NEW
Leon K KolmetzUnited KingdomElwin Sharvill RENEWAL
Aditya X MarrierCanadaIvan Magalhaes QUALIFIED
Antonio W InouyeFranceIvan Magalhaes UNQUALIFIED
Juan K DoeAustraliaElwin Sharvill NEGOTIATION
Salvatore W MaletUnited KingdomIvan Magalhaes NEGOTIATION
Clifford E NestleBrazilXuxue Feng UNQUALIFIED
Antonio L TollnerGermanyStephen Shaw RENEWAL
Jeanfrancois W CaudyBrazilAsiya Javayant RENEWAL
Costa U DoeItalyAsiya Javayant PROPOSAL
Mayumi W PaprockiUnited KingdomBernardo Dominic QUALIFIED
Claire H SchemmerFranceIvan Magalhaes NEGOTIATION
Rodrigues V BriddickBrazilAnna Fali NEGOTIATION
Jennifer F OstroskyFranceIvan Magalhaes NEW
Kadeem O NestleArgentinaIvan Magalhaes NEGOTIATION
Arvin M RulapaughAustraliaElwin Sharvill PROPOSAL
Murillo Y RimFranceAsiya Javayant QUALIFIED
Rodrigues X RulapaughUnited KingdomXuxue Feng UNQUALIFIED
Clifford Y ButtGermanyAsiya Javayant UNQUALIFIED
Chavez Z RutaGermanyAnna Fali NEGOTIATION
Julie H WhobreyJapanStephen Shaw QUALIFIED
Leon W DoeUnited KingdomXuxue Feng RENEWAL
Stacey V GillianCanadaOnyama Limba UNQUALIFIED
Ricardo D BologniaJapanElwin Sharvill NEW
Mujtaba R ShinkoUnited KingdomIvan Magalhaes RENEWAL
Ricardo A GarufiRussiaIoni Bowcher QUALIFIED
Rodrigues Y WaycottArgentinaElwin Sharvill UNQUALIFIED
Jefferson Z OstroskySpainElwin Sharvill NEGOTIATION
Stacey T CaudySpainIvan Magalhaes RENEWAL
Maria M PoquetteRussiaElwin Sharvill RENEWAL
Johnson S WieserBrazilOnyama Limba PROPOSAL
Adams I NickaItalyBernardo Dominic PROPOSAL
David M MarrierItalyElwin Sharvill NEW
Adams S CaudyFranceOnyama Limba NEGOTIATION
Ricardo J MaletGermanyAnna Fali NEGOTIATION
Aika B GillianJapanOnyama Limba PROPOSAL
Jennifer F DilliardAustraliaXuxue Feng NEW
Morrow O TollnerItalyStephen Shaw NEW
Aika Z CampainJapanElwin Sharvill QUALIFIED
Deepesh T OldroydSpainElwin Sharvill UNQUALIFIED

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