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
Costa Z OstroskySpainElwin Sharvill QUALIFIED
Octavia U MacleadUnited KingdomAsiya Javayant RENEWAL
Aika M FigeroaSpainAsiya Javayant NEW
Faith U WaycottCanadaElwin Sharvill QUALIFIED
Arvin R MacleadRussiaAnna Fali PROPOSAL
Maisha T BowleyAustraliaXuxue Feng NEW
Maria N NestleGermanyOnyama Limba PROPOSAL
Clifford U GarufiCanadaIoni Bowcher RENEWAL
Jennifer P InouyeJapanAnna Fali QUALIFIED
Greenwood C GauchoCanadaBernardo Dominic UNQUALIFIED
Jefferson F CaudySpainAsiya Javayant PROPOSAL
Arvin S GauchoIndiaElwin Sharvill UNQUALIFIED
Jennifer Y SaylorsCanadaElwin Sharvill NEW
Johnson X PaprockiRussiaIvan Magalhaes UNQUALIFIED
Adams N BriddickUnited KingdomAnna Fali UNQUALIFIED
Nicolas R GlickBrazilIvan Magalhaes NEGOTIATION
Johnson N SlusarskiItalyIvan Magalhaes RENEWAL
Isabel C MacleadUnited KingdomElwin Sharvill UNQUALIFIED
Silvio S OstroskyBrazilIoni Bowcher RENEWAL
Kaitlin U DilliardBrazilAmy Elsner NEGOTIATION
Leja G IturbideAustraliaXuxue Feng RENEWAL
Ivar B CampainJapanIvan Magalhaes QUALIFIED
Kadeem G PerinAustraliaElwin Sharvill NEW
Salvatore I PerinJapanBernardo Dominic RENEWAL
Silvio W BriddickItalyIoni Bowcher NEGOTIATION
Morrow T MaletItalyAnna Fali UNQUALIFIED
Chavez A CaldareraRussiaElwin Sharvill UNQUALIFIED
Morrow H MaletGermanyElwin Sharvill QUALIFIED
Murillo B ChuiGermanyAnna Fali QUALIFIED
Julie R MacleadBrazilXuxue Feng QUALIFIED
Deepesh G MacleadBrazilOnyama Limba RENEWAL
Octavia Q DilliardRussiaXuxue Feng NEW
James B GarufiArgentinaIoni Bowcher NEGOTIATION
Leja H FerenczFranceIoni Bowcher PROPOSAL
Aditya V AlbaresCanadaXuxue Feng RENEWAL
David D SaylorsRussiaElwin Sharvill QUALIFIED
Leja T GauchoIndiaXuxue Feng PROPOSAL
Aditya W RulapaughGermanyOnyama Limba NEGOTIATION
Murillo J NestleIndiaAmy Elsner RENEWAL
Johnson A ButtGermanyStephen Shaw NEGOTIATION
Julie G OstroskyCanadaBernardo Dominic UNQUALIFIED
Salvatore Y GarufiItalyStephen Shaw QUALIFIED
Munro V NestleSpainElwin Sharvill NEGOTIATION
Arvin W OstroskyUnited KingdomOnyama Limba NEW
Murillo C FerenczArgentinaStephen Shaw RENEWAL
Munro Z FlosiUnited KingdomAmy Elsner PROPOSAL
Jennifer F WieserJapanBernardo Dominic PROPOSAL
Aika V SlusarskiSpainAmy Elsner NEW
Darci B DarakjyBrazilAsiya Javayant QUALIFIED
Mayumi Q NickaJapanAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel V CaldareraRussiaBernardo Dominic UNQUALIFIED
Munro P AlbaresItalyOnyama Limba NEW
Darci S OstroskyGermanyAmy Elsner NEW
Silvio A ShinkoGermanyIoni Bowcher PROPOSAL
Sinclair Y NestleBrazilStephen Shaw PROPOSAL
Nicolas Q PoquetteAustraliaXuxue Feng QUALIFIED
Kaitlin C DoeIndiaXuxue Feng NEGOTIATION
Cody F MaletSpainAsiya Javayant NEGOTIATION
Kaitlin G MorascaItalyIvan Magalhaes UNQUALIFIED
Alejandro C GauchoBrazilAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia Z FlosiGermany2024-04-05Commercial Press QUALIFIED53Ivan Magalhaes
1001Kadeem N SaylorsSpain2024-04-20Rangoni Of Florence NEW74Stephen Shaw
1002David W FigeroaGermany2024-03-31Rangoni Of Florence PROPOSAL15Elwin Sharvill
1003Claire P RulapaughItaly2024-04-24Commercial Press NEW51Anna Fali
1004Adams C MarrierRussia2024-04-21Buckley Miller Wright NEW31Xuxue Feng
1005Leja U NickaBrazil2024-04-22Dorl, James J Esq NEGOTIATION14Elwin Sharvill
1006Isabel P NestleJapan2024-04-13Chemel, James L Cpa RENEWAL55Anna Fali
1007Smith S TollnerCanada2024-04-16Morlong Associates NEW75Xuxue Feng
1008David S TollnerCanada2024-04-10Morlong Associates QUALIFIED86Elwin Sharvill
1009Wickens Y ChuiIndia2024-04-14Chemel, James L Cpa NEW55Amy Elsner
1010Darci L MorascaUnited Kingdom2024-04-13Feiner Bros NEGOTIATION51Stephen Shaw
1011Johnson V MaletUnited Kingdom2024-04-19Printing Dimensions NEGOTIATION85Amy Elsner
1012Octavia E BowleySpain2024-04-15Benton, John B Jr RENEWAL86Anna Fali
1013Faith J FollerCanada2024-04-10King, Christopher A Esq PROPOSAL1Bernardo Dominic
1014Claire W FigeroaIndia2024-04-06Feiner Bros UNQUALIFIED62Elwin Sharvill
1015Clifford Q WieserSpain2024-04-25Chemel, James L Cpa PROPOSAL76Onyama Limba
1016Silvio L VenereJapan2024-04-12Buckley Miller Wright QUALIFIED23Xuxue Feng
1017Arvin E FlosiGermany2024-04-23Chapman, Ross E Esq NEGOTIATION20Anna Fali
1018Claire I CaudyAustralia2024-04-18Buckley Miller Wright PROPOSAL50Onyama Limba
1019Ricardo Q ChuiCanada2024-04-12Chapman, Ross E Esq PROPOSAL44Amy Elsner
1020Salvatore U GarufiItaly2024-04-25Chemel, James L Cpa PROPOSAL80Onyama Limba
1021Salvatore Y MaletIndia2024-04-15Benton, John B Jr PROPOSAL75Amy Elsner
1022Stacey T FerenczSpain2024-04-27Morlong Associates RENEWAL6Elwin Sharvill
1023Kadeem C GillianGermany2024-04-24Chanay, Jeffrey A Esq QUALIFIED18Amy Elsner
1024Mujtaba A InouyeAustralia2024-04-22Benton, John B Jr PROPOSAL79Stephen Shaw
1025Nicolas X ButtItaly2024-04-29Truhlar And Truhlar Attys NEW60Xuxue Feng
1026Jennifer Q TollnerSpain2024-04-16Feltz Printing Service RENEWAL75Ioni Bowcher
1027Deepesh T PerinRussia2024-03-31Rangoni Of Florence PROPOSAL76Ioni Bowcher
1028Kadeem Z DoeGermany2024-04-02Dorl, James J Esq NEW77Ioni Bowcher
1029Mayumi T RoysterArgentina2024-04-13Commercial Press NEGOTIATION84Anna Fali
1030Leja Y ButtArgentina2024-04-03Printing Dimensions QUALIFIED14Ivan Magalhaes
1031Stacey S ChuiCanada2024-04-04Dorl, James J Esq UNQUALIFIED30Amy Elsner
1032Jennifer F VenereCanada2024-04-18Rousseaux, Michael Esq NEGOTIATION13Ivan Magalhaes
1033Isabel R SaylorsArgentina2024-04-10Morlong Associates UNQUALIFIED85Stephen Shaw
1034Misaki G DoeRussia2024-04-20Chanay, Jeffrey A Esq UNQUALIFIED85Amy Elsner
1035Costa U SlusarskiUnited Kingdom2024-04-08Dorl, James J Esq RENEWAL18Xuxue Feng
1036Ricardo M RulapaughAustralia2024-04-11Rousseaux, Michael Esq PROPOSAL56Ioni Bowcher
1037Clifford G SergiFrance2024-04-04Chanay, Jeffrey A Esq NEGOTIATION85Elwin Sharvill
1038Silvio E DilliardBrazil2024-04-26Dorl, James J Esq NEGOTIATION70Ivan Magalhaes
1039Darci Q DarakjyRussia2024-04-04King, Christopher A Esq NEGOTIATION85Ivan Magalhaes
1040Sinclair E MaletJapan2024-04-14Printing Dimensions QUALIFIED25Stephen Shaw
1041Aditya H GarufiFrance2024-04-14Chemel, James L Cpa UNQUALIFIED12Xuxue Feng
1042Salvatore F VocelkaJapan2024-04-28Rangoni Of Florence RENEWAL90Elwin Sharvill
1043Aditya K VocelkaRussia2024-04-13Benton, John B Jr RENEWAL71Asiya Javayant
1044Emily W KuskoItaly2024-04-20Chapman, Ross E Esq PROPOSAL95Asiya Javayant
1045Ricardo B WhobreyArgentina2024-04-06Feltz Printing Service QUALIFIED8Ioni Bowcher
1046Jeanfrancois J FlosiItaly2024-04-10Feiner Bros NEGOTIATION66Amy Elsner
1047Mayumi A MaletAustralia2024-04-01Feiner Bros QUALIFIED34Elwin Sharvill
1048Francesco S MaletIndia2024-04-08Truhlar And Truhlar Attys RENEWAL12Ioni Bowcher
1049Nicolas M WaycottJapan2024-04-23King, Christopher A Esq QUALIFIED0Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Izzy A SaylorsBrazilXuxue Feng RENEWAL
Costa Q MaletUnited KingdomAnna Fali UNQUALIFIED
Jones F MacleadAustraliaBernardo Dominic UNQUALIFIED
Greenwood A WieserRussiaOnyama Limba PROPOSAL
Chavez N StensethUnited KingdomIvan Magalhaes PROPOSAL
Emily V StensethItalyStephen Shaw NEW
Nicolas H FerenczSpainAnna Fali PROPOSAL
Jennifer G ChuiGermanyIoni Bowcher NEGOTIATION
Maisha N FlosiAustraliaBernardo Dominic NEGOTIATION
Mayumi L RutaArgentinaXuxue Feng RENEWAL
Adams U KuskoGermanyAnna Fali NEW
Tony D MorascaSpainBernardo Dominic NEGOTIATION
Clifford G MaletAustraliaAmy Elsner RENEWAL
Mayumi M MaletBrazilIoni Bowcher PROPOSAL
Emily V KuskoFranceOnyama Limba NEGOTIATION
Rodrigues N DilliardFranceIvan Magalhaes UNQUALIFIED
Adams D AlbaresGermanyElwin Sharvill NEW
Kadeem P KuskoRussiaXuxue Feng NEGOTIATION
Wickens W FigeroaItalyOnyama Limba QUALIFIED
Leja B InouyeArgentinaElwin Sharvill NEGOTIATION
Antonio B GlickItalyBernardo Dominic NEW
Jennifer X WhobreyIndiaIvan Magalhaes QUALIFIED
Greenwood C OstroskyAustraliaElwin Sharvill UNQUALIFIED
Greenwood H KolmetzIndiaAmy Elsner UNQUALIFIED
Tony L DoeBrazilStephen Shaw RENEWAL
Aruna A DoeRussiaIoni Bowcher PROPOSAL
Morrow Z DoeSpainIvan Magalhaes NEW
Maria Y OldroydFranceAnna Fali QUALIFIED
Wickens G RulapaughCanadaAsiya Javayant RENEWAL
Wickens L KolmetzCanadaXuxue Feng NEGOTIATION
Claire Z FollerFranceBernardo Dominic QUALIFIED
Izzy C StensethSpainXuxue Feng NEGOTIATION
Silvio F MacleadArgentinaBernardo Dominic PROPOSAL
James W MaletItalyXuxue Feng PROPOSAL
Maria Z OldroydGermanyAsiya Javayant PROPOSAL
Tony S BologniaIndiaBernardo Dominic NEW
Deepesh F ChuiCanadaBernardo Dominic NEW
Aika C FigeroaBrazilAmy Elsner NEW
Costa F AmigonBrazilBernardo Dominic NEGOTIATION
Mayumi Q AmigonItalyAnna Fali NEW
Mayumi M VenereCanadaElwin Sharvill NEGOTIATION
Morrow C ShinkoAustraliaXuxue Feng RENEWAL
Rodrigues R OstroskyItalyOnyama Limba NEGOTIATION
Arvin M SergiArgentinaAmy Elsner UNQUALIFIED
Cody R AmigonIndiaAnna Fali UNQUALIFIED
Jeanfrancois V CaudyGermanyStephen Shaw PROPOSAL
Mujtaba H WieserAustraliaBernardo Dominic PROPOSAL
Chavez W FigeroaBrazilBernardo Dominic QUALIFIED
Antonio E FerenczArgentinaAmy Elsner RENEWAL
Francesco M OldroydGermanyOnyama Limba NEW
Frozen Columns
Name
James F Shinko
Leon J Kusko
Darci U Iturbide
Julie R Morasca
Izzy N Venere
Aditya W Tollner
Darci W Sergi
Ashley B Stenseth
Izzy Z Rim
Juan R Royster
Alejandro F Inouye
Darci I Inouye
Jeanfrancois U Nestle
Maria O Campain
Chavez A Stockham
Emily V Poquette
Isabel I Chui
Murillo F Whobrey
Izzy A Morasca
Tony C Gillian
Emily T Darakjy
Emily N Waycott
Misaki G Royster
Aika G Rulapaugh
Ricardo M Oldroyd
Octavia G Poquette
Kaitlin C Figeroa
Arvin M Perin
Aruna Z Perin
Morrow Y Waycott
Cody F Gillian
Clifford N Vocelka
Aditya S Dilliard
Leon E Iturbide
Silvio U Caudy
Antonio Z Shinko
Ricardo L Waycott
Emily D Stockham
Clifford J Rulapaugh
Rodrigues Y Venere
Claire V Bolognia
Jones N Sergi
Mayumi R Slusarski
Maisha A Malet
Wickens W Albares
Mujtaba W Rulapaugh
Nicolas H Caudy
Aruna O Shinko
Chavez W Tollner
Octavia G Gaucho
IdCountryDate
1000Canada2024-04-01
1001Germany2024-04-04
1002Italy2024-04-16
1003Canada2024-04-14
1004India2024-04-25
1005United Kingdom2024-04-19
1006India2024-04-13
1007India2024-04-07
1008Italy2024-04-24
1009Canada2024-04-26
1010Spain2024-04-28
1011India2024-04-28
1012France2024-04-21
1013Brazil2024-04-20
1014Russia2024-04-04
1015Argentina2024-04-21
1016Brazil2024-04-04
1017Italy2024-04-16
1018Germany2024-04-26
1019United Kingdom2024-04-16
1020Japan2024-04-18
1021Argentina2024-04-02
1022Argentina2024-04-02
1023Argentina2024-04-16
1024United Kingdom2024-04-29
1025Australia2024-04-19
1026Australia2024-04-08
1027Japan2024-03-31
1028Australia2024-04-13
1029Brazil2024-04-22
1030Italy2024-04-25
1031France2024-04-09
1032Germany2024-04-27
1033Russia2024-04-15
1034Australia2024-04-10
1035Argentina2024-04-23
1036Japan2024-04-05
1037India2024-04-07
1038Argentina2024-04-10
1039France2024-04-29
1040India2024-04-19
1041Japan2024-04-27
1042Spain2024-04-18
1043Argentina2024-04-27
1044Brazil2024-04-11
1045Brazil2024-04-15
1046Brazil2024-04-17
1047United Kingdom2024-04-08
1048Russia2024-03-31
1049United Kingdom2024-04-21

On-Demand Data

NameIdCountryDate
Aditya U Stenseth1000Japan2024-04-03
Rodrigues U Paprocki1001India2024-04-20
Kadeem E Waycott1002United Kingdom2024-04-29
David P Maclead1003United Kingdom2024-04-07
Isabel A Butt1004Australia2024-04-26
Morrow Y Morasca1005India2024-04-17
Ashley V Wieser1006Canada2024-03-31
Adams Q Stenseth1007Spain2024-04-28
Mayumi B Rim1008United Kingdom2024-03-31
Leon Q Schemmer1009Spain2024-04-02
Aruna H Malet1010Brazil2024-04-29
Chavez S Royster1011Italy2024-04-21
Ashley Z Darakjy1012Brazil2024-04-07
Jennifer R Malet1013France2024-04-21
Kaitlin O Paprocki1014United Kingdom2024-04-24
Kaitlin T Ferencz1015Brazil2024-04-20
Smith N Chui1016Australia2024-04-20
Francesco T Amigon1017Germany2024-04-26
Silvio S Venere1018India2024-04-19
Francesco A Kolmetz1019Germany2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson G PaprockiItalyAsiya Javayant RENEWAL
Jones N KuskoArgentinaAsiya Javayant RENEWAL
Aika O RutaArgentinaBernardo Dominic PROPOSAL
Maisha G GauchoItalyIoni Bowcher RENEWAL
Nicolas Q VenereCanadaAmy Elsner UNQUALIFIED
Smith K SergiBrazilIvan Magalhaes QUALIFIED
Izzy W NestleCanadaElwin Sharvill RENEWAL
Murillo U DarakjyJapanIoni Bowcher PROPOSAL
Murillo O InouyeGermanyStephen Shaw PROPOSAL
Arvin S NickaUnited KingdomXuxue Feng QUALIFIED
Aruna C KolmetzAustraliaAsiya Javayant NEW
Adams W CaldareraAustraliaBernardo Dominic NEW
Sinclair Z BowleyAustraliaOnyama Limba UNQUALIFIED
Leon O StensethUnited KingdomStephen Shaw QUALIFIED
Greenwood G AmigonUnited KingdomAmy Elsner NEGOTIATION
Misaki Q SergiJapanIvan Magalhaes PROPOSAL
Clifford Q GlickAustraliaStephen Shaw QUALIFIED
Faith X RutaAustraliaXuxue Feng RENEWAL
Greenwood X NestleAustraliaOnyama Limba PROPOSAL
Antonio A TollnerSpainElwin Sharvill RENEWAL
Arvin P MaletIndiaAsiya Javayant PROPOSAL
Maisha B GarufiJapanElwin Sharvill NEGOTIATION
Clifford M FollerRussiaAsiya Javayant UNQUALIFIED
Silvio Q CaldareraCanadaElwin Sharvill QUALIFIED
Johnson D BriddickJapanXuxue Feng NEGOTIATION
Sinclair F IturbideArgentinaStephen Shaw QUALIFIED
Morrow P PerinAustraliaOnyama Limba QUALIFIED
Leja U KolmetzUnited KingdomElwin Sharvill NEW
David L IturbideArgentinaBernardo Dominic UNQUALIFIED
Chavez B KolmetzRussiaAnna Fali NEW
James W TollnerCanadaIoni Bowcher NEW
Munro K WieserBrazilElwin Sharvill UNQUALIFIED
Ashley G KolmetzUnited KingdomBernardo Dominic QUALIFIED
Alejandro I VocelkaBrazilStephen Shaw RENEWAL
Clifford U VocelkaBrazilAmy Elsner NEW
Kaitlin Q KolmetzUnited KingdomElwin Sharvill QUALIFIED
Rodrigues H RoysterUnited KingdomAnna Fali NEW
Aruna T VenereSpainAmy Elsner UNQUALIFIED
Morrow W OstroskyArgentinaIoni Bowcher UNQUALIFIED
Jones X BologniaGermanyBernardo Dominic 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>