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 B InouyeGermanyOnyama Limba PROPOSAL
Aditya Z WhobreyItalyIvan Magalhaes NEW
Silvio F OstroskyFranceBernardo Dominic QUALIFIED
Ashley J PoquetteArgentinaAmy Elsner RENEWAL
Ashley V MaletGermanyIvan Magalhaes NEW
Wickens L DilliardBrazilAnna Fali RENEWAL
James J KolmetzCanadaIvan Magalhaes RENEWAL
Ivar Z SergiRussiaStephen Shaw RENEWAL
Munro A BologniaSpainXuxue Feng QUALIFIED
Claire R KuskoJapanOnyama Limba NEW
Jefferson Y WieserBrazilXuxue Feng NEW
Wickens D InouyeRussiaIvan Magalhaes NEGOTIATION
Darci S MaletAustraliaStephen Shaw QUALIFIED
Julie Q OldroydJapanStephen Shaw UNQUALIFIED
Julie Y CaudyRussiaIvan Magalhaes NEW
Isabel Z SergiRussiaAnna Fali UNQUALIFIED
Nicolas Q CaudyArgentinaAsiya Javayant NEW
Kaitlin Y PaprockiSpainBernardo Dominic QUALIFIED
Clifford T OldroydUnited KingdomAnna Fali NEGOTIATION
Aruna A RoysterRussiaOnyama Limba RENEWAL
Murillo C BologniaBrazilAmy Elsner RENEWAL
Wickens U MorascaIndiaElwin Sharvill RENEWAL
David V ShinkoAustraliaBernardo Dominic QUALIFIED
David M PaprockiUnited KingdomStephen Shaw NEGOTIATION
Izzy G InouyeRussiaAnna Fali NEW
Wickens S FlosiCanadaAmy Elsner UNQUALIFIED
Salvatore M RulapaughRussiaAsiya Javayant NEGOTIATION
James B DarakjyCanadaAnna Fali PROPOSAL
Adams D KuskoRussiaBernardo Dominic QUALIFIED
Maisha Y TollnerRussiaBernardo Dominic RENEWAL
Aditya U BologniaJapanIvan Magalhaes NEW
Juan W RulapaughFranceElwin Sharvill UNQUALIFIED
Munro Q GauchoUnited KingdomStephen Shaw PROPOSAL
Aruna U RutaFranceAmy Elsner NEGOTIATION
Ashley Z ShinkoBrazilAnna Fali NEW
Antonio R BologniaFranceStephen Shaw RENEWAL
Munro J PaprockiIndiaAmy Elsner UNQUALIFIED
Sinclair F MarrierArgentinaOnyama Limba RENEWAL
Emily C KuskoAustraliaIvan Magalhaes NEGOTIATION
Murillo R DarakjyGermanyAsiya Javayant RENEWAL
Aika U OstroskyRussiaXuxue Feng QUALIFIED
Rodrigues N PoquetteAustraliaOnyama Limba NEGOTIATION
Isabel Y AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Faith B ButtIndiaAnna Fali NEGOTIATION
Salvatore K AlbaresGermanyAsiya Javayant NEW
Tony Q CaldareraItalyIoni Bowcher RENEWAL
Cody I GlickRussiaXuxue Feng RENEWAL
Greenwood P AmigonIndiaBernardo Dominic NEGOTIATION
Wickens S BologniaJapanAsiya Javayant QUALIFIED
Mayumi Y DarakjyJapanAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Clifford X ChuiBrazilAsiya Javayant UNQUALIFIED
Leon J NestleAustraliaStephen Shaw NEGOTIATION
Clifford M AmigonFranceAnna Fali RENEWAL
Wickens Z AmigonRussiaXuxue Feng QUALIFIED
Johnson L RulapaughRussiaElwin Sharvill PROPOSAL
Aditya E SlusarskiArgentinaOnyama Limba PROPOSAL
Johnson K DilliardIndiaIoni Bowcher QUALIFIED
Aruna E SlusarskiIndiaAsiya Javayant QUALIFIED
Izzy I NestleJapanIvan Magalhaes RENEWAL
Faith T StensethBrazilXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo G WaycottGermany2024-04-21Rousseaux, Michael Esq UNQUALIFIED34Elwin Sharvill
1001Deepesh Z PerinFrance2024-04-13King, Christopher A Esq UNQUALIFIED84Ivan Magalhaes
1002Munro R SaylorsIndia2024-04-20Chanay, Jeffrey A Esq NEW24Onyama Limba
1003Deepesh S InouyeAustralia2024-04-11Truhlar And Truhlar Attys NEGOTIATION23Stephen Shaw
1004Adams A NestleGermany2024-04-04Buckley Miller Wright NEGOTIATION94Ioni Bowcher
1005Ricardo T RulapaughAustralia2024-04-08Chanay, Jeffrey A Esq NEGOTIATION8Elwin Sharvill
1006James A ShinkoBrazil2024-04-16Rousseaux, Michael Esq QUALIFIED85Stephen Shaw
1007Mujtaba T IturbideSpain2024-04-13King, Christopher A Esq UNQUALIFIED97Anna Fali
1008Adams P RutaItaly2024-04-20Chemel, James L Cpa NEGOTIATION61Asiya Javayant
1009Ivar D PoquetteSpain2024-04-11Morlong Associates NEGOTIATION52Anna Fali
1010Jones N GlickArgentina2024-04-03Chemel, James L Cpa NEW48Onyama Limba
1011Jeanfrancois B MaletAustralia2024-04-12Printing Dimensions RENEWAL11Elwin Sharvill
1012Silvio Y RutaIndia2024-04-19Buckley Miller Wright RENEWAL33Ioni Bowcher
1013Isabel G AmigonJapan2024-04-02Morlong Associates QUALIFIED66Onyama Limba
1014Mayumi Z MarrierGermany2024-04-03Chapman, Ross E Esq PROPOSAL89Xuxue Feng
1015Kaitlin O MarrierAustralia2024-04-08Chanay, Jeffrey A Esq PROPOSAL50Onyama Limba
1016Faith O AmigonBrazil2024-04-02Chemel, James L Cpa NEW18Onyama Limba
1017Isabel G CaldareraItaly2024-03-29Chanay, Jeffrey A Esq UNQUALIFIED21Amy Elsner
1018Leja Y SchemmerCanada2024-04-01Rangoni Of Florence NEGOTIATION54Amy Elsner
1019Clifford V KuskoJapan2024-04-23Morlong Associates NEGOTIATION25Amy Elsner
1020Sinclair P VenereUnited Kingdom2024-04-23Rangoni Of Florence NEW10Xuxue Feng
1021Salvatore K SlusarskiItaly2024-04-10Feltz Printing Service RENEWAL17Xuxue Feng
1022Wickens N AlbaresArgentina2024-04-21Feiner Bros RENEWAL65Ivan Magalhaes
1023Leon G CaldareraItaly2024-03-28Chapman, Ross E Esq UNQUALIFIED25Bernardo Dominic
1024Wickens H MarrierBrazil2024-04-10Truhlar And Truhlar Attys RENEWAL5Ioni Bowcher
1025Smith W NickaAustralia2024-03-28Buckley Miller Wright RENEWAL8Asiya Javayant
1026Munro R KolmetzIndia2024-03-28Rangoni Of Florence UNQUALIFIED67Amy Elsner
1027Jeanfrancois R SlusarskiSpain2024-04-05Rousseaux, Michael Esq QUALIFIED63Elwin Sharvill
1028Alejandro B FollerIndia2024-04-03Feltz Printing Service UNQUALIFIED65Ivan Magalhaes
1029Faith T MaletRussia2024-04-06Chanay, Jeffrey A Esq QUALIFIED20Stephen Shaw
1030Alejandro W BriddickArgentina2024-04-11Rangoni Of Florence RENEWAL67Ioni Bowcher
1031Alejandro I OldroydSpain2024-04-21Printing Dimensions PROPOSAL60Ioni Bowcher
1032Ricardo E MarrierFrance2024-04-14Chemel, James L Cpa PROPOSAL54Bernardo Dominic
1033Murillo L GlickCanada2024-04-09Chapman, Ross E Esq NEGOTIATION64Anna Fali
1034Maria S RoysterUnited Kingdom2024-04-15Feltz Printing Service NEW49Bernardo Dominic
1035Clifford W RutaUnited Kingdom2024-04-06Rousseaux, Michael Esq PROPOSAL77Anna Fali
1036Smith I GauchoFrance2024-04-07Feiner Bros RENEWAL99Elwin Sharvill
1037Cody J FlosiSpain2024-04-17Feiner Bros UNQUALIFIED6Ivan Magalhaes
1038Octavia X PaprockiArgentina2024-04-17Benton, John B Jr PROPOSAL26Onyama Limba
1039Antonio N GarufiArgentina2024-04-13Printing Dimensions PROPOSAL5Asiya Javayant
1040Juan Y KuskoCanada2024-04-05Chapman, Ross E Esq UNQUALIFIED58Bernardo Dominic
1041Juan B PaprockiBrazil2024-04-08Buckley Miller Wright PROPOSAL43Stephen Shaw
1042Munro G ChuiAustralia2024-03-29King, Christopher A Esq NEW86Amy Elsner
1043Misaki J SergiSpain2024-04-13Printing Dimensions NEW9Xuxue Feng
1044Aditya N IturbideUnited Kingdom2024-04-14Chemel, James L Cpa QUALIFIED92Ioni Bowcher
1045Julie T ChuiFrance2024-04-05Rangoni Of Florence NEW40Asiya Javayant
1046Jones E VenereArgentina2024-04-13Printing Dimensions UNQUALIFIED76Bernardo Dominic
1047Leja L NestleSpain2024-04-10Buckley Miller Wright NEW78Anna Fali
1048Arvin G IturbideFrance2024-04-16King, Christopher A Esq NEW20Xuxue Feng
1049Julie A BriddickAustralia2024-04-07Commercial Press PROPOSAL50Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Greenwood H CaldareraIndiaStephen Shaw RENEWAL
Wickens G MorascaItalyBernardo Dominic UNQUALIFIED
Smith Z RutaIndiaAsiya Javayant NEGOTIATION
Kadeem H AmigonBrazilIvan Magalhaes RENEWAL
David B CaldareraIndiaIoni Bowcher PROPOSAL
Jefferson D DarakjyAustraliaOnyama Limba RENEWAL
Nicolas V BriddickArgentinaBernardo Dominic NEW
Kaitlin D GauchoIndiaIoni Bowcher QUALIFIED
Jones F SaylorsFranceOnyama Limba UNQUALIFIED
Juan E WaycottItalyIvan Magalhaes NEW
Adams L DoeJapanBernardo Dominic RENEWAL
Claire N PoquetteFranceElwin Sharvill QUALIFIED
Leon U InouyeAustraliaXuxue Feng RENEWAL
Aika N ShinkoAustraliaElwin Sharvill NEGOTIATION
Juan E InouyeItalyAnna Fali RENEWAL
Octavia Z SergiGermanyStephen Shaw NEGOTIATION
Octavia P MarrierBrazilElwin Sharvill UNQUALIFIED
Salvatore G DoeJapanIvan Magalhaes QUALIFIED
Chavez N KuskoFranceIvan Magalhaes UNQUALIFIED
Aditya H VocelkaArgentinaBernardo Dominic NEW
Claire X ShinkoFranceAsiya Javayant NEGOTIATION
David T DoeIndiaIoni Bowcher PROPOSAL
Juan P FigeroaUnited KingdomAnna Fali NEGOTIATION
Misaki E FollerSpainAmy Elsner NEW
James B BriddickSpainBernardo Dominic NEGOTIATION
Jefferson Q GarufiSpainAsiya Javayant RENEWAL
James X TollnerJapanStephen Shaw NEGOTIATION
David W NestleAustraliaElwin Sharvill NEGOTIATION
Murillo W AlbaresIndiaBernardo Dominic PROPOSAL
Faith I TollnerRussiaAnna Fali NEW
Tony P RutaAustraliaBernardo Dominic UNQUALIFIED
Murillo Z MorascaBrazilAsiya Javayant UNQUALIFIED
Misaki K GarufiJapanStephen Shaw QUALIFIED
Nicolas S TollnerFranceElwin Sharvill NEW
Morrow P KolmetzItalyBernardo Dominic QUALIFIED
Maisha V PaprockiBrazilAnna Fali QUALIFIED
Jennifer W AlbaresAustraliaIvan Magalhaes RENEWAL
Jefferson O SaylorsArgentinaElwin Sharvill NEW
Mujtaba G WieserUnited KingdomAmy Elsner PROPOSAL
Mujtaba A FollerBrazilElwin Sharvill PROPOSAL
Maria M KolmetzRussiaIvan Magalhaes PROPOSAL
Jeanfrancois N PerinSpainStephen Shaw QUALIFIED
Rodrigues G FollerFranceIvan Magalhaes PROPOSAL
Stacey M MacleadGermanyIvan Magalhaes PROPOSAL
Chavez Y MaletIndiaAmy Elsner RENEWAL
Darci K ShinkoUnited KingdomOnyama Limba QUALIFIED
Chavez Y PerinGermanyIoni Bowcher NEGOTIATION
Isabel D GauchoItalyAsiya Javayant RENEWAL
Ashley Q WieserArgentinaAsiya Javayant UNQUALIFIED
Smith F CaldareraArgentinaOnyama Limba QUALIFIED
Frozen Columns
Name
Izzy O Vocelka
Leon V Chui
Faith A Saylors
Murillo H Amigon
Antonio W Caudy
Costa P Garufi
Chavez O Poquette
Murillo K Caudy
Leja Y Royster
Sinclair A Caudy
Leja B Paprocki
Maria O Campain
Clifford K Gaucho
Leon M Malet
David O Stockham
James F Paprocki
Nicolas W Kusko
Jones O Albares
Chavez F Kusko
Cody H Shinko
Deepesh A Inouye
Chavez R Nestle
Jennifer H Caudy
Maria I Caldarera
Costa X Whobrey
Maria T Albares
Smith S Nestle
Julie T Briddick
Kadeem A Inouye
Sinclair R Darakjy
Rodrigues G Vocelka
Costa V Darakjy
Ivar Y Tollner
Adams P Inouye
Stacey V Vocelka
Johnson I Stenseth
Kaitlin G Ferencz
Maisha E Malet
Mujtaba O Dilliard
Morrow F Kolmetz
Ivar O Morasca
Aika T Marrier
Clifford Y Oldroyd
David E Kusko
Julie Z Iturbide
Ivar G Schemmer
Sinclair N Bolognia
Juan W Wieser
Aruna G Kusko
Faith G Sergi
IdCountryDate
1000Germany2024-04-18
1001France2024-04-04
1002Japan2024-04-09
1003Italy2024-03-28
1004India2024-04-06
1005Germany2024-04-15
1006Spain2024-04-07
1007France2024-04-20
1008Brazil2024-04-07
1009Brazil2024-04-12
1010India2024-04-05
1011Germany2024-04-03
1012Russia2024-04-12
1013Canada2024-04-18
1014Brazil2024-04-16
1015Canada2024-04-24
1016India2024-04-11
1017Italy2024-04-01
1018Canada2024-04-10
1019Argentina2024-04-17
1020Argentina2024-04-05
1021France2024-04-11
1022France2024-04-17
1023Canada2024-04-14
1024Australia2024-04-03
1025Australia2024-03-31
1026Spain2024-03-30
1027India2024-04-07
1028Italy2024-04-08
1029Italy2024-04-18
1030Japan2024-04-02
1031Spain2024-03-30
1032India2024-04-09
1033Japan2024-04-10
1034Japan2024-04-16
1035Russia2024-04-12
1036Canada2024-04-20
1037Brazil2024-04-17
1038Russia2024-04-04
1039France2024-04-04
1040Japan2024-04-21
1041Canada2024-04-04
1042Italy2024-04-21
1043United Kingdom2024-03-31
1044Japan2024-03-29
1045Japan2024-04-19
1046Brazil2024-04-11
1047Canada2024-04-13
1048Spain2024-04-13
1049Australia2024-04-16

On-Demand Data

NameIdCountryDate
Sinclair L Whobrey1000France2024-04-19
Kaitlin U Stenseth1001Russia2024-04-07
Costa C Waycott1002Spain2024-04-08
Jones M Marrier1003Japan2024-04-20
Izzy Y Caldarera1004Brazil2024-03-31
Aruna E Saylors1005Russia2024-04-02
Aditya C Flosi1006Russia2024-03-28
Kaitlin F Dilliard1007France2024-04-11
Wickens I Campain1008Italy2024-03-30
Salvatore G Morasca1009Brazil2024-04-23
Tony W Morasca1010Japan2024-04-09
Silvio J Oldroyd1011Spain2024-03-31
Kadeem L Paprocki1012Brazil2024-04-01
Wickens N Inouye1013Russia2024-04-06
Johnson Y Malet1014India2024-04-09
Leon B Nestle1015Germany2024-04-17
Johnson K Oldroyd1016Canada2024-04-18
Jefferson M Slusarski1017Italy2024-04-17
Tony M Bowley1018Russia2024-04-19
Greenwood E Nicka1019Spain2024-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Kaitlin J IturbideGermanyBernardo Dominic PROPOSAL
Morrow M ChuiSpainAsiya Javayant NEW
Deepesh P SaylorsFranceIvan Magalhaes PROPOSAL
Francesco S KolmetzCanadaXuxue Feng QUALIFIED
Stacey A FollerItalyXuxue Feng UNQUALIFIED
Octavia U KuskoGermanyStephen Shaw NEGOTIATION
Rodrigues D PoquetteUnited KingdomOnyama Limba PROPOSAL
Maisha N DarakjyCanadaAnna Fali UNQUALIFIED
Ivar R OstroskyCanadaAsiya Javayant NEGOTIATION
Nicolas W SlusarskiGermanyIoni Bowcher NEW
Munro K GillianArgentinaAnna Fali QUALIFIED
Mujtaba T DoeItalyAmy Elsner UNQUALIFIED
Greenwood A WieserRussiaAmy Elsner NEGOTIATION
Clifford K SergiBrazilBernardo Dominic NEW
Juan K StensethCanadaBernardo Dominic NEGOTIATION
James K NickaRussiaAnna Fali QUALIFIED
Maisha X NestleItalyIoni Bowcher PROPOSAL
Stacey N IturbideAustraliaAsiya Javayant RENEWAL
Jones V RimBrazilIvan Magalhaes RENEWAL
Misaki D GauchoItalyXuxue Feng QUALIFIED
Adams S MaletIndiaIoni Bowcher NEGOTIATION
Ivar E CampainFranceElwin Sharvill UNQUALIFIED
Murillo W MaletBrazilIvan Magalhaes QUALIFIED
Salvatore N GarufiArgentinaXuxue Feng UNQUALIFIED
Aditya Z RutaGermanyAmy Elsner RENEWAL
Tony X ButtCanadaBernardo Dominic RENEWAL
Faith Y PoquetteIndiaBernardo Dominic QUALIFIED
Jennifer N WhobreyFranceOnyama Limba RENEWAL
Isabel U GlickCanadaStephen Shaw PROPOSAL
Maisha O FigeroaFranceStephen Shaw NEW
Wickens U CaldareraUnited KingdomAmy Elsner PROPOSAL
Salvatore L PaprockiJapanOnyama Limba RENEWAL
Chavez Z NickaUnited KingdomAmy Elsner RENEWAL
Clifford W RutaItalyAmy Elsner RENEWAL
Jefferson V KuskoCanadaXuxue Feng PROPOSAL
Stacey C RutaItalyIoni Bowcher NEW
Leja M GlickBrazilStephen Shaw NEW
Aika R ChuiBrazilIvan Magalhaes UNQUALIFIED
Rodrigues M RimArgentinaStephen Shaw UNQUALIFIED
Francesco Z InouyeIndiaOnyama Limba PROPOSAL

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