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
Ivar H CaldareraAustraliaIoni Bowcher QUALIFIED
Francesco Z GauchoArgentinaIoni Bowcher NEW
Mujtaba S SaylorsSpainAnna Fali RENEWAL
Jennifer A BowleySpainIvan Magalhaes PROPOSAL
Izzy L DilliardBrazilXuxue Feng NEGOTIATION
Ashley A StockhamUnited KingdomXuxue Feng QUALIFIED
Ivar U MacleadSpainIvan Magalhaes NEW
Deepesh W FlosiAustraliaOnyama Limba UNQUALIFIED
Leon A AmigonGermanyXuxue Feng QUALIFIED
Salvatore Y IturbideFranceAmy Elsner QUALIFIED
Alejandro P WieserCanadaElwin Sharvill PROPOSAL
Costa S PoquetteIndiaBernardo Dominic NEGOTIATION
Ivar F SlusarskiSpainElwin Sharvill QUALIFIED
Aruna K MaletUnited KingdomBernardo Dominic PROPOSAL
Cody M GillianItalyIoni Bowcher RENEWAL
Salvatore M PerinAustraliaAsiya Javayant UNQUALIFIED
Juan U StockhamJapanAnna Fali UNQUALIFIED
Kaitlin K BriddickCanadaStephen Shaw PROPOSAL
Smith I RulapaughGermanyXuxue Feng UNQUALIFIED
Isabel Y PoquetteIndiaElwin Sharvill QUALIFIED
Silvio F BologniaJapanIoni Bowcher NEW
Jones I SchemmerIndiaAmy Elsner PROPOSAL
Greenwood Q NickaCanadaXuxue Feng NEW
Aditya R CampainArgentinaAsiya Javayant NEGOTIATION
Jefferson X MaletItalyIoni Bowcher PROPOSAL
Kaitlin J ButtFranceStephen Shaw PROPOSAL
Smith D OstroskyIndiaStephen Shaw NEW
Jeanfrancois K WieserGermanyOnyama Limba PROPOSAL
Leon A FlosiBrazilOnyama Limba QUALIFIED
Ashley R GauchoSpainStephen Shaw QUALIFIED
Greenwood S MaletArgentinaAnna Fali NEGOTIATION
Faith G PerinCanadaAsiya Javayant PROPOSAL
Wickens J ButtItalyAsiya Javayant PROPOSAL
Mayumi X VocelkaRussiaXuxue Feng QUALIFIED
Kadeem W VenereFranceAsiya Javayant NEGOTIATION
Rodrigues J BriddickJapanBernardo Dominic PROPOSAL
Salvatore Y KuskoJapanXuxue Feng UNQUALIFIED
Ashley V BowleyAustraliaIoni Bowcher NEGOTIATION
Maisha F MarrierSpainOnyama Limba UNQUALIFIED
Rodrigues J KuskoAustraliaBernardo Dominic PROPOSAL
Juan Y RulapaughCanadaBernardo Dominic QUALIFIED
Octavia O PoquetteItalyAnna Fali NEGOTIATION
Jennifer R RulapaughJapanXuxue Feng UNQUALIFIED
Jennifer J SergiGermanyElwin Sharvill QUALIFIED
Silvio I KolmetzSpainStephen Shaw RENEWAL
Morrow M VenereRussiaAsiya Javayant QUALIFIED
Leja S RimAustraliaOnyama Limba QUALIFIED
Clifford T WieserGermanyXuxue Feng NEW
Leon J GillianFranceStephen Shaw NEW
Wickens X TollnerBrazilXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Misaki A ShinkoUnited KingdomIvan Magalhaes NEW
Murillo U WaycottRussiaAmy Elsner NEGOTIATION
Murillo J FerenczCanadaXuxue Feng PROPOSAL
Antonio F KuskoRussiaIvan Magalhaes RENEWAL
Clifford E StockhamRussiaAsiya Javayant QUALIFIED
Mujtaba G RutaBrazilElwin Sharvill PROPOSAL
Greenwood E CaldareraRussiaAsiya Javayant UNQUALIFIED
Greenwood S RoysterCanadaAmy Elsner NEGOTIATION
Antonio D PoquetteArgentinaBernardo Dominic NEGOTIATION
Tony C KuskoAustraliaXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow S BologniaFrance2024-04-01Benton, John B Jr UNQUALIFIED27Ivan Magalhaes
1001Smith B BowleyIndia2024-04-19Rangoni Of Florence NEW72Ivan Magalhaes
1002Tony R NickaAustralia2024-04-18Rangoni Of Florence UNQUALIFIED49Onyama Limba
1003Johnson P ShinkoItaly2024-04-11Buckley Miller Wright RENEWAL25Anna Fali
1004Smith E ChuiArgentina2024-04-22Chanay, Jeffrey A Esq NEW32Anna Fali
1005Costa L TollnerBrazil2024-04-24Buckley Miller Wright UNQUALIFIED51Onyama Limba
1006Maisha V FlosiAustralia2024-04-26Rousseaux, Michael Esq RENEWAL87Xuxue Feng
1007Mujtaba E GlickArgentina2024-04-25Truhlar And Truhlar Attys QUALIFIED18Onyama Limba
1008Wickens E BriddickJapan2024-04-03Rousseaux, Michael Esq RENEWAL67Ioni Bowcher
1009Morrow I RutaJapan2024-04-17Benton, John B Jr NEGOTIATION28Asiya Javayant
1010Ricardo X ChuiIndia2024-04-14Chapman, Ross E Esq NEGOTIATION79Ivan Magalhaes
1011Jones G IturbideJapan2024-04-27King, Christopher A Esq QUALIFIED76Onyama Limba
1012Greenwood I NickaJapan2024-04-24Feltz Printing Service NEW21Asiya Javayant
1013Jefferson E AlbaresArgentina2024-04-21Buckley Miller Wright QUALIFIED47Amy Elsner
1014Alejandro W RimArgentina2024-04-18Dorl, James J Esq PROPOSAL25Bernardo Dominic
1015Morrow V CaldareraItaly2024-04-04Benton, John B Jr QUALIFIED92Stephen Shaw
1016Darci O PaprockiUnited Kingdom2024-04-11Commercial Press NEW57Elwin Sharvill
1017Darci S MaletAustralia2024-03-31Chemel, James L Cpa QUALIFIED56Ioni Bowcher
1018Jeanfrancois E FollerUnited Kingdom2024-04-16Dorl, James J Esq NEW35Onyama Limba
1019Aika V SchemmerCanada2024-04-01Printing Dimensions UNQUALIFIED2Bernardo Dominic
1020Kaitlin H InouyeArgentina2024-04-22Chapman, Ross E Esq UNQUALIFIED50Xuxue Feng
1021Murillo Y PoquetteAustralia2024-04-27Feltz Printing Service UNQUALIFIED79Ioni Bowcher
1022Cody Z ShinkoIndia2024-04-23Chanay, Jeffrey A Esq NEW33Xuxue Feng
1023Leja I IturbideGermany2024-03-29Truhlar And Truhlar Attys RENEWAL6Xuxue Feng
1024Mujtaba E GarufiArgentina2024-04-21Rangoni Of Florence RENEWAL12Bernardo Dominic
1025Francesco E GarufiJapan2024-04-05Commercial Press QUALIFIED59Elwin Sharvill
1026Jones P RimJapan2024-04-04Chemel, James L Cpa NEW95Ioni Bowcher
1027Ivar L BologniaSpain2024-04-06Truhlar And Truhlar Attys NEW77Anna Fali
1028Jefferson K BowleyGermany2024-04-04Feiner Bros PROPOSAL53Elwin Sharvill
1029Smith Z GillianUnited Kingdom2024-04-18Commercial Press UNQUALIFIED98Asiya Javayant
1030Mayumi H BologniaAustralia2024-04-04Rousseaux, Michael Esq RENEWAL20Amy Elsner
1031Morrow T VenereSpain2024-03-29Chanay, Jeffrey A Esq QUALIFIED4Bernardo Dominic
1032Munro R NestleSpain2024-04-26Commercial Press RENEWAL25Asiya Javayant
1033Arvin N SchemmerRussia2024-04-13Truhlar And Truhlar Attys NEGOTIATION90Stephen Shaw
1034Jones N WieserRussia2024-04-19Printing Dimensions NEGOTIATION65Anna Fali
1035Smith A MaletSpain2024-04-17Feiner Bros UNQUALIFIED67Stephen Shaw
1036Julie J NickaIndia2024-04-16Morlong Associates UNQUALIFIED57Elwin Sharvill
1037Cody D SergiAustralia2024-04-05Morlong Associates UNQUALIFIED58Asiya Javayant
1038Kadeem C MaletCanada2024-04-10Benton, John B Jr QUALIFIED30Stephen Shaw
1039Aditya O FigeroaRussia2024-04-06Rangoni Of Florence NEGOTIATION85Elwin Sharvill
1040Julie X ButtBrazil2024-03-31Commercial Press QUALIFIED27Xuxue Feng
1041Clifford S BriddickArgentina2024-04-20Rousseaux, Michael Esq UNQUALIFIED80Xuxue Feng
1042Leja A ButtFrance2024-04-19Printing Dimensions RENEWAL14Bernardo Dominic
1043Murillo P FollerBrazil2024-04-12Benton, John B Jr PROPOSAL74Asiya Javayant
1044Antonio J GillianArgentina2024-04-02King, Christopher A Esq QUALIFIED54Bernardo Dominic
1045Aruna S DilliardFrance2024-04-10Feltz Printing Service NEGOTIATION57Onyama Limba
1046Smith O MorascaArgentina2024-04-14Rangoni Of Florence PROPOSAL90Onyama Limba
1047Leon K DilliardItaly2024-04-10Printing Dimensions PROPOSAL67Stephen Shaw
1048Deepesh K GillianJapan2024-04-27Morlong Associates RENEWAL80Asiya Javayant
1049Murillo N VenereGermany2024-04-09Rousseaux, Michael Esq RENEWAL14Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Claire I VenereAustraliaXuxue Feng NEW
Octavia O BriddickItalyAnna Fali UNQUALIFIED
Faith G VocelkaRussiaStephen Shaw RENEWAL
Darci S PaprockiGermanyIoni Bowcher PROPOSAL
Mujtaba U GauchoJapanAnna Fali QUALIFIED
Julie J SlusarskiJapanOnyama Limba PROPOSAL
Stacey D GlickAustraliaIoni Bowcher NEW
Maisha Y MarrierGermanyBernardo Dominic UNQUALIFIED
Aika B ShinkoArgentinaElwin Sharvill PROPOSAL
Leja W MaletUnited KingdomStephen Shaw NEW
Silvio K MarrierJapanBernardo Dominic PROPOSAL
Nicolas Z MacleadJapanBernardo Dominic RENEWAL
Leon S DilliardUnited KingdomBernardo Dominic QUALIFIED
Leon S CaldareraSpainStephen Shaw PROPOSAL
Maria V WaycottJapanElwin Sharvill PROPOSAL
Faith R BologniaRussiaXuxue Feng QUALIFIED
Greenwood P VocelkaCanadaAnna Fali UNQUALIFIED
Darci Q SlusarskiGermanyIvan Magalhaes UNQUALIFIED
Octavia D NestleUnited KingdomOnyama Limba UNQUALIFIED
Ashley J FlosiArgentinaAsiya Javayant PROPOSAL
Adams O FigeroaSpainBernardo Dominic NEW
Maisha Q NickaGermanyAmy Elsner PROPOSAL
Rodrigues B MacleadSpainStephen Shaw UNQUALIFIED
Jeanfrancois F ButtSpainIoni Bowcher QUALIFIED
James D KuskoRussiaXuxue Feng PROPOSAL
Leja V MaletGermanyAsiya Javayant UNQUALIFIED
Rodrigues S GlickCanadaIvan Magalhaes NEGOTIATION
James B OstroskyArgentinaAmy Elsner NEW
Adams K OstroskyGermanyAnna Fali QUALIFIED
Ivar M DilliardRussiaElwin Sharvill PROPOSAL
Ivar R SlusarskiArgentinaStephen Shaw NEW
Claire E MacleadArgentinaAsiya Javayant NEGOTIATION
Ashley C SaylorsFranceStephen Shaw NEGOTIATION
Claire W PoquetteSpainIoni Bowcher QUALIFIED
Salvatore C PerinBrazilAmy Elsner PROPOSAL
Octavia G NestleIndiaAmy Elsner QUALIFIED
Salvatore V BowleyRussiaIoni Bowcher UNQUALIFIED
Francesco I PerinCanadaIoni Bowcher PROPOSAL
Tony C CaldareraAustraliaElwin Sharvill NEGOTIATION
Tony Q TollnerUnited KingdomOnyama Limba RENEWAL
Izzy G PaprockiUnited KingdomOnyama Limba RENEWAL
Deepesh Q PaprockiArgentinaOnyama Limba NEGOTIATION
Jones X VocelkaFranceAnna Fali NEW
Aruna N MacleadJapanAmy Elsner UNQUALIFIED
Izzy U RulapaughArgentinaAnna Fali RENEWAL
Alejandro H FlosiArgentinaIoni Bowcher RENEWAL
Ivar K SchemmerArgentinaXuxue Feng NEW
Stacey D RimGermanyAnna Fali NEGOTIATION
Tony O GillianAustraliaElwin Sharvill NEGOTIATION
Jennifer V WieserGermanyStephen Shaw QUALIFIED
Frozen Columns
Name
Smith S Oldroyd
Silvio W Inouye
Ricardo K Garufi
Ricardo S Waycott
Cody H Perin
Claire A Stockham
Nicolas L Flosi
Jones W Iturbide
Silvio C Malet
Tony E Iturbide
Nicolas W Iturbide
Mujtaba E Caldarera
Maisha K Wieser
Maisha M Iturbide
Aruna F Wieser
David A Chui
Misaki E Perin
Murillo S Malet
Chavez E Rulapaugh
Rodrigues N Oldroyd
Jefferson R Dilliard
Jeanfrancois G Bolognia
Leja X Dilliard
Juan C Nestle
Salvatore K Stenseth
Izzy T Morasca
Maisha S Marrier
Johnson D Waycott
Murillo O Saylors
Aruna H Venere
Nicolas K Marrier
Morrow Z Dilliard
Arvin Q Garufi
Johnson D Marrier
Smith N Dilliard
Greenwood J Foller
Kaitlin I Foller
Chavez E Malet
Leon D Ferencz
Ivar I Waycott
Sinclair X Flosi
Mayumi D Foller
David H Sergi
Johnson X Albares
Octavia Q Nestle
Munro M Foller
Jennifer U Shinko
Maisha X Poquette
Costa Q Vocelka
Leon F Gillian
IdCountryDate
1000United Kingdom2024-04-17
1001Italy2024-04-11
1002Argentina2024-04-05
1003Brazil2024-04-12
1004Argentina2024-04-22
1005Spain2024-04-26
1006Germany2024-04-05
1007Japan2024-04-21
1008Italy2024-04-20
1009Italy2024-04-11
1010Canada2024-03-31
1011France2024-04-04
1012France2024-03-31
1013India2024-04-22
1014Brazil2024-03-31
1015Spain2024-04-09
1016Spain2024-04-25
1017Canada2024-04-22
1018United Kingdom2024-04-20
1019Brazil2024-04-03
1020Spain2024-04-11
1021Russia2024-03-30
1022Russia2024-04-01
1023United Kingdom2024-03-29
1024Australia2024-03-29
1025Argentina2024-04-14
1026Germany2024-04-25
1027Russia2024-04-18
1028Canada2024-04-14
1029Brazil2024-03-30
1030Argentina2024-04-23
1031Japan2024-04-10
1032Spain2024-04-20
1033United Kingdom2024-03-30
1034Russia2024-04-17
1035Canada2024-04-10
1036Germany2024-04-02
1037Russia2024-04-16
1038France2024-03-30
1039Russia2024-04-15
1040Brazil2024-04-17
1041Italy2024-04-21
1042Russia2024-04-17
1043France2024-04-18
1044Brazil2024-04-14
1045Australia2024-04-24
1046Argentina2024-03-29
1047Australia2024-03-29
1048India2024-04-15
1049Japan2024-04-17

On-Demand Data

NameIdCountryDate
Stacey D Flosi1000Italy2024-04-23
Maria N Dilliard1001Germany2024-04-11
Silvio L Shinko1002Canada2024-04-25
Ashley H Ruta1003Australia2024-04-03
Salvatore T Inouye1004Brazil2024-04-01
Clifford M Oldroyd1005Spain2024-04-24
Leja J Ostrosky1006Spain2024-03-31
Izzy R Chui1007Germany2024-04-22
Leja W Tollner1008Japan2024-03-30
Mayumi B Royster1009Spain2024-04-13
Arvin Q Tollner1010Italy2024-04-13
Jones I Whobrey1011Russia2024-04-27
Silvio H Paprocki1012Spain2024-04-10
Jones T Albares1013India2024-04-25
Ashley X Foller1014Italy2024-04-01
Chavez S Wieser1015United Kingdom2024-03-29
Emily N Wieser1016Italy2024-04-02
Cody Y Venere1017Brazil2024-04-25
Ashley P Rim1018Australia2024-04-05
Aruna F Albares1019Canada2024-04-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria Y BriddickItalyAnna Fali NEGOTIATION
Darci I SchemmerFranceIoni Bowcher NEGOTIATION
Ashley H PerinJapanAmy Elsner NEW
Sinclair H MarrierGermanyAsiya Javayant RENEWAL
Jennifer U CaudyBrazilXuxue Feng NEGOTIATION
Francesco I KuskoAustraliaAsiya Javayant NEGOTIATION
Emily C FerenczSpainIvan Magalhaes QUALIFIED
Stacey O WieserGermanyAsiya Javayant UNQUALIFIED
Ashley M IturbideItalyOnyama Limba QUALIFIED
Deepesh N CaudyRussiaBernardo Dominic QUALIFIED
Claire W OstroskyBrazilIvan Magalhaes NEGOTIATION
Isabel B SaylorsIndiaStephen Shaw NEGOTIATION
Murillo I GlickIndiaAnna Fali UNQUALIFIED
Izzy J WhobreyRussiaAmy Elsner NEW
Arvin B ShinkoJapanIoni Bowcher NEGOTIATION
Aika M RimGermanyElwin Sharvill PROPOSAL
Kaitlin S MaletSpainBernardo Dominic QUALIFIED
Silvio C GarufiRussiaIoni Bowcher PROPOSAL
Smith J IturbideItalyBernardo Dominic NEGOTIATION
Mayumi X SergiUnited KingdomBernardo Dominic RENEWAL
Misaki E MaletJapanAmy Elsner UNQUALIFIED
James D PerinItalyAmy Elsner PROPOSAL
Mayumi Q GlickRussiaXuxue Feng QUALIFIED
Alejandro E BowleyUnited KingdomElwin Sharvill PROPOSAL
Cody I RulapaughRussiaXuxue Feng RENEWAL
Tony L FollerIndiaIvan Magalhaes QUALIFIED
Sinclair Z AmigonJapanIoni Bowcher NEGOTIATION
Tony G RoysterGermanyOnyama Limba UNQUALIFIED
Julie K InouyeRussiaIoni Bowcher NEGOTIATION
Juan U PaprockiArgentinaIoni Bowcher RENEWAL
Francesco V DilliardIndiaXuxue Feng RENEWAL
Leon C StockhamAustraliaBernardo Dominic RENEWAL
Salvatore U PerinAustraliaElwin Sharvill UNQUALIFIED
Leja K ChuiAustraliaAnna Fali UNQUALIFIED
Adams F WhobreyItalyAnna Fali RENEWAL
Jeanfrancois B RimCanadaAmy Elsner QUALIFIED
Jennifer J GauchoJapanAsiya Javayant RENEWAL
Kaitlin L SergiUnited KingdomAsiya Javayant NEGOTIATION
James I GillianBrazilElwin Sharvill RENEWAL
Stacey A GauchoItalyIoni Bowcher NEW

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