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
Jefferson V IturbideBrazilXuxue Feng UNQUALIFIED
Jeanfrancois U ButtGermanyStephen Shaw UNQUALIFIED
Ricardo K AlbaresFranceXuxue Feng PROPOSAL
Ivar U ChuiRussiaIoni Bowcher QUALIFIED
Munro V SchemmerGermanyAmy Elsner QUALIFIED
Johnson Q PaprockiCanadaAnna Fali NEGOTIATION
Jeanfrancois Y GauchoBrazilOnyama Limba NEGOTIATION
Maria D BologniaFranceAmy Elsner UNQUALIFIED
Alejandro N GarufiCanadaOnyama Limba NEGOTIATION
Octavia C DilliardItalyAmy Elsner NEW
Jeanfrancois A MaletUnited KingdomBernardo Dominic NEW
Chavez D MaletFranceIvan Magalhaes QUALIFIED
Leja D PerinGermanyStephen Shaw QUALIFIED
Clifford N RoysterItalyAmy Elsner NEGOTIATION
Jones V GauchoCanadaElwin Sharvill PROPOSAL
Aruna J OstroskyFranceAsiya Javayant QUALIFIED
Munro Y MaletRussiaBernardo Dominic UNQUALIFIED
Izzy Y ShinkoIndiaAnna Fali NEGOTIATION
Aika B BowleyUnited KingdomElwin Sharvill NEGOTIATION
Arvin F RimBrazilElwin Sharvill RENEWAL
Izzy H RoysterUnited KingdomStephen Shaw RENEWAL
Morrow I FigeroaCanadaAmy Elsner NEW
Jeanfrancois F SergiArgentinaAnna Fali PROPOSAL
Chavez D StockhamArgentinaAsiya Javayant PROPOSAL
Faith Z MorascaAustraliaAsiya Javayant NEGOTIATION
Juan N RimGermanyStephen Shaw NEW
Stacey G MarrierSpainIvan Magalhaes NEGOTIATION
Murillo W MarrierBrazilIoni Bowcher PROPOSAL
Mayumi W OstroskyItalyBernardo Dominic QUALIFIED
Nicolas G FollerBrazilAnna Fali RENEWAL
Morrow Z AmigonItalyBernardo Dominic RENEWAL
Rodrigues J VenereUnited KingdomIoni Bowcher NEGOTIATION
Jefferson L GarufiGermanyIoni Bowcher QUALIFIED
Adams N FlosiAustraliaIvan Magalhaes UNQUALIFIED
Tony A FigeroaArgentinaBernardo Dominic QUALIFIED
Arvin K GauchoFranceStephen Shaw RENEWAL
Leja S AmigonBrazilElwin Sharvill UNQUALIFIED
Johnson F SchemmerJapanAsiya Javayant NEW
Claire T MarrierUnited KingdomIoni Bowcher QUALIFIED
Maria F TollnerRussiaBernardo Dominic PROPOSAL
Morrow L WaycottJapanIvan Magalhaes NEGOTIATION
Costa P VocelkaArgentinaAmy Elsner PROPOSAL
Chavez F NestleCanadaIoni Bowcher NEGOTIATION
Greenwood F WieserUnited KingdomStephen Shaw NEW
Aditya B BriddickCanadaOnyama Limba UNQUALIFIED
Adams E DarakjyArgentinaIoni Bowcher QUALIFIED
Stacey K IturbideArgentinaIoni Bowcher NEGOTIATION
Sinclair L KuskoIndiaElwin Sharvill UNQUALIFIED
Faith V OldroydUnited KingdomStephen Shaw RENEWAL
Salvatore K GarufiGermanyXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Wickens Y DarakjyJapanElwin Sharvill RENEWAL
David R SchemmerJapanIoni Bowcher NEGOTIATION
Alejandro N GillianUnited KingdomAnna Fali UNQUALIFIED
Stacey O NickaItalyOnyama Limba RENEWAL
Jones G FerenczFranceStephen Shaw PROPOSAL
Octavia E RulapaughCanadaOnyama Limba UNQUALIFIED
Nicolas X DilliardJapanXuxue Feng RENEWAL
Faith O IturbideGermanyBernardo Dominic PROPOSAL
Jennifer E IturbideAustraliaElwin Sharvill PROPOSAL
Mujtaba L GlickFranceStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa B SlusarskiItaly2024-03-31Truhlar And Truhlar Attys NEGOTIATION41Bernardo Dominic
1001Jefferson U BriddickSpain2024-04-23Chanay, Jeffrey A Esq NEW29Asiya Javayant
1002James D DoeAustralia2024-04-19Feltz Printing Service PROPOSAL20Elwin Sharvill
1003Maria T FigeroaArgentina2024-04-15Benton, John B Jr NEGOTIATION2Ivan Magalhaes
1004Jeanfrancois X SergiJapan2024-04-23Rousseaux, Michael Esq NEW37Ioni Bowcher
1005Chavez Q MaletSpain2024-04-24Benton, John B Jr RENEWAL73Anna Fali
1006Antonio R KuskoFrance2024-04-05Printing Dimensions NEGOTIATION80Anna Fali
1007Leon V MarrierRussia2024-04-03Commercial Press PROPOSAL99Bernardo Dominic
1008Kaitlin R CaldareraBrazil2024-04-27Feltz Printing Service QUALIFIED57Asiya Javayant
1009Aika Q FlosiUnited Kingdom2024-04-21Benton, John B Jr PROPOSAL84Amy Elsner
1010Wickens R MacleadUnited Kingdom2024-04-13Feltz Printing Service NEGOTIATION71Anna Fali
1011Cody N ChuiIndia2024-04-04Benton, John B Jr NEW60Anna Fali
1012Claire O StensethFrance2024-04-17Rousseaux, Michael Esq UNQUALIFIED95Ioni Bowcher
1013Adams P CaldareraGermany2024-04-23Truhlar And Truhlar Attys NEW99Anna Fali
1014Faith O GauchoItaly2024-04-27Chanay, Jeffrey A Esq UNQUALIFIED95Elwin Sharvill
1015Aika D FlosiFrance2024-04-13Printing Dimensions PROPOSAL75Elwin Sharvill
1016Aika A DarakjyBrazil2024-04-25Benton, John B Jr RENEWAL22Elwin Sharvill
1017Misaki C SergiFrance2024-04-05Truhlar And Truhlar Attys NEGOTIATION54Xuxue Feng
1018Arvin U FlosiAustralia2024-04-20Feltz Printing Service QUALIFIED43Xuxue Feng
1019Ashley W FollerJapan2024-04-18Chanay, Jeffrey A Esq RENEWAL80Xuxue Feng
1020Misaki T PaprockiRussia2024-04-12Chapman, Ross E Esq PROPOSAL62Anna Fali
1021Jefferson Q KolmetzAustralia2024-04-21Morlong Associates NEW78Ioni Bowcher
1022Adams X SchemmerBrazil2024-03-30Printing Dimensions PROPOSAL65Onyama Limba
1023Johnson X DilliardGermany2024-03-31Feiner Bros RENEWAL3Stephen Shaw
1024Misaki E FigeroaAustralia2024-04-10Printing Dimensions NEGOTIATION31Stephen Shaw
1025Claire W GauchoCanada2024-04-16Morlong Associates NEGOTIATION74Ioni Bowcher
1026Munro B BologniaIndia2024-04-03King, Christopher A Esq PROPOSAL40Asiya Javayant
1027Ashley J PerinAustralia2024-04-01Feiner Bros NEW81Bernardo Dominic
1028Arvin B WhobreyJapan2024-04-11Commercial Press RENEWAL52Xuxue Feng
1029Adams P CaldareraBrazil2024-04-25Feiner Bros NEW24Amy Elsner
1030Aditya P GarufiRussia2024-04-23Chanay, Jeffrey A Esq PROPOSAL99Asiya Javayant
1031Jones L FlosiArgentina2024-04-25Rangoni Of Florence UNQUALIFIED41Asiya Javayant
1032Misaki W CaldareraRussia2024-04-13Rangoni Of Florence NEW29Anna Fali
1033Nicolas B SaylorsItaly2024-04-13Commercial Press NEGOTIATION21Onyama Limba
1034Jeanfrancois C MaletBrazil2024-04-11Truhlar And Truhlar Attys UNQUALIFIED98Ivan Magalhaes
1035Izzy S BologniaUnited Kingdom2024-04-04Chemel, James L Cpa NEGOTIATION53Bernardo Dominic
1036Johnson W CaldareraItaly2024-04-21Chanay, Jeffrey A Esq PROPOSAL2Elwin Sharvill
1037Salvatore Y BowleyGermany2024-04-26King, Christopher A Esq NEW97Bernardo Dominic
1038Salvatore W MaletGermany2024-04-04Chemel, James L Cpa PROPOSAL64Onyama Limba
1039Cody U OldroydAustralia2024-04-25Rousseaux, Michael Esq PROPOSAL11Ioni Bowcher
1040David D BriddickJapan2024-04-24Truhlar And Truhlar Attys UNQUALIFIED38Asiya Javayant
1041Munro W PerinIndia2024-04-11King, Christopher A Esq RENEWAL24Asiya Javayant
1042David I MorascaAustralia2024-04-20Rousseaux, Michael Esq QUALIFIED17Stephen Shaw
1043Kaitlin C MorascaItaly2024-04-19Buckley Miller Wright PROPOSAL28Ioni Bowcher
1044Deepesh V SchemmerCanada2024-04-12Feltz Printing Service UNQUALIFIED23Amy Elsner
1045Juan H ChuiBrazil2024-04-25Dorl, James J Esq NEGOTIATION68Anna Fali
1046Adams X WhobreyGermany2024-04-10Buckley Miller Wright PROPOSAL1Xuxue Feng
1047Ashley L SchemmerBrazil2024-04-01Commercial Press NEW0Elwin Sharvill
1048Emily T PaprockiAustralia2024-04-21Commercial Press PROPOSAL52Anna Fali
1049Leja W GillianSpain2024-04-08Benton, John B Jr PROPOSAL84Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Octavia K CampainAustraliaOnyama Limba NEGOTIATION
Emily B MacleadBrazilIoni Bowcher PROPOSAL
Juan X FlosiUnited KingdomElwin Sharvill PROPOSAL
Arvin O VocelkaCanadaAsiya Javayant PROPOSAL
David B ChuiIndiaAmy Elsner PROPOSAL
Costa U GillianIndiaXuxue Feng QUALIFIED
Adams X BologniaBrazilAmy Elsner NEGOTIATION
Smith Y GauchoCanadaAsiya Javayant NEGOTIATION
Nicolas B RoysterIndiaIoni Bowcher PROPOSAL
Deepesh D DoeAustraliaOnyama Limba NEW
Costa Q BriddickAustraliaOnyama Limba RENEWAL
Mujtaba N ButtJapanXuxue Feng UNQUALIFIED
Leon Z BowleyGermanyAsiya Javayant QUALIFIED
Greenwood R InouyeIndiaOnyama Limba NEW
Antonio L AlbaresBrazilStephen Shaw NEW
Aditya K SergiIndiaOnyama Limba RENEWAL
Claire M VenereIndiaIoni Bowcher PROPOSAL
David D RutaCanadaAnna Fali RENEWAL
Jefferson N RulapaughFranceBernardo Dominic QUALIFIED
Cody U MacleadFranceIoni Bowcher NEW
Sinclair F MorascaSpainBernardo Dominic RENEWAL
Jefferson Q GauchoIndiaStephen Shaw NEW
Costa M WieserUnited KingdomIvan Magalhaes NEGOTIATION
Johnson V NestleArgentinaBernardo Dominic QUALIFIED
Jeanfrancois Z SlusarskiBrazilElwin Sharvill NEW
Sinclair Q OstroskyIndiaAsiya Javayant RENEWAL
Chavez Z SergiArgentinaAmy Elsner UNQUALIFIED
Misaki N MarrierIndiaStephen Shaw PROPOSAL
Maisha X DilliardSpainAnna Fali PROPOSAL
Jeanfrancois L TollnerSpainElwin Sharvill PROPOSAL
Stacey C MarrierAustraliaXuxue Feng NEW
Costa P RoysterIndiaOnyama Limba PROPOSAL
Ashley P MacleadIndiaOnyama Limba UNQUALIFIED
Rodrigues F ChuiFranceIoni Bowcher UNQUALIFIED
Misaki D GauchoBrazilElwin Sharvill RENEWAL
David J StensethSpainElwin Sharvill QUALIFIED
Francesco T BriddickFranceBernardo Dominic QUALIFIED
Mujtaba N ShinkoCanadaXuxue Feng NEGOTIATION
Greenwood I PoquetteRussiaAmy Elsner QUALIFIED
Leja U SchemmerSpainElwin Sharvill QUALIFIED
Leja F CaldareraIndiaAsiya Javayant QUALIFIED
Emily X MacleadBrazilStephen Shaw PROPOSAL
Ricardo Z WaycottJapanBernardo Dominic NEGOTIATION
Ivar E MaletArgentinaBernardo Dominic RENEWAL
Rodrigues H SlusarskiRussiaOnyama Limba RENEWAL
Cody U GlickAustraliaAnna Fali UNQUALIFIED
David F MorascaCanadaAsiya Javayant QUALIFIED
Costa A VenereRussiaAsiya Javayant UNQUALIFIED
Sinclair B PaprockiUnited KingdomElwin Sharvill UNQUALIFIED
Isabel I NickaRussiaIoni Bowcher PROPOSAL
Frozen Columns
Name
Sinclair R Malet
Johnson W Shinko
Kaitlin G Morasca
Antonio Q Tollner
Leja C Inouye
Alejandro Y Vocelka
Costa O Paprocki
Jefferson C Butt
Claire Y Campain
Isabel I Ostrosky
Murillo E Malet
Mujtaba A Maclead
Emily O Flosi
Stacey A Maclead
Smith D Whobrey
Costa S Royster
Aruna L Caudy
Wickens G Royster
Sinclair I Doe
Aruna R Butt
Antonio W Gaucho
Rodrigues M Caudy
Jones G Figeroa
Claire X Gillian
Izzy S Chui
Johnson F Campain
Cody P Marrier
Morrow B Briddick
Isabel I Figeroa
Arvin Q Flosi
Octavia B Stockham
Emily G Bolognia
Misaki Y Caldarera
Greenwood B Marrier
Faith P Inouye
Aruna V Ostrosky
Tony M Chui
Ivar M Darakjy
Adams J Stockham
Murillo G Poquette
Claire Y Malet
Johnson D Iturbide
David J Shinko
Leja Y Malet
Jeanfrancois O Poquette
Ricardo Y Kusko
David I Waycott
Sinclair O Ferencz
James O Garufi
Ashley I Butt
IdCountryDate
1000Argentina2024-04-19
1001Australia2024-04-26
1002Italy2024-04-20
1003Argentina2024-04-04
1004Spain2024-04-26
1005Australia2024-04-09
1006Argentina2024-04-16
1007Brazil2024-04-15
1008Spain2024-04-10
1009Germany2024-04-12
1010Spain2024-04-10
1011Canada2024-04-01
1012United Kingdom2024-04-16
1013Canada2024-04-08
1014Russia2024-04-04
1015Russia2024-04-21
1016United Kingdom2024-04-13
1017Canada2024-04-26
1018Japan2024-03-29
1019France2024-04-26
1020Spain2024-03-29
1021United Kingdom2024-04-02
1022Germany2024-04-15
1023Australia2024-04-05
1024Canada2024-04-25
1025United Kingdom2024-04-04
1026India2024-04-25
1027India2024-04-05
1028Russia2024-04-16
1029Germany2024-04-08
1030Russia2024-04-26
1031Japan2024-04-19
1032France2024-04-02
1033Argentina2024-04-12
1034Spain2024-04-20
1035Japan2024-04-19
1036Germany2024-04-08
1037Argentina2024-04-23
1038Japan2024-04-01
1039Russia2024-04-26
1040Brazil2024-04-27
1041Australia2024-04-23
1042Italy2024-04-18
1043Australia2024-04-21
1044Japan2024-03-31
1045France2024-04-10
1046France2024-03-31
1047Australia2024-03-30
1048Brazil2024-03-31
1049Brazil2024-04-20

On-Demand Data

NameIdCountryDate
Maisha X Marrier1000Russia2024-04-25
Jeanfrancois R Stockham1001Germany2024-04-19
Ricardo X Stockham1002France2024-04-24
Aika Q Rulapaugh1003United Kingdom2024-04-27
Jeanfrancois N Rim1004Brazil2024-04-11
Jennifer Q Stenseth1005Italy2024-04-14
Octavia Z Poquette1006Argentina2024-04-01
Aditya R Kolmetz1007Argentina2024-03-29
Adams W Flosi1008France2024-04-15
Aditya G Amigon1009Germany2024-04-25
Maisha F Nestle1010Brazil2024-03-29
Costa F Shinko1011Italy2024-04-10
Jefferson Y Nicka1012Brazil2024-04-23
Munro D Rulapaugh1013France2024-04-26
Leon S Bowley1014Argentina2024-04-11
Leja W Campain1015Australia2024-04-06
Antonio O Gaucho1016France2024-04-09
Darci L Figeroa1017Japan2024-04-06
Arvin K Schemmer1018Italy2024-04-04
Aruna K Sergi1019Japan2024-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Silvio J VocelkaGermanyOnyama Limba PROPOSAL
Octavia Q NickaFranceIvan Magalhaes PROPOSAL
Murillo B ButtFranceAsiya Javayant UNQUALIFIED
Mayumi X WhobreyUnited KingdomBernardo Dominic NEW
Munro G FlosiRussiaIvan Magalhaes UNQUALIFIED
David W StensethRussiaAmy Elsner QUALIFIED
Ashley N MaletUnited KingdomAmy Elsner NEW
Jeanfrancois S PerinSpainXuxue Feng PROPOSAL
Darci M MacleadAustraliaOnyama Limba UNQUALIFIED
Kaitlin Q StensethUnited KingdomAmy Elsner NEGOTIATION
Costa X CaldareraJapanIvan Magalhaes PROPOSAL
Octavia M ButtGermanyAnna Fali QUALIFIED
Cody J NickaItalyAmy Elsner NEGOTIATION
Nicolas O AmigonUnited KingdomXuxue Feng UNQUALIFIED
Morrow S BologniaArgentinaAnna Fali NEW
Greenwood X MacleadFranceAnna Fali QUALIFIED
Sinclair N NickaSpainAmy Elsner PROPOSAL
Maisha X MorascaArgentinaAnna Fali NEW
David O FlosiRussiaBernardo Dominic NEGOTIATION
Stacey W SchemmerArgentinaIoni Bowcher NEW
Ricardo S PerinBrazilIvan Magalhaes QUALIFIED
James V InouyeBrazilElwin Sharvill RENEWAL
Greenwood T MaletJapanBernardo Dominic PROPOSAL
Rodrigues A FerenczItalyIoni Bowcher PROPOSAL
Antonio I FlosiFranceAmy Elsner QUALIFIED
Aika W AlbaresFranceAsiya Javayant NEGOTIATION
Octavia I GauchoJapanOnyama Limba NEGOTIATION
Leja D SlusarskiArgentinaElwin Sharvill PROPOSAL
Misaki S RulapaughGermanyStephen Shaw PROPOSAL
Leon Q PoquetteJapanIoni Bowcher PROPOSAL
Jefferson C StockhamBrazilElwin Sharvill NEW
Sinclair P FollerSpainXuxue Feng RENEWAL
Jefferson A BowleyItalyAnna Fali NEW
Isabel C GarufiBrazilIoni Bowcher NEW
Julie C RimCanadaAsiya Javayant RENEWAL
Mayumi B StockhamCanadaStephen Shaw RENEWAL
Nicolas C CaldareraJapanStephen Shaw RENEWAL
Arvin K ShinkoIndiaAsiya Javayant UNQUALIFIED
Leon U CaudyFranceOnyama Limba RENEWAL
James B WieserUnited KingdomOnyama Limba QUALIFIED

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