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
Jennifer G KuskoSpainIvan Magalhaes RENEWAL
Stacey Q RutaRussiaIoni Bowcher QUALIFIED
Greenwood M RimGermanyIvan Magalhaes NEW
Tony M ButtGermanyOnyama Limba NEGOTIATION
Mayumi E MaletIndiaAmy Elsner UNQUALIFIED
Clifford G KolmetzRussiaIoni Bowcher UNQUALIFIED
Costa R MorascaSpainBernardo Dominic UNQUALIFIED
Faith I CaldareraUnited KingdomAmy Elsner UNQUALIFIED
Ivar K GillianRussiaIoni Bowcher UNQUALIFIED
Tony C BologniaBrazilAnna Fali RENEWAL
Jennifer O DarakjyBrazilIoni Bowcher QUALIFIED
Greenwood C MaletGermanyAnna Fali NEGOTIATION
Mujtaba R MaletRussiaAnna Fali RENEWAL
Misaki H StensethUnited KingdomXuxue Feng PROPOSAL
James N RutaAustraliaBernardo Dominic RENEWAL
Maria R IturbideAustraliaAmy Elsner RENEWAL
Jones P ShinkoSpainXuxue Feng NEW
Alejandro V VocelkaIndiaOnyama Limba RENEWAL
Smith H OstroskyCanadaStephen Shaw UNQUALIFIED
Chavez Q MacleadFranceElwin Sharvill RENEWAL
Jones Z RulapaughUnited KingdomIvan Magalhaes UNQUALIFIED
Misaki Q AmigonArgentinaAsiya Javayant PROPOSAL
Arvin X SaylorsCanadaXuxue Feng NEGOTIATION
Munro O CaldareraArgentinaAsiya Javayant QUALIFIED
Kadeem F MorascaIndiaStephen Shaw PROPOSAL
Salvatore R DarakjySpainAmy Elsner NEGOTIATION
Adams L MorascaIndiaOnyama Limba UNQUALIFIED
Maisha G MaletCanadaElwin Sharvill RENEWAL
Arvin E IturbideRussiaAmy Elsner RENEWAL
Adams H OstroskyItalyXuxue Feng QUALIFIED
Leja U SlusarskiRussiaIoni Bowcher QUALIFIED
Arvin H KuskoUnited KingdomIoni Bowcher NEW
Alejandro U BriddickGermanyAmy Elsner UNQUALIFIED
Julie Y MaletSpainAsiya Javayant RENEWAL
Alejandro X StockhamFranceAmy Elsner PROPOSAL
Antonio O RimUnited KingdomElwin Sharvill RENEWAL
Deepesh V CampainFranceAsiya Javayant UNQUALIFIED
Izzy B MaletBrazilAmy Elsner PROPOSAL
Isabel R DilliardFranceStephen Shaw NEW
Mujtaba S GlickJapanAmy Elsner RENEWAL
Juan U RulapaughCanadaIoni Bowcher PROPOSAL
Mujtaba K AlbaresItalyAsiya Javayant QUALIFIED
Jefferson L VenereUnited KingdomAsiya Javayant NEW
Kadeem N SlusarskiBrazilXuxue Feng PROPOSAL
Jones D DoeSpainAmy Elsner PROPOSAL
Deepesh N FigeroaJapanIvan Magalhaes UNQUALIFIED
Isabel E StockhamFranceBernardo Dominic QUALIFIED
Julie A BriddickFranceXuxue Feng RENEWAL
Jefferson A NickaArgentinaIvan Magalhaes RENEWAL
Stacey Y GlickUnited KingdomIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Greenwood U InouyeFranceOnyama Limba UNQUALIFIED
Kadeem T PerinRussiaAnna Fali RENEWAL
Chavez U PerinSpainBernardo Dominic QUALIFIED
Nicolas V AmigonAustraliaBernardo Dominic UNQUALIFIED
Smith K KuskoSpainAnna Fali PROPOSAL
Deepesh L MorascaUnited KingdomAsiya Javayant QUALIFIED
Antonio G RulapaughUnited KingdomXuxue Feng PROPOSAL
Mujtaba M GillianCanadaAmy Elsner UNQUALIFIED
Morrow Q WhobreyIndiaBernardo Dominic RENEWAL
Salvatore I KolmetzAustraliaBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony H StockhamRussia2024-04-12Rangoni Of Florence NEGOTIATION95Anna Fali
1001Kadeem D NickaFrance2024-04-25Dorl, James J Esq PROPOSAL68Bernardo Dominic
1002Cody V TollnerCanada2024-04-26Buckley Miller Wright UNQUALIFIED99Asiya Javayant
1003James B MaletAustralia2024-04-22Chanay, Jeffrey A Esq UNQUALIFIED93Onyama Limba
1004Cody O RimRussia2024-04-17Chapman, Ross E Esq NEGOTIATION81Anna Fali
1005Nicolas S KuskoCanada2024-04-03Rangoni Of Florence NEW17Ivan Magalhaes
1006Jeanfrancois M PaprockiAustralia2024-04-22Benton, John B Jr PROPOSAL65Elwin Sharvill
1007Jones U FollerFrance2024-04-24Rangoni Of Florence QUALIFIED14Bernardo Dominic
1008Juan V CampainRussia2024-04-07Dorl, James J Esq PROPOSAL55Bernardo Dominic
1009Jones P SchemmerFrance2024-04-25Rangoni Of Florence NEGOTIATION36Xuxue Feng
1010Misaki S StensethAustralia2024-04-21Dorl, James J Esq UNQUALIFIED51Bernardo Dominic
1011Nicolas N MaletUnited Kingdom2024-04-16Feiner Bros NEGOTIATION50Onyama Limba
1012Morrow B CampainGermany2024-03-29Chanay, Jeffrey A Esq PROPOSAL6Onyama Limba
1013Darci S OstroskyItaly2024-04-09Truhlar And Truhlar Attys PROPOSAL76Elwin Sharvill
1014Maria A MacleadUnited Kingdom2024-04-03Rousseaux, Michael Esq NEW1Ivan Magalhaes
1015Sinclair L MaletFrance2024-04-12Chemel, James L Cpa PROPOSAL50Ivan Magalhaes
1016Jones U SaylorsItaly2024-03-29Benton, John B Jr QUALIFIED37Xuxue Feng
1017Claire F VocelkaRussia2024-04-10Buckley Miller Wright QUALIFIED10Stephen Shaw
1018Darci H ChuiItaly2024-04-20Morlong Associates NEGOTIATION87Xuxue Feng
1019Nicolas H FlosiJapan2024-04-09Feltz Printing Service NEW65Elwin Sharvill
1020Smith T CaudyBrazil2024-04-08Rangoni Of Florence NEW55Anna Fali
1021Alejandro K WaycottAustralia2024-04-13Feltz Printing Service QUALIFIED4Asiya Javayant
1022Maria S CaudyCanada2024-04-26Chanay, Jeffrey A Esq RENEWAL28Elwin Sharvill
1023Aruna B RutaJapan2024-04-02Buckley Miller Wright NEGOTIATION22Stephen Shaw
1024Emily R SchemmerJapan2024-04-05Feltz Printing Service RENEWAL8Stephen Shaw
1025Alejandro M SchemmerUnited Kingdom2024-04-21Feltz Printing Service NEW17Onyama Limba
1026Cody S OldroydIndia2024-04-21King, Christopher A Esq PROPOSAL34Bernardo Dominic
1027Claire S RulapaughAustralia2024-04-17Morlong Associates NEGOTIATION65Xuxue Feng
1028Munro F CampainJapan2024-04-23Commercial Press QUALIFIED32Ivan Magalhaes
1029Sinclair A NickaIndia2024-04-09Dorl, James J Esq PROPOSAL49Asiya Javayant
1030Chavez A WhobreyBrazil2024-04-03Commercial Press NEGOTIATION22Stephen Shaw
1031Smith Z FigeroaJapan2024-04-07Rousseaux, Michael Esq NEW46Onyama Limba
1032Emily S CaldareraBrazil2024-04-12Feltz Printing Service NEW78Anna Fali
1033Jennifer S PerinFrance2024-04-07Benton, John B Jr QUALIFIED25Ioni Bowcher
1034Kadeem J VenereFrance2024-04-05Feltz Printing Service QUALIFIED80Ioni Bowcher
1035Mayumi V NestleUnited Kingdom2024-04-22Morlong Associates UNQUALIFIED10Bernardo Dominic
1036Jennifer G BriddickCanada2024-04-09Chanay, Jeffrey A Esq PROPOSAL48Elwin Sharvill
1037Kaitlin F RutaCanada2024-04-04Truhlar And Truhlar Attys NEW53Ivan Magalhaes
1038Ashley V FerenczItaly2024-04-22Chemel, James L Cpa RENEWAL9Ivan Magalhaes
1039Leja B CaudyFrance2024-04-09Feiner Bros RENEWAL70Xuxue Feng
1040Kadeem L AmigonArgentina2024-04-02Rousseaux, Michael Esq NEGOTIATION5Ivan Magalhaes
1041Antonio B VocelkaBrazil2024-04-05Rousseaux, Michael Esq UNQUALIFIED99Stephen Shaw
1042Stacey M RulapaughCanada2024-03-31Feltz Printing Service QUALIFIED10Ioni Bowcher
1043Murillo M FerenczGermany2024-04-13King, Christopher A Esq RENEWAL18Ioni Bowcher
1044Sinclair P KuskoSpain2024-04-23Rousseaux, Michael Esq RENEWAL85Onyama Limba
1045Faith C VocelkaArgentina2024-03-31Rousseaux, Michael Esq NEW63Anna Fali
1046Francesco Z RulapaughItaly2024-04-14Chemel, James L Cpa QUALIFIED88Elwin Sharvill
1047Deepesh L RoysterSpain2024-04-11Commercial Press NEW15Amy Elsner
1048Murillo K StensethGermany2024-04-21Benton, John B Jr RENEWAL38Stephen Shaw
1049Wickens W MaletItaly2024-04-25Commercial Press NEW99Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Aruna J GauchoIndiaXuxue Feng RENEWAL
Ricardo Y VocelkaGermanyOnyama Limba NEW
Rodrigues O CampainArgentinaBernardo Dominic QUALIFIED
Ivar M PoquetteArgentinaIvan Magalhaes PROPOSAL
Emily I WaycottJapanAsiya Javayant NEW
Adams C AlbaresItalyBernardo Dominic QUALIFIED
Ashley G GillianFranceStephen Shaw PROPOSAL
Kadeem I DarakjyBrazilAnna Fali PROPOSAL
Arvin I ShinkoCanadaIoni Bowcher UNQUALIFIED
Juan M BriddickRussiaOnyama Limba QUALIFIED
Sinclair V ShinkoGermanyIvan Magalhaes NEGOTIATION
Mayumi M RoysterItalyAsiya Javayant QUALIFIED
Ricardo X AlbaresIndiaElwin Sharvill NEW
Faith Z FerenczItalyOnyama Limba UNQUALIFIED
Tony B WieserFranceOnyama Limba NEGOTIATION
Jennifer Z ShinkoCanadaStephen Shaw NEGOTIATION
Antonio P GarufiJapanAsiya Javayant NEW
Stacey W RoysterIndiaAmy Elsner QUALIFIED
Alejandro X RutaCanadaXuxue Feng PROPOSAL
Costa H GlickCanadaAmy Elsner RENEWAL
Morrow I GlickCanadaXuxue Feng PROPOSAL
Nicolas O CampainIndiaAmy Elsner PROPOSAL
Johnson F IturbideRussiaElwin Sharvill NEW
Smith W NestleGermanyOnyama Limba UNQUALIFIED
Jeanfrancois V StockhamSpainBernardo Dominic UNQUALIFIED
Alejandro H WhobreyFranceElwin Sharvill UNQUALIFIED
Jefferson O DoeGermanyStephen Shaw NEW
David U BriddickFranceXuxue Feng NEGOTIATION
Jennifer F WieserAustraliaOnyama Limba PROPOSAL
Rodrigues A TollnerBrazilStephen Shaw QUALIFIED
Mujtaba P FollerUnited KingdomAmy Elsner NEW
Aditya V InouyeSpainAsiya Javayant NEGOTIATION
Johnson P WhobreyCanadaAnna Fali RENEWAL
Maria J WhobreyCanadaIvan Magalhaes NEW
Mujtaba T DarakjyCanadaElwin Sharvill NEW
Silvio L MaletGermanyAnna Fali NEW
Wickens C GillianSpainXuxue Feng PROPOSAL
Ricardo F OstroskyCanadaIvan Magalhaes NEW
Jefferson L MaletUnited KingdomAsiya Javayant NEGOTIATION
Murillo J MarrierSpainAmy Elsner RENEWAL
Morrow Q OldroydCanadaBernardo Dominic PROPOSAL
Jennifer T VocelkaArgentinaIoni Bowcher RENEWAL
Jefferson K SlusarskiFranceIoni Bowcher RENEWAL
Silvio B PaprockiItalyAmy Elsner QUALIFIED
Leja H MacleadJapanAnna Fali RENEWAL
Sinclair U SlusarskiAustraliaIoni Bowcher NEGOTIATION
Isabel J AlbaresBrazilAmy Elsner PROPOSAL
Isabel R WhobreyGermanyAnna Fali RENEWAL
Stacey A DarakjyGermanyOnyama Limba NEW
Misaki R WaycottRussiaAnna Fali NEGOTIATION
Frozen Columns
Name
Aditya E Foller
Aika S Morasca
Smith O Nicka
Jefferson N Foller
Greenwood V Campain
Maria X Butt
Aika D Venere
Leon M Oldroyd
Mujtaba Y Chui
Jefferson M Rim
Maisha N Marrier
Cody B Maclead
Jones O Marrier
Leon B Stockham
Octavia P Nestle
Maria Y Slusarski
Greenwood I Albares
Aruna G Malet
Jennifer K Amigon
Kaitlin U Nestle
Octavia W Tollner
Darci A Garufi
Misaki F Whobrey
Emily F Wieser
Francesco V Darakjy
Aruna L Ferencz
Deepesh I Glick
David M Rulapaugh
Mujtaba G Paprocki
Alejandro S Malet
Isabel F Wieser
Jennifer H Dilliard
Greenwood K Maclead
Aditya S Oldroyd
Francesco C Stockham
Juan K Glick
Jeanfrancois Z Darakjy
Munro E Darakjy
Leon F Albares
Deepesh S Wieser
Wickens M Amigon
Isabel N Ostrosky
Morrow E Paprocki
Wickens J Kolmetz
Rodrigues S Dilliard
Aruna Y Albares
Aika U Gillian
Leja C Schemmer
Cody L Gaucho
Cody L Flosi
IdCountryDate
1000Germany2024-04-03
1001Australia2024-04-20
1002India2024-04-10
1003Spain2024-04-05
1004Australia2024-04-24
1005Australia2024-04-12
1006Australia2024-04-10
1007Japan2024-04-16
1008Japan2024-04-24
1009Japan2024-04-21
1010Italy2024-04-10
1011Italy2024-04-02
1012United Kingdom2024-04-07
1013Japan2024-04-08
1014India2024-04-15
1015India2024-04-23
1016Japan2024-04-24
1017France2024-04-25
1018Brazil2024-04-14
1019United Kingdom2024-04-10
1020Italy2024-04-08
1021Argentina2024-04-19
1022Argentina2024-04-13
1023Australia2024-04-08
1024Russia2024-04-21
1025Italy2024-04-16
1026United Kingdom2024-04-04
1027France2024-04-17
1028Germany2024-04-08
1029Brazil2024-04-10
1030Argentina2024-04-10
1031Spain2024-04-24
1032Brazil2024-04-05
1033Brazil2024-04-10
1034United Kingdom2024-04-04
1035Germany2024-04-20
1036France2024-04-01
1037Germany2024-04-06
1038India2024-04-02
1039Australia2024-04-17
1040France2024-04-06
1041India2024-04-13
1042Australia2024-04-03
1043France2024-04-18
1044India2024-04-13
1045France2024-04-22
1046Spain2024-04-11
1047Japan2024-04-02
1048United Kingdom2024-04-24
1049Brazil2024-04-15

On-Demand Data

NameIdCountryDate
Antonio T Kolmetz1000Japan2024-03-31
Mayumi T Figeroa1001Germany2024-04-12
Octavia I Stockham1002Russia2024-04-14
Cody H Perin1003Spain2024-04-03
Ricardo T Nicka1004Japan2024-04-21
Jeanfrancois K Amigon1005Argentina2024-03-28
Juan Z Garufi1006Argentina2024-04-10
Salvatore P Vocelka1007Australia2024-04-23
Nicolas V Stenseth1008France2024-04-01
Jeanfrancois V Bolognia1009Brazil2024-04-03
Ashley G Dilliard1010Japan2024-04-20
Jeanfrancois U Inouye1011Australia2024-04-14
Ashley J Chui1012United Kingdom2024-04-03
Nicolas V Glick1013Argentina2024-04-26
Costa T Iturbide1014Argentina2024-04-02
Chavez W Royster1015Germany2024-03-28
Aruna F Inouye1016Germany2024-04-04
Aika M Flosi1017Spain2024-03-29
Tony Y Slusarski1018Japan2024-04-23
Silvio O Venere1019Argentina2024-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson V ChuiJapanOnyama Limba NEGOTIATION
Octavia Q StensethGermanyIoni Bowcher NEGOTIATION
Maria Y MaletSpainXuxue Feng QUALIFIED
Misaki H RimUnited KingdomElwin Sharvill UNQUALIFIED
Costa I RutaRussiaBernardo Dominic RENEWAL
Jefferson H FigeroaItalyAmy Elsner RENEWAL
Emily Y DilliardUnited KingdomIoni Bowcher RENEWAL
Jones K SlusarskiBrazilAsiya Javayant NEW
Deepesh W CaudyBrazilAmy Elsner NEW
Aika Q FigeroaSpainOnyama Limba QUALIFIED
Francesco N BowleyFranceOnyama Limba NEGOTIATION
Morrow H PoquetteRussiaElwin Sharvill PROPOSAL
David C PerinGermanyIvan Magalhaes QUALIFIED
Salvatore X ShinkoBrazilAnna Fali NEGOTIATION
Alejandro C RulapaughFranceAnna Fali NEGOTIATION
Octavia W NickaArgentinaIvan Magalhaes RENEWAL
Rodrigues V VenereGermanyAsiya Javayant NEW
Maisha T RoysterAustraliaAsiya Javayant RENEWAL
Emily P GlickAustraliaAmy Elsner RENEWAL
Julie V ShinkoIndiaBernardo Dominic NEW
Misaki N AlbaresIndiaXuxue Feng NEW
Tony M GauchoIndiaAsiya Javayant QUALIFIED
Mujtaba S PerinCanadaAsiya Javayant PROPOSAL
Clifford Z MaletUnited KingdomIvan Magalhaes RENEWAL
Ricardo A SergiUnited KingdomIvan Magalhaes NEW
Alejandro K VenereIndiaAmy Elsner PROPOSAL
Maisha E MarrierBrazilOnyama Limba QUALIFIED
Isabel E KolmetzCanadaBernardo Dominic NEW
Isabel A CaudyGermanyElwin Sharvill NEGOTIATION
Murillo F VocelkaGermanyStephen Shaw QUALIFIED
David D CampainGermanyIoni Bowcher UNQUALIFIED
Alejandro Z RoysterRussiaAnna Fali PROPOSAL
Kadeem R VenereGermanyAsiya Javayant QUALIFIED
Aruna C ChuiUnited KingdomAsiya Javayant RENEWAL
Morrow O BowleyArgentinaAnna Fali NEGOTIATION
Cody V MarrierUnited KingdomAsiya Javayant RENEWAL
Octavia E MaletIndiaAnna Fali NEGOTIATION
Morrow F MacleadSpainAmy Elsner PROPOSAL
Nicolas L VenereUnited KingdomOnyama Limba NEW
Izzy G VocelkaFranceElwin Sharvill 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>