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
Antonio P InouyeJapanAsiya Javayant PROPOSAL
Jennifer R InouyeGermanyElwin Sharvill UNQUALIFIED
Johnson F FigeroaIndiaXuxue Feng RENEWAL
Aruna D WaycottIndiaXuxue Feng QUALIFIED
Mayumi V DilliardItalyIvan Magalhaes NEW
Munro R MaletFranceIoni Bowcher NEW
Mujtaba V KolmetzBrazilIoni Bowcher QUALIFIED
Alejandro A WieserJapanIvan Magalhaes UNQUALIFIED
Ivar D TollnerCanadaOnyama Limba PROPOSAL
Greenwood W OldroydArgentinaElwin Sharvill NEGOTIATION
Arvin S MarrierFranceAmy Elsner NEW
Emily P PerinUnited KingdomBernardo Dominic PROPOSAL
Ricardo N SaylorsItalyBernardo Dominic RENEWAL
Wickens J PerinIndiaOnyama Limba NEGOTIATION
Faith X FigeroaAustraliaIoni Bowcher QUALIFIED
Aruna O BologniaIndiaXuxue Feng NEW
Izzy G SchemmerFranceBernardo Dominic RENEWAL
Johnson R NestleCanadaStephen Shaw RENEWAL
Ashley S DoeItalyIvan Magalhaes NEW
Jones Q GillianAustraliaStephen Shaw NEGOTIATION
Leja I GlickUnited KingdomOnyama Limba UNQUALIFIED
Aruna U RulapaughAustraliaBernardo Dominic NEGOTIATION
Octavia G VocelkaIndiaIvan Magalhaes NEW
Stacey N CampainFranceBernardo Dominic UNQUALIFIED
Chavez B SchemmerUnited KingdomIvan Magalhaes UNQUALIFIED
Arvin L CampainSpainIoni Bowcher NEGOTIATION
Greenwood F VocelkaCanadaIvan Magalhaes PROPOSAL
Smith P NickaGermanyElwin Sharvill RENEWAL
Emily M FollerIndiaIoni Bowcher UNQUALIFIED
Aruna F NestleBrazilStephen Shaw QUALIFIED
Maisha Y KolmetzUnited KingdomXuxue Feng UNQUALIFIED
Leon D CaudyArgentinaIvan Magalhaes NEGOTIATION
Darci X AmigonAustraliaIvan Magalhaes RENEWAL
Mujtaba O PaprockiFranceElwin Sharvill NEW
Francesco N CaldareraItalyOnyama Limba QUALIFIED
Francesco M BriddickFranceAsiya Javayant QUALIFIED
Stacey T FigeroaJapanElwin Sharvill PROPOSAL
Aruna I CaudyGermanyAsiya Javayant RENEWAL
Leon W NickaAustraliaIvan Magalhaes UNQUALIFIED
Rodrigues H RoysterAustraliaBernardo Dominic NEW
Stacey Z GillianAustraliaAsiya Javayant QUALIFIED
Alejandro C DarakjyItalyStephen Shaw NEW
Murillo L VocelkaFranceXuxue Feng NEW
James R PoquetteIndiaIoni Bowcher RENEWAL
Misaki A BologniaGermanyAmy Elsner RENEWAL
Julie S VenereIndiaElwin Sharvill UNQUALIFIED
Silvio Y IturbideCanadaIvan Magalhaes NEGOTIATION
Chavez C WhobreyIndiaOnyama Limba PROPOSAL
Smith H KuskoRussiaStephen Shaw NEW
Antonio B IturbideSpainAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Antonio U RimBrazilStephen Shaw NEW
Nicolas W MaletBrazilStephen Shaw RENEWAL
Ricardo P CaldareraCanadaIvan Magalhaes QUALIFIED
Wickens X FlosiBrazilOnyama Limba NEW
Misaki W BriddickGermanyAsiya Javayant QUALIFIED
Ashley Z InouyeGermanyOnyama Limba NEW
Leja L MarrierItalyIoni Bowcher RENEWAL
Greenwood A CaudyArgentinaAsiya Javayant UNQUALIFIED
Kaitlin Z InouyeRussiaAsiya Javayant PROPOSAL
Alejandro J StensethJapanStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Salvatore E WhobreyUnited Kingdom2024-04-27Buckley Miller Wright RENEWAL73Anna Fali
1001Darci E CampainItaly2024-04-19Printing Dimensions NEGOTIATION26Stephen Shaw
1002Maisha Q InouyeUnited Kingdom2024-04-21Chanay, Jeffrey A Esq NEW65Amy Elsner
1003Maisha D KuskoBrazil2024-04-16Commercial Press RENEWAL32Stephen Shaw
1004Wickens C FollerCanada2024-04-05Rousseaux, Michael Esq RENEWAL66Xuxue Feng
1005Jones H WaycottIndia2024-04-07Rousseaux, Michael Esq NEGOTIATION40Asiya Javayant
1006Rodrigues Q DilliardAustralia2024-04-22Feltz Printing Service PROPOSAL55Xuxue Feng
1007Maria B ButtRussia2024-04-08Commercial Press PROPOSAL50Amy Elsner
1008Claire D ChuiAustralia2024-04-04Chapman, Ross E Esq NEGOTIATION33Stephen Shaw
1009Jeanfrancois V AmigonGermany2024-04-10Printing Dimensions RENEWAL24Amy Elsner
1010Leon J FigeroaRussia2024-04-26King, Christopher A Esq UNQUALIFIED24Anna Fali
1011Arvin C SaylorsCanada2024-04-05King, Christopher A Esq NEGOTIATION45Amy Elsner
1012Costa L CaudyIndia2024-04-20Buckley Miller Wright UNQUALIFIED36Anna Fali
1013Adams X NickaCanada2024-04-01Chanay, Jeffrey A Esq NEGOTIATION72Ioni Bowcher
1014Kaitlin X PerinItaly2024-04-27Buckley Miller Wright QUALIFIED88Stephen Shaw
1015Claire H WaycottBrazil2024-04-17Rousseaux, Michael Esq UNQUALIFIED22Onyama Limba
1016Cody V OstroskyFrance2024-04-23Benton, John B Jr QUALIFIED38Onyama Limba
1017Leja U ShinkoArgentina2024-04-01Printing Dimensions NEW44Asiya Javayant
1018David P NestleArgentina2024-04-14Chanay, Jeffrey A Esq RENEWAL25Xuxue Feng
1019Antonio R AmigonAustralia2024-04-25Benton, John B Jr RENEWAL69Asiya Javayant
1020Aditya A KolmetzGermany2024-03-31Chapman, Ross E Esq NEGOTIATION99Asiya Javayant
1021Leon W PoquetteAustralia2024-04-04Rousseaux, Michael Esq NEGOTIATION5Elwin Sharvill
1022Cody U SlusarskiAustralia2024-04-16Printing Dimensions QUALIFIED26Bernardo Dominic
1023Leon A DoeRussia2024-03-31Commercial Press RENEWAL25Asiya Javayant
1024Octavia L PerinJapan2024-04-21King, Christopher A Esq NEW86Elwin Sharvill
1025Adams O CaldareraAustralia2024-04-27Feiner Bros UNQUALIFIED88Asiya Javayant
1026Ashley R IturbideFrance2024-04-29Chemel, James L Cpa QUALIFIED74Bernardo Dominic
1027Jeanfrancois Z AmigonFrance2024-04-12Chapman, Ross E Esq QUALIFIED9Ivan Magalhaes
1028Francesco G StensethIndia2024-04-03Printing Dimensions UNQUALIFIED43Ivan Magalhaes
1029Arvin B MarrierGermany2024-04-20Chapman, Ross E Esq PROPOSAL47Anna Fali
1030Nicolas V WieserUnited Kingdom2024-04-15Chapman, Ross E Esq NEGOTIATION67Asiya Javayant
1031Izzy F TollnerAustralia2024-04-26Feltz Printing Service NEGOTIATION77Anna Fali
1032Juan Q NestleFrance2024-04-12Rousseaux, Michael Esq RENEWAL69Asiya Javayant
1033David O WieserAustralia2024-04-27Morlong Associates UNQUALIFIED43Xuxue Feng
1034Nicolas N IturbideUnited Kingdom2024-04-20Chanay, Jeffrey A Esq NEGOTIATION10Elwin Sharvill
1035Leja R PoquetteFrance2024-04-12Chapman, Ross E Esq NEW15Amy Elsner
1036Misaki U PoquetteJapan2024-04-28Feiner Bros PROPOSAL12Onyama Limba
1037Isabel G DoeAustralia2024-04-22Truhlar And Truhlar Attys PROPOSAL78Ivan Magalhaes
1038Morrow L AmigonItaly2024-04-26Chanay, Jeffrey A Esq NEGOTIATION98Elwin Sharvill
1039Ashley R SaylorsItaly2024-04-03Dorl, James J Esq PROPOSAL41Ivan Magalhaes
1040Francesco D AlbaresArgentina2024-04-08Dorl, James J Esq PROPOSAL38Ioni Bowcher
1041Misaki U StensethCanada2024-04-26Rousseaux, Michael Esq RENEWAL32Elwin Sharvill
1042Arvin H CaudyRussia2024-04-22Buckley Miller Wright NEW13Ioni Bowcher
1043James C RutaAustralia2024-03-31Truhlar And Truhlar Attys NEGOTIATION29Anna Fali
1044Emily X BowleyJapan2024-04-06Dorl, James J Esq QUALIFIED27Stephen Shaw
1045Munro V RimJapan2024-04-23Chanay, Jeffrey A Esq NEW19Bernardo Dominic
1046Aruna T KuskoGermany2024-04-28Truhlar And Truhlar Attys NEW91Stephen Shaw
1047Salvatore Q AlbaresItaly2024-04-21Benton, John B Jr NEGOTIATION45Xuxue Feng
1048Aditya W PerinFrance2024-03-31Dorl, James J Esq NEW13Amy Elsner
1049Ashley R GillianFrance2024-04-02Benton, John B Jr UNQUALIFIED52Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Isabel I KuskoItalyAsiya Javayant QUALIFIED
Nicolas C ButtJapanAmy Elsner NEW
Nicolas Y ShinkoJapanElwin Sharvill UNQUALIFIED
Claire J GlickIndiaAsiya Javayant NEGOTIATION
Sinclair F GlickIndiaIoni Bowcher PROPOSAL
Munro X GlickArgentinaXuxue Feng QUALIFIED
Antonio I StockhamIndiaOnyama Limba NEGOTIATION
Costa R VenereBrazilIoni Bowcher UNQUALIFIED
Arvin X SaylorsItalyOnyama Limba NEW
Ashley F WieserBrazilXuxue Feng NEW
Juan H MaletArgentinaXuxue Feng RENEWAL
Morrow S SergiUnited KingdomAsiya Javayant NEGOTIATION
Munro P NickaCanadaElwin Sharvill PROPOSAL
Rodrigues A DarakjySpainBernardo Dominic NEGOTIATION
Kaitlin Z FollerBrazilIoni Bowcher RENEWAL
Aika K WaycottArgentinaAsiya Javayant NEW
Mayumi C WhobreyItalyAnna Fali NEW
Aditya H BowleyGermanyIoni Bowcher QUALIFIED
Leja Q BriddickFranceXuxue Feng NEGOTIATION
Sinclair F KuskoFranceElwin Sharvill NEGOTIATION
Darci O StockhamSpainAnna Fali NEGOTIATION
Munro U MaletFranceOnyama Limba UNQUALIFIED
Alejandro R MaletGermanyIvan Magalhaes QUALIFIED
Ashley K CaudyUnited KingdomAsiya Javayant PROPOSAL
Kaitlin N RoysterUnited KingdomBernardo Dominic RENEWAL
Kaitlin R RoysterJapanOnyama Limba NEW
Smith F RimIndiaBernardo Dominic RENEWAL
Julie P RimUnited KingdomOnyama Limba UNQUALIFIED
Francesco C OstroskyFranceXuxue Feng RENEWAL
Wickens B WaycottItalyBernardo Dominic PROPOSAL
Mujtaba F StockhamArgentinaXuxue Feng PROPOSAL
Adams Y DarakjySpainStephen Shaw NEW
Mayumi J IturbideSpainXuxue Feng RENEWAL
Arvin A CaldareraArgentinaAsiya Javayant QUALIFIED
Maria K MaletItalyStephen Shaw RENEWAL
Kaitlin P RoysterAustraliaElwin Sharvill NEGOTIATION
Silvio B MarrierGermanyIvan Magalhaes NEGOTIATION
Johnson E DoeUnited KingdomAnna Fali NEW
Rodrigues U NestleAustraliaBernardo Dominic NEGOTIATION
Leja L RutaRussiaBernardo Dominic QUALIFIED
Adams Z GillianGermanyIoni Bowcher NEW
Rodrigues Y StockhamJapanStephen Shaw QUALIFIED
Kaitlin M BologniaAustraliaElwin Sharvill NEGOTIATION
Claire Z FollerAustraliaIvan Magalhaes QUALIFIED
Kaitlin C OldroydSpainStephen Shaw UNQUALIFIED
Aruna M OstroskySpainOnyama Limba QUALIFIED
Claire B SchemmerRussiaAmy Elsner RENEWAL
Clifford T MorascaRussiaStephen Shaw PROPOSAL
Wickens A GlickUnited KingdomAmy Elsner NEGOTIATION
Cody J RulapaughJapanAmy Elsner QUALIFIED
Frozen Columns
Name
Aruna I Ostrosky
Jeanfrancois B Bolognia
Morrow Y Ferencz
Tony U Sergi
Silvio S Caudy
Leja A Malet
Aruna D Marrier
Ivar Y Foller
Kadeem Y Rulapaugh
Clifford P Ferencz
Francesco F Bowley
Adams Y Rulapaugh
Antonio W Flosi
Morrow H Malet
Kadeem K Garufi
Ashley Q Saylors
Ashley E Gillian
Tony C Kusko
Wickens V Doe
Jennifer L Stockham
Faith G Doe
Aditya F Iturbide
Aika O Ferencz
Ricardo W Vocelka
Isabel X Royster
Tony I Morasca
Silvio V Paprocki
Misaki H Ostrosky
Nicolas L Vocelka
Aruna E Ferencz
Jones K Malet
Silvio V Ruta
Johnson O Glick
Darci O Wieser
Isabel C Inouye
Isabel E Shinko
James Q Oldroyd
Nicolas T Whobrey
Wickens N Chui
Antonio J Oldroyd
Francesco Z Maclead
Octavia W Nestle
Greenwood T Stenseth
Maisha I Dilliard
Chavez P Venere
Adams D Campain
Nicolas W Foller
Sinclair O Figeroa
Mayumi O Poquette
Aruna M Nicka
IdCountryDate
1000Russia2024-04-10
1001Italy2024-04-26
1002Japan2024-04-08
1003India2024-04-24
1004Germany2024-03-31
1005France2024-04-05
1006Argentina2024-04-21
1007Argentina2024-04-22
1008Italy2024-04-13
1009Germany2024-04-18
1010Australia2024-04-03
1011United Kingdom2024-04-10
1012United Kingdom2024-04-07
1013United Kingdom2024-04-16
1014India2024-04-14
1015Argentina2024-04-22
1016Japan2024-04-13
1017India2024-04-20
1018Canada2024-04-14
1019Brazil2024-04-13
1020Brazil2024-04-17
1021Canada2024-04-29
1022Italy2024-04-10
1023Canada2024-04-20
1024Italy2024-04-01
1025Canada2024-04-15
1026Japan2024-04-14
1027United Kingdom2024-04-23
1028Russia2024-04-07
1029Spain2024-04-27
1030United Kingdom2024-04-01
1031Italy2024-04-27
1032Japan2024-04-07
1033India2024-04-28
1034Spain2024-04-18
1035Italy2024-04-12
1036India2024-04-17
1037France2024-04-18
1038Italy2024-04-07
1039Canada2024-04-23
1040Canada2024-04-22
1041United Kingdom2024-04-05
1042Canada2024-04-10
1043Argentina2024-04-01
1044Argentina2024-03-31
1045Canada2024-04-10
1046Argentina2024-04-26
1047Russia2024-04-12
1048Japan2024-04-17
1049Japan2024-04-13

On-Demand Data

NameIdCountryDate
Leon S Bowley1000Russia2024-04-06
Salvatore I Doe1001Canada2024-03-31
Ricardo W Oldroyd1002Russia2024-04-13
Julie Z Kusko1003Russia2024-03-31
Aditya M Saylors1004Japan2024-04-19
Chavez H Ruta1005Argentina2024-04-25
Alejandro O Caudy1006Russia2024-04-12
Munro M Chui1007Italy2024-04-03
Clifford A Doe1008Russia2024-04-16
Francesco T Royster1009France2024-04-06
Maisha B Sergi1010United Kingdom2024-04-04
Silvio F Malet1011India2024-04-14
Maria P Darakjy1012Spain2024-04-25
Jefferson A Iturbide1013Brazil2024-04-26
Nicolas J Doe1014Australia2024-04-02
Cody O Iturbide1015Germany2024-04-29
Julie E Perin1016Japan2024-04-07
Nicolas W Stenseth1017Spain2024-04-10
Nicolas V Albares1018Brazil2024-04-14
Juan F Nicka1019Brazil2024-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David C BowleyUnited KingdomIvan Magalhaes NEW
Sinclair C SchemmerRussiaOnyama Limba UNQUALIFIED
Aika O SlusarskiUnited KingdomAsiya Javayant UNQUALIFIED
Ivar X MacleadSpainAnna Fali QUALIFIED
Jones B SaylorsBrazilAnna Fali NEGOTIATION
Julie Y TollnerIndiaIvan Magalhaes RENEWAL
Octavia F SlusarskiCanadaElwin Sharvill RENEWAL
Maria S BologniaArgentinaBernardo Dominic RENEWAL
Ashley A RulapaughRussiaOnyama Limba NEW
Francesco Y NestleCanadaElwin Sharvill QUALIFIED
Jeanfrancois B GauchoFranceStephen Shaw NEW
Nicolas O AlbaresCanadaBernardo Dominic NEW
Aditya G DoeFranceIoni Bowcher RENEWAL
Morrow P GauchoUnited KingdomBernardo Dominic NEGOTIATION
Maisha L VocelkaAustraliaStephen Shaw NEW
Juan T GauchoAustraliaAnna Fali NEW
Deepesh O BriddickUnited KingdomIoni Bowcher NEGOTIATION
Alejandro J DilliardJapanAsiya Javayant RENEWAL
Leja F WaycottBrazilBernardo Dominic PROPOSAL
Julie L RulapaughGermanyXuxue Feng UNQUALIFIED
Maisha P RulapaughUnited KingdomAsiya Javayant PROPOSAL
Stacey V PerinCanadaAsiya Javayant NEW
David A KuskoCanadaIoni Bowcher RENEWAL
Julie K WaycottFranceIoni Bowcher UNQUALIFIED
Jeanfrancois I DoeRussiaAmy Elsner PROPOSAL
Ashley L OldroydItalyAmy Elsner NEW
Aika G MaletArgentinaBernardo Dominic NEW
James U InouyeIndiaIoni Bowcher NEW
Tony Q VenereAustraliaStephen Shaw UNQUALIFIED
Faith Y MarrierCanadaAsiya Javayant UNQUALIFIED
Darci S RulapaughItalyAsiya Javayant RENEWAL
Alejandro X VenereBrazilAmy Elsner UNQUALIFIED
Ivar U NickaArgentinaIoni Bowcher PROPOSAL
Izzy A WieserIndiaBernardo Dominic RENEWAL
Izzy I FigeroaIndiaAmy Elsner QUALIFIED
Misaki U WieserBrazilXuxue Feng RENEWAL
Alejandro Z BologniaJapanIvan Magalhaes UNQUALIFIED
Francesco K FerenczFranceElwin Sharvill PROPOSAL
Juan W ChuiSpainAnna Fali QUALIFIED
Emily X NickaArgentinaElwin Sharvill 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>