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
Smith X BriddickCanadaStephen Shaw QUALIFIED
Kadeem Z WieserRussiaIoni Bowcher UNQUALIFIED
Leon H BologniaItalyBernardo Dominic NEW
Aditya S WhobreyUnited KingdomXuxue Feng PROPOSAL
Rodrigues D CaldareraAustraliaIvan Magalhaes QUALIFIED
Silvio L SergiItalyXuxue Feng NEGOTIATION
Smith W ButtAustraliaAmy Elsner QUALIFIED
Nicolas Q SchemmerArgentinaElwin Sharvill QUALIFIED
Maisha V WhobreyFranceXuxue Feng UNQUALIFIED
Ashley B PoquetteCanadaAsiya Javayant RENEWAL
Sinclair D ButtAustraliaAsiya Javayant PROPOSAL
Leon Q CaudyGermanyBernardo Dominic NEGOTIATION
Jones C SergiRussiaIoni Bowcher NEGOTIATION
Aika Z NickaJapanBernardo Dominic UNQUALIFIED
Adams W RoysterRussiaStephen Shaw NEGOTIATION
Kaitlin A GillianIndiaOnyama Limba PROPOSAL
Jones K MacleadItalyIvan Magalhaes PROPOSAL
Morrow H RulapaughJapanAsiya Javayant PROPOSAL
Adams M FlosiBrazilXuxue Feng QUALIFIED
Adams J TollnerGermanyIvan Magalhaes RENEWAL
Munro Y ShinkoSpainIvan Magalhaes NEGOTIATION
Sinclair T KolmetzItalyAsiya Javayant NEW
Smith V MarrierRussiaAsiya Javayant NEGOTIATION
Ivar T WhobreyBrazilIoni Bowcher NEW
Francesco S SergiItalyAmy Elsner UNQUALIFIED
Claire B OstroskyJapanIvan Magalhaes NEGOTIATION
Cody L GlickAustraliaAsiya Javayant PROPOSAL
Ivar I FerenczJapanIvan Magalhaes PROPOSAL
Morrow M DarakjySpainAsiya Javayant NEW
Claire V MaletSpainIvan Magalhaes QUALIFIED
Faith O GillianArgentinaIvan Magalhaes UNQUALIFIED
Jennifer U KuskoAustraliaIoni Bowcher RENEWAL
Maisha N GauchoArgentinaIvan Magalhaes NEW
Cody G InouyeItalyAsiya Javayant QUALIFIED
Ricardo Y StensethArgentinaAsiya Javayant NEW
Maisha W NickaSpainStephen Shaw RENEWAL
Tony U TollnerItalyBernardo Dominic PROPOSAL
Julie J VenereRussiaOnyama Limba QUALIFIED
Darci G GlickSpainAsiya Javayant NEGOTIATION
Aruna E PerinCanadaAnna Fali NEGOTIATION
Aditya N VenereIndiaBernardo Dominic NEGOTIATION
Cody V PerinCanadaIvan Magalhaes QUALIFIED
Sinclair W MacleadSpainAmy Elsner NEGOTIATION
Jones O MacleadItalyElwin Sharvill NEGOTIATION
Aditya Y FerenczRussiaBernardo Dominic UNQUALIFIED
Alejandro H BriddickUnited KingdomElwin Sharvill NEW
Jennifer M RutaItalyStephen Shaw QUALIFIED
James E CaudyBrazilIvan Magalhaes RENEWAL
Sinclair U WaycottItalyAmy Elsner QUALIFIED
Faith B FigeroaFranceAsiya Javayant UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ivar M VocelkaGermanyXuxue Feng PROPOSAL
Chavez L RoysterIndiaBernardo Dominic NEGOTIATION
Francesco Z GarufiItalyElwin Sharvill QUALIFIED
Jones R CaldareraArgentinaIoni Bowcher NEGOTIATION
Wickens F SchemmerItalyStephen Shaw UNQUALIFIED
Kadeem S DarakjyUnited KingdomElwin Sharvill NEW
Aika V KuskoArgentinaAmy Elsner UNQUALIFIED
Jennifer R TollnerSpainOnyama Limba NEGOTIATION
Claire N ShinkoIndiaOnyama Limba NEW
Jones S KolmetzSpainAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood N IturbideItaly2024-05-15Printing Dimensions PROPOSAL6Onyama Limba
1001Jeanfrancois T BriddickRussia2024-04-29Commercial Press NEW65Xuxue Feng
1002Julie K PaprockiArgentina2024-04-23Rangoni Of Florence UNQUALIFIED37Stephen Shaw
1003Tony V SaylorsUnited Kingdom2024-05-18Chapman, Ross E Esq PROPOSAL52Ioni Bowcher
1004Maria W BowleyFrance2024-05-15Chanay, Jeffrey A Esq QUALIFIED88Elwin Sharvill
1005Leon O DarakjyUnited Kingdom2024-05-07Rousseaux, Michael Esq NEGOTIATION23Ioni Bowcher
1006Francesco A InouyeUnited Kingdom2024-05-17Chemel, James L Cpa QUALIFIED4Ioni Bowcher
1007Ashley T MaletSpain2024-04-29Chanay, Jeffrey A Esq RENEWAL32Bernardo Dominic
1008Rodrigues Q BologniaArgentina2024-05-08Printing Dimensions NEGOTIATION5Ioni Bowcher
1009Ricardo N FigeroaRussia2024-05-04Printing Dimensions NEGOTIATION71Onyama Limba
1010Aika F RimJapan2024-05-02Morlong Associates QUALIFIED80Amy Elsner
1011Jones I SaylorsArgentina2024-04-28Chanay, Jeffrey A Esq RENEWAL60Amy Elsner
1012Smith L NestleAustralia2024-05-11Truhlar And Truhlar Attys RENEWAL96Bernardo Dominic
1013Clifford B GarufiAustralia2024-04-29Rangoni Of Florence PROPOSAL85Asiya Javayant
1014Mayumi C IturbideCanada2024-05-10Feltz Printing Service NEGOTIATION98Amy Elsner
1015Francesco A OldroydCanada2024-05-09King, Christopher A Esq UNQUALIFIED21Xuxue Feng
1016Maria M CampainRussia2024-05-16Rangoni Of Florence NEW6Elwin Sharvill
1017Kadeem N KolmetzRussia2024-04-26Chanay, Jeffrey A Esq NEGOTIATION16Onyama Limba
1018Morrow P BologniaRussia2024-05-02Chemel, James L Cpa NEW28Bernardo Dominic
1019Wickens G MarrierUnited Kingdom2024-05-06Buckley Miller Wright UNQUALIFIED73Bernardo Dominic
1020Morrow D TollnerJapan2024-05-11Printing Dimensions NEGOTIATION23Amy Elsner
1021James G KuskoIndia2024-05-17Chanay, Jeffrey A Esq RENEWAL3Onyama Limba
1022Munro Y DarakjyFrance2024-05-16Chapman, Ross E Esq PROPOSAL44Asiya Javayant
1023Mayumi A DilliardSpain2024-05-06Feiner Bros NEW50Ioni Bowcher
1024Octavia L ShinkoFrance2024-05-19Dorl, James J Esq RENEWAL11Onyama Limba
1025Antonio S KuskoUnited Kingdom2024-05-20Commercial Press RENEWAL89Stephen Shaw
1026Leon F AmigonRussia2024-05-01Buckley Miller Wright NEGOTIATION22Anna Fali
1027Salvatore L BologniaCanada2024-05-06Rangoni Of Florence RENEWAL57Ivan Magalhaes
1028Costa H FlosiArgentina2024-04-25Benton, John B Jr NEGOTIATION10Amy Elsner
1029Emily W RimItaly2024-04-23Rangoni Of Florence RENEWAL0Stephen Shaw
1030Rodrigues W GillianCanada2024-05-10Chapman, Ross E Esq NEW7Amy Elsner
1031Nicolas F StensethJapan2024-04-24Commercial Press PROPOSAL65Onyama Limba
1032Faith H DilliardGermany2024-05-12Buckley Miller Wright UNQUALIFIED77Xuxue Feng
1033Kadeem B RutaRussia2024-05-02Commercial Press UNQUALIFIED20Amy Elsner
1034Rodrigues Z SlusarskiBrazil2024-05-10King, Christopher A Esq RENEWAL12Ivan Magalhaes
1035Murillo D OldroydCanada2024-05-02Rousseaux, Michael Esq NEW73Onyama Limba
1036Chavez I MorascaUnited Kingdom2024-04-25Chemel, James L Cpa NEGOTIATION12Onyama Limba
1037Ashley D FlosiJapan2024-05-02King, Christopher A Esq UNQUALIFIED69Bernardo Dominic
1038Isabel Z VocelkaGermany2024-04-21Rousseaux, Michael Esq QUALIFIED32Asiya Javayant
1039Maisha H BologniaItaly2024-05-13Rangoni Of Florence PROPOSAL70Asiya Javayant
1040Aruna J RulapaughGermany2024-05-20Benton, John B Jr UNQUALIFIED47Onyama Limba
1041Faith G TollnerJapan2024-05-15Dorl, James J Esq PROPOSAL90Bernardo Dominic
1042Wickens N MaletCanada2024-04-24Feiner Bros NEGOTIATION77Asiya Javayant
1043Sinclair Z OstroskyFrance2024-05-14Feiner Bros NEW81Anna Fali
1044Kadeem W ChuiSpain2024-05-12Commercial Press UNQUALIFIED98Stephen Shaw
1045Aditya Q DarakjyArgentina2024-05-10Feiner Bros NEGOTIATION93Elwin Sharvill
1046Darci L ShinkoArgentina2024-05-20Chanay, Jeffrey A Esq QUALIFIED31Xuxue Feng
1047Leon S VenereCanada2024-04-30Printing Dimensions PROPOSAL76Asiya Javayant
1048Rodrigues C KolmetzGermany2024-05-12Feltz Printing Service RENEWAL50Ioni Bowcher
1049Deepesh G GarufiGermany2024-05-18Rousseaux, Michael Esq PROPOSAL70Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jennifer L KuskoCanadaIvan Magalhaes NEW
Mujtaba N GlickItalyAsiya Javayant UNQUALIFIED
David D WieserIndiaAsiya Javayant QUALIFIED
Deepesh S MorascaFranceStephen Shaw UNQUALIFIED
Munro F NickaGermanyXuxue Feng QUALIFIED
Mujtaba Q MaletRussiaStephen Shaw NEW
Mujtaba F MorascaBrazilBernardo Dominic PROPOSAL
Stacey J MorascaItalyAmy Elsner RENEWAL
Nicolas O GillianBrazilAnna Fali QUALIFIED
Isabel G GlickArgentinaAnna Fali QUALIFIED
Isabel M MaletCanadaXuxue Feng NEW
Costa N CampainRussiaStephen Shaw QUALIFIED
Deepesh L FerenczSpainIoni Bowcher NEGOTIATION
Wickens T KuskoBrazilElwin Sharvill QUALIFIED
Aruna F WaycottAustraliaOnyama Limba QUALIFIED
Leon Y MacleadFranceXuxue Feng NEW
Ivar H GillianIndiaAmy Elsner RENEWAL
Claire X VocelkaJapanAsiya Javayant UNQUALIFIED
Aika U ChuiFranceAnna Fali NEW
Morrow H FigeroaCanadaAnna Fali UNQUALIFIED
Munro Z RutaJapanAmy Elsner PROPOSAL
Adams O WaycottGermanyAnna Fali UNQUALIFIED
Smith A AmigonGermanyIvan Magalhaes NEW
Munro H FollerJapanOnyama Limba RENEWAL
Antonio Y NestleSpainIoni Bowcher QUALIFIED
Clifford Y FigeroaAustraliaAsiya Javayant QUALIFIED
Costa V SchemmerSpainElwin Sharvill PROPOSAL
Francesco L OldroydCanadaIoni Bowcher QUALIFIED
Jones M WaycottUnited KingdomAnna Fali NEGOTIATION
Ivar W InouyeUnited KingdomStephen Shaw RENEWAL
Wickens N DarakjyGermanyBernardo Dominic RENEWAL
Faith F TollnerGermanyAsiya Javayant QUALIFIED
Adams Z PoquetteFranceIoni Bowcher UNQUALIFIED
Morrow J RutaSpainBernardo Dominic RENEWAL
Kaitlin V GarufiCanadaXuxue Feng NEGOTIATION
Deepesh Y AmigonArgentinaXuxue Feng NEW
Mayumi F RimItalyElwin Sharvill QUALIFIED
Johnson D PaprockiRussiaIvan Magalhaes PROPOSAL
Johnson A MaletJapanXuxue Feng QUALIFIED
Kadeem U WhobreyRussiaStephen Shaw RENEWAL
Greenwood P IturbideAustraliaBernardo Dominic NEW
Arvin Z WaycottItalyBernardo Dominic NEW
Izzy T WaycottGermanyAmy Elsner NEGOTIATION
Ricardo W CaldareraBrazilStephen Shaw UNQUALIFIED
James K MaletAustraliaBernardo Dominic PROPOSAL
Cody F CampainIndiaOnyama Limba NEW
Murillo M ButtGermanyElwin Sharvill UNQUALIFIED
Ashley S VocelkaJapanIvan Magalhaes UNQUALIFIED
Maisha U GlickSpainAsiya Javayant NEW
James S DarakjyArgentinaXuxue Feng PROPOSAL
Frozen Columns
Name
Stacey K Stenseth
Rodrigues Y Schemmer
Wickens W Paprocki
Arvin H Malet
Kadeem F Nestle
Munro Q Perin
Costa U Marrier
Ashley X Garufi
Jefferson Q Ruta
Tony A Amigon
Octavia Y Kusko
Chavez K Schemmer
Adams T Oldroyd
Wickens K Briddick
Misaki K Shinko
James F Nicka
Claire B Dilliard
Mujtaba M Rulapaugh
Murillo B Briddick
Chavez G Briddick
Izzy Y Paprocki
Ivar I Bolognia
Mujtaba P Chui
Maisha C Kusko
Costa O Figeroa
Murillo F Caudy
James N Vocelka
Deepesh E Doe
Leon X Rim
Aruna N Morasca
Johnson Y Nestle
Adams D Albares
Claire K Malet
Isabel I Oldroyd
Mujtaba X Royster
Isabel Q Vocelka
Nicolas X Vocelka
Antonio P Gillian
Maisha M Doe
Leja B Whobrey
Claire F Caldarera
Costa S Rulapaugh
Kadeem M Nestle
Jennifer N Whobrey
Murillo Y Sergi
Ricardo N Caudy
Maisha E Nicka
Maisha C Waycott
Jones M Kolmetz
Darci M Malet
IdCountryDate
1000Germany2024-05-01
1001Spain2024-04-25
1002Australia2024-04-28
1003Brazil2024-05-06
1004Argentina2024-05-15
1005Germany2024-05-15
1006Canada2024-04-21
1007Japan2024-05-17
1008Russia2024-05-18
1009Russia2024-05-18
1010Australia2024-04-24
1011Spain2024-05-02
1012Japan2024-05-16
1013Argentina2024-05-10
1014Australia2024-05-18
1015Russia2024-05-15
1016Canada2024-05-15
1017Argentina2024-04-30
1018India2024-05-14
1019Australia2024-04-28
1020India2024-04-22
1021Japan2024-05-03
1022Italy2024-04-28
1023France2024-05-02
1024Spain2024-05-06
1025Argentina2024-05-09
1026Australia2024-05-08
1027Russia2024-04-21
1028Canada2024-05-09
1029Spain2024-05-20
1030India2024-04-29
1031Spain2024-05-09
1032Australia2024-04-23
1033Germany2024-04-27
1034Australia2024-05-09
1035Brazil2024-05-16
1036France2024-05-04
1037Russia2024-05-14
1038Italy2024-04-21
1039Japan2024-05-13
1040Germany2024-05-14
1041Brazil2024-05-05
1042Japan2024-05-11
1043Argentina2024-05-07
1044Spain2024-05-11
1045Italy2024-05-17
1046France2024-04-22
1047Russia2024-05-14
1048Germany2024-05-05
1049Argentina2024-04-28

On-Demand Data

NameIdCountryDate
Leja V Perin1000Canada2024-05-13
Claire H Malet1001United Kingdom2024-05-08
Aruna T Stockham1002Spain2024-05-19
Jones O Wieser1003Italy2024-05-06
Tony K Foller1004United Kingdom2024-05-17
Jones W Flosi1005Australia2024-05-15
Arvin N Campain1006Germany2024-05-06
Clifford R Gillian1007United Kingdom2024-05-16
Kadeem J Dilliard1008Spain2024-05-09
Isabel N Slusarski1009Italy2024-05-01
Julie V Figeroa1010Brazil2024-05-15
Jeanfrancois A Rulapaugh1011Italy2024-04-25
Claire E Darakjy1012Argentina2024-05-03
Murillo W Venere1013Japan2024-05-02
Kaitlin I Slusarski1014Canada2024-05-15
Kadeem Q Amigon1015Russia2024-04-29
Leja Q Venere1016Japan2024-04-23
Emily X Garufi1017Germany2024-05-09
Jones P Stockham1018Argentina2024-05-02
Aditya O Slusarski1019Argentina2024-05-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey E NickaItalyStephen Shaw RENEWAL
Claire D FigeroaUnited KingdomAnna Fali NEGOTIATION
Juan E BriddickItalyAsiya Javayant QUALIFIED
Ricardo E BologniaGermanyIoni Bowcher PROPOSAL
Jones H RulapaughArgentinaXuxue Feng NEW
Antonio S VocelkaRussiaXuxue Feng PROPOSAL
David O SlusarskiRussiaAsiya Javayant QUALIFIED
Leon L KolmetzIndiaIvan Magalhaes QUALIFIED
Ricardo L RutaSpainIoni Bowcher NEGOTIATION
Arvin G KuskoFranceBernardo Dominic PROPOSAL
Misaki I BologniaAustraliaOnyama Limba NEGOTIATION
Francesco Q StensethGermanyAnna Fali UNQUALIFIED
Greenwood Z TollnerSpainElwin Sharvill NEW
Tony P FlosiItalyOnyama Limba QUALIFIED
Maria U FollerFranceXuxue Feng NEGOTIATION
Silvio M RimRussiaIvan Magalhaes NEW
Johnson Z MaletUnited KingdomXuxue Feng QUALIFIED
Emily O AmigonJapanAmy Elsner PROPOSAL
Nicolas L WieserBrazilAmy Elsner QUALIFIED
Jones B NestleAustraliaAnna Fali NEW
Salvatore Y FigeroaArgentinaIoni Bowcher RENEWAL
Aruna Q ButtFranceIoni Bowcher RENEWAL
Maria G NickaGermanyOnyama Limba RENEWAL
Cody J ButtGermanyStephen Shaw NEW
Kadeem H CaldareraCanadaElwin Sharvill UNQUALIFIED
Ashley J NickaCanadaElwin Sharvill UNQUALIFIED
Silvio Y SchemmerUnited KingdomStephen Shaw QUALIFIED
Aika M KolmetzCanadaBernardo Dominic PROPOSAL
Smith Z MarrierRussiaAnna Fali NEGOTIATION
Juan Q GillianArgentinaIvan Magalhaes QUALIFIED
Wickens U MarrierCanadaIvan Magalhaes QUALIFIED
Aditya C BowleySpainXuxue Feng UNQUALIFIED
Leja T RutaFranceIoni Bowcher UNQUALIFIED
Alejandro H RulapaughCanadaElwin Sharvill NEW
Smith L CampainSpainOnyama Limba NEGOTIATION
Arvin P FlosiIndiaIoni Bowcher RENEWAL
Deepesh T PoquetteGermanyIvan Magalhaes QUALIFIED
Tony D GlickUnited KingdomIoni Bowcher PROPOSAL
Octavia V VenereGermanyElwin Sharvill PROPOSAL
Julie Q WaycottJapanBernardo Dominic 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>