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
Silvio E CaudyGermanyAmy Elsner PROPOSAL
Maisha X ButtUnited KingdomStephen Shaw RENEWAL
Claire C BologniaBrazilOnyama Limba NEW
Aditya A BologniaSpainAmy Elsner NEW
Antonio W GauchoGermanyOnyama Limba UNQUALIFIED
Chavez W CampainItalyAnna Fali QUALIFIED
Tony B NickaSpainBernardo Dominic UNQUALIFIED
Octavia C RimAustraliaStephen Shaw PROPOSAL
Ricardo D TollnerSpainStephen Shaw RENEWAL
Silvio I VocelkaBrazilAnna Fali NEGOTIATION
Rodrigues W SergiGermanyOnyama Limba NEGOTIATION
Maisha W WhobreySpainElwin Sharvill PROPOSAL
Chavez G MarrierJapanBernardo Dominic NEGOTIATION
Salvatore U PerinItalyStephen Shaw PROPOSAL
Francesco W SlusarskiGermanyStephen Shaw PROPOSAL
Mayumi T PerinItalyOnyama Limba PROPOSAL
Octavia C DilliardSpainElwin Sharvill NEW
Alejandro N GlickRussiaIvan Magalhaes QUALIFIED
Maisha C WhobreyAustraliaBernardo Dominic PROPOSAL
Mayumi H PerinCanadaStephen Shaw PROPOSAL
Ivar F NestleGermanyAmy Elsner UNQUALIFIED
Alejandro N ChuiSpainIoni Bowcher NEGOTIATION
Adams O ShinkoGermanyBernardo Dominic PROPOSAL
Munro K GlickArgentinaElwin Sharvill PROPOSAL
Deepesh O RimSpainStephen Shaw UNQUALIFIED
Izzy Z MaletRussiaIoni Bowcher RENEWAL
Misaki L ChuiCanadaAsiya Javayant NEW
Arvin V SergiRussiaXuxue Feng NEGOTIATION
Rodrigues A DarakjyIndiaAmy Elsner QUALIFIED
Aditya Y GauchoUnited KingdomBernardo Dominic NEW
Aruna W WaycottItalyOnyama Limba RENEWAL
Alejandro J WaycottArgentinaOnyama Limba NEGOTIATION
Darci Z StensethCanadaBernardo Dominic UNQUALIFIED
Alejandro R RimUnited KingdomOnyama Limba NEW
Julie D ShinkoFranceBernardo Dominic NEGOTIATION
Stacey K KuskoUnited KingdomAmy Elsner UNQUALIFIED
Maria R AlbaresUnited KingdomIvan Magalhaes NEGOTIATION
Aika M MarrierArgentinaStephen Shaw QUALIFIED
Maisha A WaycottAustraliaOnyama Limba NEGOTIATION
Claire M IturbideAustraliaXuxue Feng RENEWAL
Jennifer N DilliardArgentinaIoni Bowcher NEGOTIATION
Antonio T MaletSpainAsiya Javayant QUALIFIED
Darci J PerinSpainAsiya Javayant UNQUALIFIED
Emily U PerinFranceAmy Elsner QUALIFIED
Antonio O CampainIndiaBernardo Dominic RENEWAL
Octavia G BowleyBrazilAsiya Javayant NEGOTIATION
Murillo H MorascaFranceStephen Shaw UNQUALIFIED
Jones N SergiUnited KingdomBernardo Dominic PROPOSAL
Darci W WaycottArgentinaIoni Bowcher NEGOTIATION
Smith G NickaBrazilElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues O BologniaFranceBernardo Dominic NEW
Darci L ChuiJapanStephen Shaw PROPOSAL
Leja N VocelkaUnited KingdomIvan Magalhaes QUALIFIED
Morrow I GauchoIndiaStephen Shaw NEGOTIATION
Murillo N NickaItalyIoni Bowcher RENEWAL
Chavez D StockhamBrazilElwin Sharvill RENEWAL
Mujtaba G IturbideIndiaAnna Fali RENEWAL
Arvin D BologniaGermanyAmy Elsner NEW
Stacey Q BriddickUnited KingdomBernardo Dominic NEGOTIATION
Deepesh Z TollnerFranceAsiya Javayant UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Emily B ButtJapan2024-03-06Dorl, James J Esq NEGOTIATION67Bernardo Dominic
1001James D SaylorsItaly2024-02-24Chanay, Jeffrey A Esq UNQUALIFIED15Bernardo Dominic
1002Isabel K NickaCanada2024-03-09Truhlar And Truhlar Attys PROPOSAL24Ivan Magalhaes
1003Smith Q RoysterItaly2024-03-17Rangoni Of Florence UNQUALIFIED19Bernardo Dominic
1004Jeanfrancois C NickaBrazil2024-02-26Rousseaux, Michael Esq NEW50Bernardo Dominic
1005Ricardo A AlbaresSpain2024-02-20Feiner Bros RENEWAL85Ioni Bowcher
1006Greenwood M MarrierBrazil2024-03-17Printing Dimensions NEW2Anna Fali
1007Antonio B VenereCanada2024-03-09Chemel, James L Cpa UNQUALIFIED76Onyama Limba
1008Aruna D RutaArgentina2024-03-17Morlong Associates NEGOTIATION94Stephen Shaw
1009Smith L MarrierRussia2024-03-18Truhlar And Truhlar Attys UNQUALIFIED83Onyama Limba
1010Mayumi G GlickJapan2024-02-28King, Christopher A Esq RENEWAL72Anna Fali
1011Murillo R WieserRussia2024-03-14Chanay, Jeffrey A Esq NEGOTIATION52Anna Fali
1012Morrow S SchemmerArgentina2024-03-10Dorl, James J Esq NEW68Stephen Shaw
1013Claire N RimSpain2024-02-25Truhlar And Truhlar Attys NEW22Onyama Limba
1014Deepesh S ShinkoArgentina2024-03-08Feltz Printing Service RENEWAL51Amy Elsner
1015Deepesh V FigeroaCanada2024-03-05Chanay, Jeffrey A Esq UNQUALIFIED80Ioni Bowcher
1016Alejandro F StensethAustralia2024-03-01Feiner Bros NEGOTIATION37Anna Fali
1017Faith M BowleyRussia2024-03-12Feiner Bros NEGOTIATION3Amy Elsner
1018Wickens W WieserRussia2024-02-20Feiner Bros NEW33Xuxue Feng
1019Aruna K ShinkoRussia2024-02-18Morlong Associates QUALIFIED85Ioni Bowcher
1020Cody X ButtAustralia2024-02-18Commercial Press NEGOTIATION98Ivan Magalhaes
1021Darci K DoeFrance2024-03-09Rousseaux, Michael Esq PROPOSAL7Asiya Javayant
1022Costa D OldroydIndia2024-02-19Feltz Printing Service RENEWAL39Stephen Shaw
1023Sinclair N StensethBrazil2024-03-09Rangoni Of Florence NEW86Ioni Bowcher
1024Faith W ShinkoJapan2024-03-09Benton, John B Jr PROPOSAL13Amy Elsner
1025David K SaylorsUnited Kingdom2024-02-22Dorl, James J Esq PROPOSAL10Ioni Bowcher
1026Leon R BowleyArgentina2024-03-13Chanay, Jeffrey A Esq NEGOTIATION26Elwin Sharvill
1027Maisha Y RimItaly2024-02-25Printing Dimensions NEW50Bernardo Dominic
1028Faith H MacleadIndia2024-02-19Dorl, James J Esq NEW99Ioni Bowcher
1029Salvatore Z DarakjyUnited Kingdom2024-03-09King, Christopher A Esq PROPOSAL54Stephen Shaw
1030Munro I DilliardGermany2024-02-28Rangoni Of Florence NEGOTIATION35Stephen Shaw
1031Alejandro J FlosiArgentina2024-02-23Benton, John B Jr NEW27Xuxue Feng
1032Aika P MarrierSpain2024-03-02Rangoni Of Florence UNQUALIFIED13Anna Fali
1033Costa G InouyeUnited Kingdom2024-03-03Benton, John B Jr PROPOSAL53Bernardo Dominic
1034Arvin W CaldareraCanada2024-03-11Chapman, Ross E Esq QUALIFIED5Amy Elsner
1035James T SergiSpain2024-02-20Printing Dimensions UNQUALIFIED36Amy Elsner
1036Misaki K VocelkaRussia2024-02-20Buckley Miller Wright QUALIFIED65Stephen Shaw
1037Costa S OstroskyUnited Kingdom2024-03-08King, Christopher A Esq UNQUALIFIED6Bernardo Dominic
1038Maria G MaletBrazil2024-03-15Chemel, James L Cpa PROPOSAL61Asiya Javayant
1039Faith J AmigonJapan2024-03-14Commercial Press QUALIFIED82Elwin Sharvill
1040Adams Y GarufiArgentina2024-02-25Commercial Press QUALIFIED0Stephen Shaw
1041Jennifer H VocelkaItaly2024-02-23Buckley Miller Wright NEGOTIATION32Asiya Javayant
1042Silvio I FerenczCanada2024-02-23King, Christopher A Esq UNQUALIFIED86Bernardo Dominic
1043Rodrigues C GarufiSpain2024-03-07Chanay, Jeffrey A Esq RENEWAL42Anna Fali
1044Octavia W FlosiBrazil2024-03-18Buckley Miller Wright NEW64Ivan Magalhaes
1045Jones E CaudyUnited Kingdom2024-03-03Chanay, Jeffrey A Esq RENEWAL39Onyama Limba
1046Chavez E MarrierArgentina2024-03-07Feltz Printing Service NEGOTIATION49Elwin Sharvill
1047Maria X SlusarskiArgentina2024-03-03Printing Dimensions RENEWAL65Bernardo Dominic
1048Juan X BowleyBrazil2024-02-26Chemel, James L Cpa NEW41Bernardo Dominic
1049Ivar U WaycottBrazil2024-03-14Chanay, Jeffrey A Esq NEGOTIATION50Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Greenwood I DilliardGermanyXuxue Feng RENEWAL
Sinclair I StensethArgentinaElwin Sharvill NEGOTIATION
Munro C BriddickAustraliaBernardo Dominic PROPOSAL
Faith C GlickRussiaXuxue Feng QUALIFIED
Johnson G ChuiAustraliaBernardo Dominic QUALIFIED
Cody V NickaJapanAnna Fali NEGOTIATION
Cody E DarakjySpainAsiya Javayant PROPOSAL
Octavia P SlusarskiArgentinaIoni Bowcher RENEWAL
Munro L DilliardBrazilElwin Sharvill NEGOTIATION
Leja P ChuiSpainAmy Elsner QUALIFIED
Alejandro R FerenczUnited KingdomBernardo Dominic NEGOTIATION
Leja M OldroydSpainXuxue Feng QUALIFIED
Claire H KolmetzArgentinaIoni Bowcher PROPOSAL
Stacey J PaprockiUnited KingdomIvan Magalhaes RENEWAL
Isabel L SchemmerItalyAnna Fali NEW
Sinclair F NickaUnited KingdomOnyama Limba PROPOSAL
Munro X MorascaFranceAnna Fali RENEWAL
Morrow K RutaGermanyAmy Elsner UNQUALIFIED
Izzy H RulapaughIndiaAsiya Javayant RENEWAL
Costa I CaldareraArgentinaAmy Elsner QUALIFIED
Stacey U BowleyCanadaAnna Fali RENEWAL
Ivar W AmigonJapanElwin Sharvill RENEWAL
Izzy Q ButtArgentinaXuxue Feng RENEWAL
Adams P TollnerSpainIvan Magalhaes NEGOTIATION
Salvatore Y StockhamSpainIvan Magalhaes NEGOTIATION
Mujtaba S RimRussiaXuxue Feng RENEWAL
Munro S ShinkoAustraliaAnna Fali PROPOSAL
Mayumi A CampainCanadaStephen Shaw UNQUALIFIED
Kaitlin C InouyeUnited KingdomAnna Fali NEW
Francesco H SergiUnited KingdomXuxue Feng NEGOTIATION
Izzy C CaldareraIndiaAmy Elsner NEW
Claire O DilliardCanadaIoni Bowcher PROPOSAL
Misaki G FerenczCanadaAsiya Javayant PROPOSAL
Kaitlin P WaycottSpainXuxue Feng RENEWAL
Cody W MaletBrazilAmy Elsner NEGOTIATION
Misaki R ChuiSpainXuxue Feng PROPOSAL
Octavia W PoquetteUnited KingdomAnna Fali UNQUALIFIED
Jefferson A MaletIndiaOnyama Limba UNQUALIFIED
Misaki U DoeArgentinaOnyama Limba RENEWAL
Adams V MorascaAustraliaStephen Shaw PROPOSAL
Ivar F ChuiAustraliaBernardo Dominic NEGOTIATION
Silvio L GillianArgentinaIoni Bowcher PROPOSAL
Adams L FerenczCanadaBernardo Dominic QUALIFIED
Morrow Q KuskoCanadaIoni Bowcher NEW
Misaki B OldroydAustraliaBernardo Dominic NEW
Costa W WaycottRussiaAmy Elsner NEW
Maria O FigeroaItalyOnyama Limba QUALIFIED
Morrow C FerenczGermanyElwin Sharvill PROPOSAL
Sinclair V VocelkaUnited KingdomAsiya Javayant PROPOSAL
Silvio C MacleadBrazilBernardo Dominic NEGOTIATION
Frozen Columns
Name
Ivar F Briddick
Faith F Butt
Salvatore Y Campain
Leja V Tollner
Francesco I Schemmer
Octavia U Foller
Rodrigues Y Waycott
Munro J Amigon
Aditya M Campain
Silvio O Shinko
Smith I Schemmer
Kaitlin C Nicka
Cody P Iturbide
Sinclair F Gaucho
Silvio B Shinko
Octavia H Royster
Misaki D Ferencz
Kadeem E Inouye
Kaitlin C Darakjy
Clifford E Marrier
Arvin D Nestle
David R Whobrey
Ashley Y Albares
Isabel A Waycott
Darci G Caldarera
Leja N Maclead
Costa D Kolmetz
Cody E Shinko
Jones G Waycott
Murillo Q Flosi
Julie Q Saylors
Aruna R Marrier
Johnson O Marrier
Isabel S Stenseth
Ricardo V Nestle
Isabel M Gaucho
Jones C Briddick
Isabel N Nestle
Jeanfrancois Q Ostrosky
Isabel A Chui
Nicolas D Whobrey
Costa C Chui
Adams B Maclead
Aditya T Vocelka
Greenwood V Kolmetz
Morrow L Royster
Adams Z Maclead
Smith Z Schemmer
Tony J Chui
Alejandro D Ruta
IdCountryDate
1000Canada2024-03-02
1001Argentina2024-03-03
1002France2024-02-22
1003Italy2024-03-02
1004India2024-03-17
1005Spain2024-03-04
1006Canada2024-02-19
1007Australia2024-02-18
1008Argentina2024-02-21
1009France2024-03-14
1010Canada2024-03-05
1011Japan2024-03-18
1012Italy2024-03-16
1013Brazil2024-02-18
1014France2024-03-02
1015Australia2024-02-23
1016Australia2024-03-08
1017Russia2024-03-13
1018Brazil2024-02-23
1019Australia2024-02-20
1020Spain2024-03-10
1021Italy2024-03-14
1022India2024-02-21
1023Italy2024-02-22
1024India2024-03-18
1025Japan2024-03-10
1026France2024-02-28
1027Brazil2024-03-02
1028Brazil2024-02-20
1029Russia2024-02-22
1030Russia2024-03-17
1031Russia2024-02-27
1032Australia2024-02-22
1033Canada2024-03-08
1034Russia2024-02-25
1035Argentina2024-02-25
1036Russia2024-03-08
1037United Kingdom2024-03-08
1038France2024-03-15
1039France2024-03-06
1040United Kingdom2024-03-04
1041Italy2024-03-01
1042Russia2024-02-27
1043Spain2024-03-08
1044Japan2024-02-22
1045India2024-03-04
1046Japan2024-03-01
1047Germany2024-03-14
1048Brazil2024-02-18
1049Russia2024-03-11

On-Demand Data

NameIdCountryDate
Chavez O Venere1000Japan2024-02-23
Misaki D Vocelka1001India2024-03-16
Kadeem Z Morasca1002Argentina2024-03-09
Leon S Briddick1003Italy2024-03-07
Smith D Oldroyd1004Italy2024-03-09
Sinclair U Perin1005Brazil2024-02-24
Kadeem O Wieser1006Canada2024-03-16
Aditya C Malet1007Japan2024-03-06
Greenwood O Albares1008Canada2024-03-17
Tony Q Chui1009Canada2024-02-29
Johnson S Vocelka1010Brazil2024-03-17
Jefferson V Vocelka1011United Kingdom2024-03-10
Emily C Sergi1012Russia2024-03-13
Stacey L Ostrosky1013Brazil2024-03-17
Mujtaba S Vocelka1014Spain2024-02-27
Kadeem Z Iturbide1015India2024-02-22
Cody C Wieser1016France2024-02-19
Aruna X Iturbide1017Spain2024-02-29
Stacey H Figeroa1018Russia2024-03-01
Jeanfrancois T Bolognia1019France2024-02-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco G FollerRussiaIvan Magalhaes QUALIFIED
James L KolmetzItalyIoni Bowcher NEW
Murillo M PerinArgentinaStephen Shaw RENEWAL
Wickens A KuskoJapanElwin Sharvill QUALIFIED
Misaki F ChuiRussiaAsiya Javayant NEGOTIATION
Francesco F MacleadJapanAsiya Javayant UNQUALIFIED
Jones Y StensethGermanyXuxue Feng RENEWAL
Aruna P MacleadArgentinaXuxue Feng NEGOTIATION
Cody K SchemmerCanadaOnyama Limba NEW
Maria W PoquetteJapanElwin Sharvill RENEWAL
Maria O SlusarskiSpainElwin Sharvill PROPOSAL
Morrow U RoysterFranceAnna Fali UNQUALIFIED
Deepesh K MarrierItalyAsiya Javayant PROPOSAL
Ivar Y VenereRussiaIvan Magalhaes RENEWAL
Nicolas Q ButtJapanIoni Bowcher PROPOSAL
Kaitlin N RulapaughCanadaElwin Sharvill RENEWAL
Tony Q DarakjyBrazilElwin Sharvill NEW
Wickens Q MaletIndiaIoni Bowcher UNQUALIFIED
James P FigeroaBrazilElwin Sharvill PROPOSAL
Costa Y AmigonFranceStephen Shaw RENEWAL
Francesco S RimAustraliaStephen Shaw QUALIFIED
David F BowleyUnited KingdomAsiya Javayant RENEWAL
Johnson J RoysterGermanyIvan Magalhaes NEGOTIATION
James G NestleUnited KingdomAmy Elsner UNQUALIFIED
Jefferson R CaudyJapanStephen Shaw RENEWAL
Morrow H OldroydBrazilAnna Fali PROPOSAL
Juan S WaycottUnited KingdomBernardo Dominic UNQUALIFIED
Kadeem I AmigonArgentinaAmy Elsner NEGOTIATION
Jennifer X OstroskyBrazilOnyama Limba UNQUALIFIED
Aika F MaletArgentinaXuxue Feng RENEWAL
Aditya X OstroskyUnited KingdomIoni Bowcher UNQUALIFIED
Salvatore Y ShinkoBrazilElwin Sharvill UNQUALIFIED
Silvio M FigeroaBrazilAmy Elsner QUALIFIED
Munro R SchemmerIndiaBernardo Dominic NEGOTIATION
Jeanfrancois E FlosiSpainOnyama Limba UNQUALIFIED
Francesco L NestleCanadaXuxue Feng QUALIFIED
Aika B RulapaughUnited KingdomElwin Sharvill UNQUALIFIED
Alejandro V WieserUnited KingdomAsiya Javayant PROPOSAL
Nicolas R WaycottCanadaAmy Elsner RENEWAL
Misaki Z MaletBrazilXuxue Feng NEW

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