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
Faith L MarrierGermanyBernardo Dominic NEGOTIATION
Adams M DarakjyArgentinaIvan Magalhaes PROPOSAL
James A TollnerRussiaIoni Bowcher PROPOSAL
Kaitlin C GarufiAustraliaIvan Magalhaes PROPOSAL
Clifford Y GlickAustraliaIvan Magalhaes NEGOTIATION
Adams H GillianItalyAmy Elsner UNQUALIFIED
Jeanfrancois L GarufiAustraliaAnna Fali QUALIFIED
Izzy Q RimUnited KingdomXuxue Feng UNQUALIFIED
Jefferson N FollerBrazilStephen Shaw NEW
Tony L ShinkoItalyAsiya Javayant UNQUALIFIED
Stacey K SchemmerIndiaOnyama Limba PROPOSAL
Kaitlin G ChuiSpainXuxue Feng PROPOSAL
Misaki T WhobreyUnited KingdomAnna Fali NEW
Tony A InouyeRussiaElwin Sharvill QUALIFIED
Aruna V VenereIndiaAsiya Javayant RENEWAL
Ivar C WieserIndiaIoni Bowcher NEGOTIATION
Johnson Q GarufiUnited KingdomXuxue Feng NEGOTIATION
Misaki C BriddickArgentinaElwin Sharvill UNQUALIFIED
Jeanfrancois M RutaUnited KingdomIoni Bowcher QUALIFIED
Isabel U AmigonArgentinaXuxue Feng PROPOSAL
Murillo I StockhamIndiaXuxue Feng UNQUALIFIED
Aruna X MarrierIndiaAmy Elsner NEGOTIATION
Rodrigues X ShinkoIndiaIvan Magalhaes NEW
Murillo J FollerArgentinaAnna Fali NEW
Greenwood N GauchoIndiaOnyama Limba RENEWAL
Nicolas R PaprockiRussiaAsiya Javayant UNQUALIFIED
Emily H CaldareraBrazilAsiya Javayant NEGOTIATION
Chavez M OstroskyArgentinaStephen Shaw NEW
Isabel L KolmetzJapanXuxue Feng NEW
Rodrigues G GillianAustraliaIoni Bowcher PROPOSAL
Jennifer P KolmetzGermanyAmy Elsner UNQUALIFIED
Alejandro D OldroydFranceElwin Sharvill NEW
Chavez J NickaIndiaBernardo Dominic PROPOSAL
Jefferson Y CaudyGermanyAmy Elsner NEGOTIATION
Silvio B GlickItalyAsiya Javayant NEGOTIATION
Kaitlin C FerenczCanadaStephen Shaw NEW
Julie X TollnerFranceIvan Magalhaes UNQUALIFIED
Clifford F CaudyGermanyBernardo Dominic NEW
Aika Q MorascaJapanBernardo Dominic RENEWAL
Clifford O DarakjyArgentinaAmy Elsner NEGOTIATION
Octavia O IturbideIndiaElwin Sharvill NEGOTIATION
Jones B GauchoGermanyAmy Elsner NEGOTIATION
Juan R DoeUnited KingdomIvan Magalhaes PROPOSAL
Mayumi W RulapaughBrazilAnna Fali RENEWAL
Jeanfrancois I StensethGermanyElwin Sharvill NEW
Claire Q GlickAustraliaAsiya Javayant NEW
Faith J KolmetzArgentinaBernardo Dominic UNQUALIFIED
Costa K InouyeItalyAnna Fali NEW
Clifford L MarrierCanadaXuxue Feng QUALIFIED
Tony E SergiRussiaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Octavia U SlusarskiBrazilAmy Elsner NEW
Maisha J BologniaGermanyOnyama Limba UNQUALIFIED
Faith N RoysterSpainAnna Fali RENEWAL
Isabel F TollnerGermanyElwin Sharvill NEGOTIATION
Aruna R FerenczGermanyOnyama Limba NEGOTIATION
Kaitlin V VocelkaCanadaAnna Fali QUALIFIED
Leja U ButtItalyAnna Fali NEW
Emily J OldroydSpainStephen Shaw NEW
Tony M BologniaUnited KingdomXuxue Feng PROPOSAL
Aditya I FlosiSpainAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Darci P ChuiAustralia2024-04-29Chanay, Jeffrey A Esq PROPOSAL34Ioni Bowcher
1001Maria E PoquetteBrazil2024-04-27Rangoni Of Florence QUALIFIED23Ioni Bowcher
1002Leja R GarufiUnited Kingdom2024-04-03Chemel, James L Cpa RENEWAL94Xuxue Feng
1003Aditya Q GarufiRussia2024-04-24Chapman, Ross E Esq RENEWAL61Elwin Sharvill
1004Kadeem C GillianItaly2024-04-27Chemel, James L Cpa RENEWAL72Onyama Limba
1005Leja X VenereUnited Kingdom2024-04-16Buckley Miller Wright NEGOTIATION91Ivan Magalhaes
1006Cody S MaletIndia2024-04-19King, Christopher A Esq QUALIFIED81Bernardo Dominic
1007Nicolas Z DarakjyJapan2024-04-21Feltz Printing Service NEGOTIATION85Elwin Sharvill
1008Rodrigues D CaldareraAustralia2024-04-19Chanay, Jeffrey A Esq QUALIFIED44Xuxue Feng
1009Aruna B OldroydArgentina2024-04-24Chemel, James L Cpa QUALIFIED96Ivan Magalhaes
1010Darci K FerenczCanada2024-04-25Morlong Associates NEGOTIATION66Ivan Magalhaes
1011Munro K RoysterItaly2024-05-01Truhlar And Truhlar Attys RENEWAL84Onyama Limba
1012Clifford Y ChuiBrazil2024-04-26Morlong Associates PROPOSAL17Ivan Magalhaes
1013Isabel X AmigonSpain2024-04-10King, Christopher A Esq QUALIFIED23Amy Elsner
1014Nicolas W CampainArgentina2024-04-09Commercial Press RENEWAL15Anna Fali
1015Maisha B BowleyUnited Kingdom2024-04-21King, Christopher A Esq QUALIFIED13Ivan Magalhaes
1016Ricardo K CaldareraBrazil2024-04-27Chanay, Jeffrey A Esq RENEWAL15Ioni Bowcher
1017Francesco W SchemmerJapan2024-04-25Printing Dimensions QUALIFIED99Amy Elsner
1018Stacey M SlusarskiCanada2024-04-26Printing Dimensions RENEWAL70Ivan Magalhaes
1019Mayumi J CaudyRussia2024-04-20Feltz Printing Service UNQUALIFIED98Xuxue Feng
1020Deepesh C FlosiSpain2024-04-09Feiner Bros PROPOSAL3Anna Fali
1021Octavia N MarrierBrazil2024-04-25Rousseaux, Michael Esq PROPOSAL56Xuxue Feng
1022Rodrigues A StockhamItaly2024-04-24Chanay, Jeffrey A Esq UNQUALIFIED6Ioni Bowcher
1023Morrow Z SchemmerIndia2024-04-04Morlong Associates QUALIFIED90Ivan Magalhaes
1024Munro K BologniaJapan2024-04-30Buckley Miller Wright RENEWAL9Stephen Shaw
1025Cody M BologniaJapan2024-04-10Chapman, Ross E Esq UNQUALIFIED12Onyama Limba
1026James H DoeAustralia2024-04-08Morlong Associates PROPOSAL80Ioni Bowcher
1027Jennifer Y SaylorsFrance2024-05-01Morlong Associates PROPOSAL67Xuxue Feng
1028Clifford Z RulapaughJapan2024-04-18Rousseaux, Michael Esq QUALIFIED18Asiya Javayant
1029Jeanfrancois Z FerenczItaly2024-04-07Morlong Associates UNQUALIFIED55Xuxue Feng
1030Darci I RulapaughFrance2024-04-25Chapman, Ross E Esq UNQUALIFIED92Stephen Shaw
1031Darci I GarufiFrance2024-04-18Chanay, Jeffrey A Esq RENEWAL75Anna Fali
1032Sinclair A SergiAustralia2024-04-02Rangoni Of Florence RENEWAL72Ioni Bowcher
1033Izzy G AmigonAustralia2024-04-22Buckley Miller Wright NEW28Amy Elsner
1034Julie S RimCanada2024-05-01Chanay, Jeffrey A Esq NEW30Onyama Limba
1035Smith D RulapaughItaly2024-04-12Feltz Printing Service PROPOSAL21Anna Fali
1036Maisha K CaudyRussia2024-04-20Rousseaux, Michael Esq PROPOSAL80Amy Elsner
1037Deepesh T MaletArgentina2024-04-21Feiner Bros RENEWAL55Stephen Shaw
1038Darci M FlosiFrance2024-04-05King, Christopher A Esq QUALIFIED95Stephen Shaw
1039Alejandro V WhobreyCanada2024-04-24Rousseaux, Michael Esq PROPOSAL56Ioni Bowcher
1040Leja X PoquetteAustralia2024-04-25Rangoni Of Florence NEGOTIATION64Amy Elsner
1041Murillo L MaletFrance2024-04-28Feltz Printing Service PROPOSAL55Onyama Limba
1042Alejandro B CaldareraSpain2024-04-16King, Christopher A Esq PROPOSAL52Stephen Shaw
1043Rodrigues M FlosiFrance2024-04-06Chanay, Jeffrey A Esq UNQUALIFIED28Anna Fali
1044Tony Y SlusarskiBrazil2024-04-23King, Christopher A Esq UNQUALIFIED5Anna Fali
1045Salvatore Z ShinkoUnited Kingdom2024-04-15Rousseaux, Michael Esq UNQUALIFIED94Onyama Limba
1046Jeanfrancois A StensethArgentina2024-04-30Dorl, James J Esq QUALIFIED5Elwin Sharvill
1047Jeanfrancois W DilliardGermany2024-04-21Morlong Associates UNQUALIFIED88Xuxue Feng
1048Francesco O PaprockiIndia2024-04-10Chanay, Jeffrey A Esq NEGOTIATION45Ivan Magalhaes
1049James H VenereUnited Kingdom2024-05-01Printing Dimensions PROPOSAL55Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Adams C DoeRussiaAmy Elsner RENEWAL
Smith U RimUnited KingdomIoni Bowcher RENEWAL
Emily B GlickRussiaBernardo Dominic PROPOSAL
Mayumi S KolmetzItalyBernardo Dominic PROPOSAL
Faith U StensethBrazilElwin Sharvill NEGOTIATION
Deepesh T OldroydCanadaIoni Bowcher NEW
Nicolas S VenereRussiaAmy Elsner RENEWAL
Julie O RimUnited KingdomAmy Elsner PROPOSAL
Julie C DoeItalyOnyama Limba UNQUALIFIED
Costa K FlosiCanadaAmy Elsner QUALIFIED
Emily L NestleGermanyAsiya Javayant QUALIFIED
Nicolas R ShinkoGermanyElwin Sharvill NEGOTIATION
Isabel P MorascaItalyAmy Elsner QUALIFIED
Ivar I GlickSpainIoni Bowcher NEGOTIATION
Munro K PaprockiAustraliaOnyama Limba PROPOSAL
Jeanfrancois U RutaArgentinaAmy Elsner RENEWAL
Silvio O SergiJapanOnyama Limba NEW
Ivar Q GlickItalyElwin Sharvill RENEWAL
Ricardo V KuskoItalyIvan Magalhaes NEW
Mayumi W RutaUnited KingdomAnna Fali RENEWAL
Costa L NickaArgentinaStephen Shaw NEW
Antonio W SergiItalyXuxue Feng PROPOSAL
Misaki B CampainRussiaStephen Shaw QUALIFIED
Sinclair G FollerAustraliaAnna Fali NEGOTIATION
Adams B ShinkoFranceElwin Sharvill NEGOTIATION
Mujtaba X WieserGermanyAsiya Javayant QUALIFIED
Nicolas O VenereAustraliaAmy Elsner PROPOSAL
Costa T BologniaUnited KingdomIvan Magalhaes NEGOTIATION
Mujtaba C RulapaughJapanElwin Sharvill PROPOSAL
Leon P ButtRussiaAmy Elsner NEGOTIATION
Maria Q GarufiBrazilIoni Bowcher PROPOSAL
Leon H VenereBrazilOnyama Limba NEGOTIATION
James D TollnerUnited KingdomElwin Sharvill NEGOTIATION
Aruna W RimArgentinaAmy Elsner PROPOSAL
Darci J IturbideFranceAmy Elsner QUALIFIED
Stacey B GauchoAustraliaElwin Sharvill QUALIFIED
Ashley J NestleJapanElwin Sharvill RENEWAL
Claire M SlusarskiRussiaAmy Elsner UNQUALIFIED
Francesco T PaprockiArgentinaElwin Sharvill NEGOTIATION
Silvio B RimItalyAnna Fali QUALIFIED
Ashley A DoeRussiaBernardo Dominic QUALIFIED
Munro Y RoysterJapanOnyama Limba RENEWAL
Deepesh W MaletFranceIvan Magalhaes QUALIFIED
Smith B SergiRussiaStephen Shaw NEW
Jeanfrancois P PerinCanadaAsiya Javayant NEW
Francesco W DarakjyCanadaAmy Elsner RENEWAL
Alejandro C InouyeAustraliaBernardo Dominic RENEWAL
Mayumi D AlbaresItalyAnna Fali QUALIFIED
Misaki G BriddickRussiaAmy Elsner NEGOTIATION
Alejandro K MaletSpainIvan Magalhaes NEW
Frozen Columns
Name
Ivar L Malet
Smith U Kolmetz
Silvio R Campain
Jennifer H Foller
Jefferson Q Ruta
Juan W Bolognia
Jennifer O Rim
Murillo L Tollner
Claire L Amigon
Leja V Doe
Silvio X Paprocki
Alejandro R Caldarera
Arvin E Ruta
Aditya Y Nicka
Chavez F Whobrey
Jeanfrancois O Bowley
Claire R Rim
Jennifer D Nestle
Costa W Shinko
Antonio D Slusarski
Jeanfrancois S Amigon
Misaki Z Briddick
Julie Z Campain
Izzy E Slusarski
Darci M Rim
Morrow H Chui
Greenwood A Caldarera
Ivar B Kusko
Murillo S Kusko
Claire Y Rim
Izzy D Royster
Costa Y Ruta
Darci X Perin
Clifford K Ruta
Faith U Waycott
Leja N Figeroa
Clifford Y Vocelka
Morrow H Darakjy
Ivar I Bowley
Clifford C Albares
Ashley A Doe
Ricardo H Rulapaugh
Maisha Q Maclead
Jennifer A Caudy
Sinclair P Royster
Darci O Glick
Aruna X Rim
Jefferson U Glick
Ivar U Albares
Jeanfrancois V Chui
IdCountryDate
1000Australia2024-04-30
1001Argentina2024-04-05
1002Brazil2024-04-22
1003India2024-04-10
1004Germany2024-04-11
1005India2024-04-06
1006India2024-04-23
1007Canada2024-04-22
1008Germany2024-04-24
1009Italy2024-04-12
1010Argentina2024-04-18
1011Germany2024-04-30
1012Brazil2024-04-05
1013Japan2024-04-28
1014Canada2024-04-17
1015Brazil2024-04-12
1016Spain2024-04-25
1017Argentina2024-04-27
1018Germany2024-04-24
1019Italy2024-04-30
1020United Kingdom2024-04-28
1021Japan2024-04-08
1022Spain2024-04-12
1023Italy2024-04-29
1024United Kingdom2024-04-10
1025France2024-04-29
1026Canada2024-04-09
1027United Kingdom2024-05-01
1028Brazil2024-04-05
1029Spain2024-04-06
1030Spain2024-04-25
1031Canada2024-04-30
1032Spain2024-04-15
1033Italy2024-04-24
1034Spain2024-04-15
1035Italy2024-04-14
1036Germany2024-04-29
1037Spain2024-04-19
1038Spain2024-04-16
1039Russia2024-04-07
1040Russia2024-04-09
1041Argentina2024-04-06
1042United Kingdom2024-04-27
1043Spain2024-04-22
1044Canada2024-04-29
1045Brazil2024-04-08
1046United Kingdom2024-04-15
1047Australia2024-04-03
1048Canada2024-04-06
1049France2024-04-03

On-Demand Data

NameIdCountryDate
Aditya A Whobrey1000Australia2024-04-12
Tony H Bowley1001Argentina2024-04-04
Mayumi I Tollner1002Italy2024-04-11
Isabel D Figeroa1003Australia2024-04-19
Darci U Iturbide1004Canada2024-04-23
Maisha F Flosi1005Brazil2024-04-06
Mujtaba U Stenseth1006Argentina2024-04-24
Rodrigues D Campain1007United Kingdom2024-04-24
Misaki Z Shinko1008Australia2024-05-01
Juan A Doe1009Japan2024-04-27
Aditya N Darakjy1010Australia2024-04-06
Salvatore T Chui1011France2024-04-18
Silvio U Butt1012France2024-04-20
Misaki R Rim1013India2024-04-25
Mayumi D Vocelka1014Brazil2024-04-28
Greenwood N Oldroyd1015India2024-04-04
Jones V Schemmer1016Canada2024-04-19
Kadeem A Gaucho1017Italy2024-04-19
Jennifer T Albares1018Spain2024-04-20
Mayumi M Kusko1019United Kingdom2024-05-01
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo H OstroskySpainStephen Shaw QUALIFIED
Maria R BowleyRussiaIvan Magalhaes NEGOTIATION
Octavia S StensethSpainAmy Elsner NEW
Claire C WhobreyItalyOnyama Limba QUALIFIED
Tony O AlbaresUnited KingdomXuxue Feng NEGOTIATION
Kaitlin V WieserAustraliaAsiya Javayant PROPOSAL
Mujtaba U GauchoAustraliaXuxue Feng NEGOTIATION
Jennifer A MarrierGermanyIoni Bowcher PROPOSAL
David Q InouyeSpainBernardo Dominic NEW
Munro G NestleRussiaAsiya Javayant RENEWAL
Cody N StensethFranceOnyama Limba NEGOTIATION
Aika N FlosiCanadaIoni Bowcher PROPOSAL
Munro V FollerCanadaBernardo Dominic NEGOTIATION
Jennifer I NickaAustraliaAnna Fali NEGOTIATION
Tony T SergiFranceStephen Shaw NEGOTIATION
Deepesh J GillianAustraliaElwin Sharvill PROPOSAL
Isabel W AmigonAustraliaStephen Shaw NEW
Arvin C SaylorsAustraliaAsiya Javayant NEW
Maria Q CaldareraItalyAsiya Javayant PROPOSAL
Cody V PaprockiFranceXuxue Feng PROPOSAL
Octavia M MacleadGermanyOnyama Limba NEGOTIATION
Kaitlin O SaylorsRussiaAnna Fali NEW
Kadeem I MorascaArgentinaOnyama Limba PROPOSAL
Munro C InouyeBrazilXuxue Feng RENEWAL
Ivar U GarufiGermanyBernardo Dominic RENEWAL
Julie A BowleyItalyIvan Magalhaes PROPOSAL
David R OstroskyItalyAmy Elsner NEW
Julie I MacleadSpainStephen Shaw NEW
Greenwood N WieserGermanyBernardo Dominic NEW
Arvin O FigeroaAustraliaXuxue Feng NEGOTIATION
Aditya I MarrierUnited KingdomAsiya Javayant NEW
Misaki P CaudyJapanElwin Sharvill NEW
Maria Q GarufiSpainIvan Magalhaes NEW
Wickens X OldroydUnited KingdomXuxue Feng QUALIFIED
Tony X DarakjyRussiaElwin Sharvill UNQUALIFIED
Darci C FigeroaIndiaAnna Fali QUALIFIED
Maria C NestleUnited KingdomStephen Shaw NEGOTIATION
Stacey E BowleyFranceAnna Fali UNQUALIFIED
Aruna U CaudySpainAnna Fali NEW
Silvio H VenereGermanyIvan Magalhaes 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>