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
Johnson P RulapaughSpainIvan Magalhaes UNQUALIFIED
Jones F WhobreyItalyAsiya Javayant NEW
Arvin W CaldareraAustraliaIvan Magalhaes NEW
Cody X VenereGermanyStephen Shaw RENEWAL
Salvatore I SaylorsIndiaBernardo Dominic NEGOTIATION
Kaitlin H TollnerBrazilIvan Magalhaes PROPOSAL
Stacey P FigeroaItalyIoni Bowcher NEGOTIATION
Morrow W PerinIndiaXuxue Feng PROPOSAL
Deepesh R KolmetzRussiaElwin Sharvill UNQUALIFIED
Murillo W BologniaItalyBernardo Dominic RENEWAL
Arvin P NickaArgentinaXuxue Feng QUALIFIED
Francesco F MacleadSpainXuxue Feng RENEWAL
Isabel G OldroydItalyAsiya Javayant RENEWAL
Clifford Q WhobreyCanadaIoni Bowcher NEW
Aruna A SaylorsJapanElwin Sharvill NEGOTIATION
Salvatore P FigeroaUnited KingdomIvan Magalhaes UNQUALIFIED
Francesco U ShinkoJapanIvan Magalhaes QUALIFIED
Darci M SaylorsSpainAnna Fali UNQUALIFIED
Sinclair X GarufiCanadaAnna Fali UNQUALIFIED
Maisha Z RimCanadaXuxue Feng PROPOSAL
Stacey M MarrierFranceElwin Sharvill NEW
Francesco X PaprockiBrazilBernardo Dominic PROPOSAL
Emily T DarakjyCanadaAsiya Javayant UNQUALIFIED
Alejandro O GarufiUnited KingdomAsiya Javayant RENEWAL
Faith A VocelkaCanadaAnna Fali QUALIFIED
Silvio Z RulapaughArgentinaAsiya Javayant RENEWAL
Aika F FollerItalyOnyama Limba PROPOSAL
Emily M GarufiItalyBernardo Dominic RENEWAL
Emily P PerinRussiaAsiya Javayant NEGOTIATION
Aika E InouyeItalyStephen Shaw PROPOSAL
Jefferson B MarrierItalyIvan Magalhaes RENEWAL
Kadeem E SchemmerUnited KingdomElwin Sharvill UNQUALIFIED
Silvio P RutaRussiaXuxue Feng NEW
Ashley G BowleyUnited KingdomXuxue Feng UNQUALIFIED
Misaki E VocelkaJapanElwin Sharvill QUALIFIED
Faith W RoysterItalyIvan Magalhaes UNQUALIFIED
Juan K MaletBrazilAnna Fali PROPOSAL
Faith N NickaRussiaXuxue Feng UNQUALIFIED
Nicolas P GauchoUnited KingdomBernardo Dominic UNQUALIFIED
Arvin K OstroskyBrazilElwin Sharvill RENEWAL
Maria A WaycottJapanXuxue Feng UNQUALIFIED
Emily V MorascaUnited KingdomAsiya Javayant UNQUALIFIED
Aruna Z FollerCanadaAmy Elsner UNQUALIFIED
Salvatore H OldroydIndiaAsiya Javayant NEW
Isabel F DoeCanadaIoni Bowcher QUALIFIED
Deepesh J ShinkoArgentinaIvan Magalhaes UNQUALIFIED
Ricardo C AmigonIndiaStephen Shaw QUALIFIED
Greenwood V PoquetteArgentinaAmy Elsner PROPOSAL
Ricardo S FigeroaItalyAmy Elsner NEW
Maria I KolmetzBrazilOnyama Limba RENEWAL
Horizontal
NameCountryRepresentativeStatus
Deepesh Z DoeCanadaIvan Magalhaes QUALIFIED
Salvatore F SlusarskiCanadaIoni Bowcher QUALIFIED
Kaitlin C NestleCanadaAsiya Javayant UNQUALIFIED
Ashley K CaudyAustraliaElwin Sharvill UNQUALIFIED
Munro Y MacleadGermanyOnyama Limba UNQUALIFIED
Wickens Y GlickBrazilAsiya Javayant QUALIFIED
Tony P ButtCanadaAsiya Javayant UNQUALIFIED
Emily Q NestleCanadaIoni Bowcher NEW
Mayumi K DoeAustraliaIvan Magalhaes QUALIFIED
Emily C FerenczSpainAnna Fali UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aika C StockhamBrazil2024-04-09Dorl, James J Esq NEGOTIATION45Ivan Magalhaes
1001Juan C MorascaArgentina2024-04-25Chanay, Jeffrey A Esq NEW67Bernardo Dominic
1002Darci B WhobreyFrance2024-03-30Feltz Printing Service NEW23Xuxue Feng
1003Isabel K GlickFrance2024-04-05Feiner Bros QUALIFIED56Amy Elsner
1004Jefferson S NestleGermany2024-04-18King, Christopher A Esq NEW43Xuxue Feng
1005Jefferson N StockhamJapan2024-04-08Feiner Bros QUALIFIED18Elwin Sharvill
1006Ricardo K NickaArgentina2024-03-30Benton, John B Jr QUALIFIED98Ioni Bowcher
1007Adams J InouyeBrazil2024-04-10Chanay, Jeffrey A Esq QUALIFIED7Anna Fali
1008Maria M WieserIndia2024-04-15Morlong Associates QUALIFIED60Amy Elsner
1009Greenwood G StockhamItaly2024-04-11Rousseaux, Michael Esq NEGOTIATION50Bernardo Dominic
1010Adams Y CampainAustralia2024-04-15Benton, John B Jr PROPOSAL97Onyama Limba
1011Antonio B GlickIndia2024-03-31Benton, John B Jr UNQUALIFIED89Asiya Javayant
1012Kadeem Q PoquetteSpain2024-04-04King, Christopher A Esq NEW98Stephen Shaw
1013Ashley Z MorascaJapan2024-03-30Commercial Press UNQUALIFIED74Asiya Javayant
1014Aika T WhobreyBrazil2024-04-26Buckley Miller Wright PROPOSAL83Ivan Magalhaes
1015Clifford U PaprockiAustralia2024-04-04Commercial Press NEGOTIATION52Ivan Magalhaes
1016Adams C NickaSpain2024-04-22Feiner Bros NEW34Bernardo Dominic
1017Darci Y WaycottFrance2024-04-12Printing Dimensions NEGOTIATION48Amy Elsner
1018Kaitlin A TollnerSpain2024-04-04Chapman, Ross E Esq QUALIFIED95Xuxue Feng
1019Salvatore K MorascaItaly2024-04-23Chapman, Ross E Esq NEW4Asiya Javayant
1020Francesco P DoeBrazil2024-04-05Morlong Associates UNQUALIFIED94Ivan Magalhaes
1021Maria A VocelkaGermany2024-04-27Truhlar And Truhlar Attys QUALIFIED29Anna Fali
1022Faith T MarrierCanada2024-04-11Commercial Press RENEWAL64Bernardo Dominic
1023Aditya U DilliardItaly2024-04-17Buckley Miller Wright RENEWAL66Xuxue Feng
1024Ricardo V FollerBrazil2024-04-22Chanay, Jeffrey A Esq NEW77Bernardo Dominic
1025Julie I MorascaUnited Kingdom2024-04-27Commercial Press NEW78Ioni Bowcher
1026Jeanfrancois G RoysterUnited Kingdom2024-04-16Commercial Press NEW97Xuxue Feng
1027Costa D AlbaresJapan2024-04-08Truhlar And Truhlar Attys NEW98Anna Fali
1028Darci M NestleSpain2024-03-31Buckley Miller Wright RENEWAL70Onyama Limba
1029Alejandro W OldroydSpain2024-04-26Buckley Miller Wright NEW62Stephen Shaw
1030Jeanfrancois I SlusarskiUnited Kingdom2024-04-26Chanay, Jeffrey A Esq QUALIFIED31Xuxue Feng
1031Greenwood L NestleFrance2024-04-07Benton, John B Jr PROPOSAL60Onyama Limba
1032Izzy R RutaUnited Kingdom2024-04-06Dorl, James J Esq NEGOTIATION97Anna Fali
1033Mujtaba U DilliardJapan2024-04-20Rousseaux, Michael Esq PROPOSAL3Asiya Javayant
1034Ashley E FigeroaBrazil2024-04-24Printing Dimensions UNQUALIFIED12Xuxue Feng
1035Ivar J CampainCanada2024-04-19Buckley Miller Wright NEW71Anna Fali
1036Francesco W RutaBrazil2024-04-03Chanay, Jeffrey A Esq PROPOSAL17Anna Fali
1037Deepesh K KolmetzItaly2024-04-07Feltz Printing Service RENEWAL58Asiya Javayant
1038Salvatore Y InouyeGermany2024-04-03King, Christopher A Esq NEW76Amy Elsner
1039Costa R CaudyArgentina2024-04-19Rangoni Of Florence RENEWAL20Ivan Magalhaes
1040Maria H IturbideArgentina2024-04-28Feltz Printing Service UNQUALIFIED56Stephen Shaw
1041Isabel R SaylorsBrazil2024-04-10Feiner Bros QUALIFIED42Ivan Magalhaes
1042Morrow N GlickFrance2024-04-26Truhlar And Truhlar Attys RENEWAL19Amy Elsner
1043Morrow W KolmetzItaly2024-03-31Feiner Bros QUALIFIED85Ioni Bowcher
1044Faith Y MacleadJapan2024-04-19Dorl, James J Esq NEW84Elwin Sharvill
1045Silvio Q MaletAustralia2024-04-21Buckley Miller Wright NEW20Ivan Magalhaes
1046Adams V WaycottCanada2024-04-28Benton, John B Jr RENEWAL68Ivan Magalhaes
1047Juan O MaletAustralia2024-04-12Feltz Printing Service UNQUALIFIED99Amy Elsner
1048Emily V OldroydFrance2024-04-08Commercial Press NEW90Anna Fali
1049Deepesh B WhobreyCanada2024-04-04Truhlar And Truhlar Attys QUALIFIED64Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Aditya K ButtIndiaStephen Shaw QUALIFIED
Kadeem C BowleyUnited KingdomIoni Bowcher NEGOTIATION
Octavia S RoysterRussiaAsiya Javayant NEW
Tony S GauchoRussiaAnna Fali RENEWAL
Adams X InouyeBrazilOnyama Limba NEGOTIATION
Tony R GillianAustraliaIoni Bowcher UNQUALIFIED
Leon O FerenczFranceStephen Shaw NEGOTIATION
Jennifer C VenereAustraliaAnna Fali QUALIFIED
Salvatore W VenereItalyAsiya Javayant PROPOSAL
Mujtaba L PaprockiGermanyIvan Magalhaes RENEWAL
Rodrigues U CampainCanadaXuxue Feng PROPOSAL
Murillo E AlbaresIndiaOnyama Limba NEGOTIATION
Kaitlin P VocelkaArgentinaAnna Fali NEW
Izzy Z CaldareraUnited KingdomBernardo Dominic NEW
David P AlbaresGermanyStephen Shaw UNQUALIFIED
Ricardo I FollerUnited KingdomBernardo Dominic PROPOSAL
Emily T MarrierRussiaIoni Bowcher QUALIFIED
Darci J FigeroaJapanAsiya Javayant RENEWAL
Faith U GillianAustraliaIvan Magalhaes QUALIFIED
Aditya T KolmetzGermanyXuxue Feng QUALIFIED
Costa X SaylorsIndiaOnyama Limba RENEWAL
Tony U DarakjyArgentinaBernardo Dominic RENEWAL
Antonio F SaylorsUnited KingdomOnyama Limba PROPOSAL
Kadeem K CampainCanadaXuxue Feng UNQUALIFIED
Jones T TollnerCanadaAnna Fali NEW
Jennifer M PoquetteCanadaElwin Sharvill NEW
Cody Z ButtBrazilAnna Fali NEGOTIATION
Jeanfrancois D BowleyGermanyXuxue Feng NEGOTIATION
Wickens V StockhamCanadaBernardo Dominic NEGOTIATION
Kaitlin N PaprockiBrazilIoni Bowcher NEW
Kaitlin Z DoeAustraliaBernardo Dominic NEW
Alejandro F GarufiJapanElwin Sharvill RENEWAL
Jeanfrancois D CampainSpainIvan Magalhaes QUALIFIED
Stacey Y MaletIndiaElwin Sharvill NEGOTIATION
Antonio N PerinIndiaXuxue Feng PROPOSAL
Arvin K PoquetteIndiaXuxue Feng RENEWAL
Alejandro C StockhamItalyIoni Bowcher UNQUALIFIED
Aditya G FerenczRussiaAsiya Javayant QUALIFIED
David Q WaycottCanadaIoni Bowcher UNQUALIFIED
Salvatore V IturbideItalyBernardo Dominic PROPOSAL
Johnson Q RimIndiaIoni Bowcher UNQUALIFIED
Johnson R AmigonGermanyXuxue Feng QUALIFIED
Aditya Q PoquetteArgentinaAnna Fali PROPOSAL
Arvin N OstroskyJapanOnyama Limba PROPOSAL
Ivar N ShinkoSpainElwin Sharvill UNQUALIFIED
Leon O VocelkaJapanAsiya Javayant PROPOSAL
Kadeem N SergiFranceAnna Fali NEGOTIATION
Nicolas D RulapaughIndiaBernardo Dominic NEGOTIATION
Greenwood V NickaJapanElwin Sharvill UNQUALIFIED
Munro S ShinkoIndiaIoni Bowcher NEW
Frozen Columns
Name
Aditya B Figeroa
Murillo E Venere
Smith E Darakjy
Emily X Slusarski
Ivar S Oldroyd
Kadeem M Malet
Mayumi M Darakjy
Darci M Doe
Mayumi H Morasca
Kadeem T Ferencz
Deepesh L Flosi
Juan B Flosi
Julie V Schemmer
Misaki T Foller
Ashley A Rulapaugh
Murillo G Inouye
Salvatore S Kusko
Octavia N Kusko
Murillo B Dilliard
Misaki S Flosi
Aditya E Saylors
Emily A Nicka
Francesco I Iturbide
Kaitlin A Campain
Salvatore H Maclead
Claire W Saylors
Munro E Marrier
Costa G Royster
Ivar S Waycott
Kadeem O Foller
Darci D Caldarera
Juan S Caudy
Claire B Saylors
Faith O Chui
Silvio E Morasca
Faith M Shinko
Ricardo G Nestle
Salvatore I Tollner
Cody N Venere
Jennifer A Poquette
Deepesh V Stenseth
Kadeem R Gillian
Kadeem Z Malet
Nicolas L Malet
Munro H Sergi
Francesco S Paprocki
Jefferson K Rim
Claire O Perin
Cody O Campain
Leon S Glick
IdCountryDate
1000India2024-04-01
1001Japan2024-04-23
1002Russia2024-04-27
1003Brazil2024-04-20
1004Russia2024-04-18
1005Canada2024-04-25
1006Argentina2024-04-12
1007United Kingdom2024-04-20
1008Canada2024-04-26
1009Italy2024-04-23
1010France2024-04-01
1011France2024-04-07
1012Spain2024-04-25
1013Brazil2024-04-19
1014Spain2024-04-22
1015Brazil2024-04-06
1016Australia2024-04-03
1017Argentina2024-04-07
1018Italy2024-04-04
1019Japan2024-04-08
1020Australia2024-04-19
1021Brazil2024-03-30
1022Australia2024-04-16
1023Germany2024-04-22
1024Brazil2024-04-27
1025Italy2024-04-16
1026Italy2024-04-27
1027Spain2024-04-24
1028Italy2024-04-06
1029Japan2024-04-11
1030Australia2024-04-06
1031Japan2024-04-04
1032Australia2024-03-30
1033Argentina2024-04-02
1034Russia2024-04-10
1035France2024-04-19
1036Russia2024-04-27
1037Australia2024-04-01
1038France2024-04-18
1039Japan2024-04-13
1040Argentina2024-04-16
1041Russia2024-04-17
1042Spain2024-04-22
1043Japan2024-04-10
1044Italy2024-04-12
1045Argentina2024-04-20
1046India2024-04-08
1047Spain2024-04-07
1048Argentina2024-04-10
1049Argentina2024-04-13

On-Demand Data

NameIdCountryDate
Aruna V Whobrey1000Australia2024-04-08
Aruna E Briddick1001United Kingdom2024-04-12
Misaki N Maclead1002Brazil2024-04-04
Rodrigues W Wieser1003Argentina2024-04-16
Kadeem R Nestle1004Italy2024-04-19
Costa C Caldarera1005Spain2024-04-13
Leon L Paprocki1006France2024-04-25
Jennifer Q Malet1007Australia2024-04-02
Antonio U Rulapaugh1008Russia2024-04-14
Smith F Shinko1009Russia2024-04-20
James Q Rim1010Brazil2024-04-24
Juan W Ostrosky1011United Kingdom2024-03-31
Julie E Nicka1012United Kingdom2024-04-21
Maisha U Perin1013Russia2024-04-23
Mujtaba L Dilliard1014Japan2024-04-02
Smith R Stockham1015Spain2024-04-18
Aika B Darakjy1016India2024-04-01
Izzy L Glick1017Argentina2024-04-03
Misaki H Foller1018France2024-03-30
Antonio Q Flosi1019Italy2024-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa F FigeroaGermanyAnna Fali NEGOTIATION
Jefferson Y ButtJapanXuxue Feng UNQUALIFIED
Isabel Q FerenczGermanyElwin Sharvill NEW
Kadeem N SergiSpainOnyama Limba NEW
Aditya J WhobreyAustraliaElwin Sharvill NEGOTIATION
Aruna U WhobreyFranceIvan Magalhaes UNQUALIFIED
Clifford Q VocelkaIndiaOnyama Limba UNQUALIFIED
Izzy W IturbideAustraliaElwin Sharvill UNQUALIFIED
Octavia H OldroydRussiaAmy Elsner RENEWAL
Tony W KolmetzAustraliaIvan Magalhaes RENEWAL
Kaitlin Q RutaIndiaXuxue Feng NEGOTIATION
Aika O BowleyJapanBernardo Dominic PROPOSAL
Julie L MaletGermanyAnna Fali NEGOTIATION
Maisha Z NestleAustraliaStephen Shaw RENEWAL
Julie O OldroydUnited KingdomXuxue Feng NEW
Maisha G PerinGermanyBernardo Dominic PROPOSAL
Ricardo W AmigonJapanOnyama Limba PROPOSAL
Ashley C GillianRussiaIvan Magalhaes UNQUALIFIED
Cody A WhobreyBrazilOnyama Limba NEGOTIATION
Izzy D ButtAustraliaBernardo Dominic UNQUALIFIED
Murillo Z SlusarskiFranceIoni Bowcher UNQUALIFIED
Stacey C RutaSpainIoni Bowcher QUALIFIED
Julie L NestleUnited KingdomStephen Shaw RENEWAL
Ivar Z SaylorsRussiaXuxue Feng NEGOTIATION
Ashley S PerinBrazilAsiya Javayant NEW
Rodrigues C MorascaArgentinaIoni Bowcher RENEWAL
Adams I MacleadJapanOnyama Limba PROPOSAL
Juan N SergiBrazilAnna Fali UNQUALIFIED
Claire O StensethArgentinaIvan Magalhaes NEGOTIATION
Wickens U DoeAustraliaStephen Shaw QUALIFIED
Leon Q ChuiIndiaStephen Shaw NEW
Mujtaba O KuskoCanadaStephen Shaw UNQUALIFIED
Tony Z KolmetzCanadaAnna Fali QUALIFIED
Misaki W VenereRussiaXuxue Feng RENEWAL
Johnson T FlosiRussiaElwin Sharvill QUALIFIED
Mayumi O AmigonCanadaIvan Magalhaes QUALIFIED
Adams Z MarrierRussiaXuxue Feng NEGOTIATION
Octavia A NestleItalyAnna Fali PROPOSAL
Johnson X StensethCanadaAmy Elsner PROPOSAL
Kadeem D DilliardArgentinaAmy Elsner NEGOTIATION

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