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
Chavez V TollnerCanadaStephen Shaw QUALIFIED
Mayumi H GillianIndiaAmy Elsner RENEWAL
Faith M PaprockiUnited KingdomOnyama Limba UNQUALIFIED
Faith H ShinkoRussiaIoni Bowcher NEGOTIATION
Mayumi F InouyeBrazilBernardo Dominic QUALIFIED
Leja S DilliardGermanyOnyama Limba QUALIFIED
Tony G FlosiSpainOnyama Limba UNQUALIFIED
Maisha C RutaCanadaIvan Magalhaes QUALIFIED
Isabel P VenereItalyIvan Magalhaes PROPOSAL
Kaitlin W InouyeArgentinaElwin Sharvill QUALIFIED
Arvin H ButtIndiaIvan Magalhaes PROPOSAL
Misaki V NestleArgentinaIoni Bowcher NEGOTIATION
Cody R GauchoRussiaXuxue Feng PROPOSAL
Emily Y DarakjyRussiaBernardo Dominic NEGOTIATION
Misaki Y GillianJapanIoni Bowcher NEW
Adams B WaycottGermanyAsiya Javayant QUALIFIED
David Z GarufiAustraliaAnna Fali NEGOTIATION
Leon Z GauchoSpainOnyama Limba RENEWAL
Julie Z PaprockiBrazilXuxue Feng PROPOSAL
James S StensethCanadaAnna Fali NEW
Jones R FlosiFranceAsiya Javayant RENEWAL
Maria Z StockhamArgentinaXuxue Feng RENEWAL
Mujtaba M RutaAustraliaAmy Elsner NEGOTIATION
Darci A InouyeItalyXuxue Feng UNQUALIFIED
Kaitlin V NestleArgentinaAsiya Javayant UNQUALIFIED
Faith O SlusarskiIndiaBernardo Dominic NEW
Juan O BologniaJapanBernardo Dominic NEGOTIATION
Darci D BowleyUnited KingdomAsiya Javayant QUALIFIED
Francesco J MorascaAustraliaIvan Magalhaes NEGOTIATION
Leja X NestleArgentinaElwin Sharvill RENEWAL
Aika U RutaBrazilXuxue Feng RENEWAL
Chavez Y SlusarskiGermanyAsiya Javayant NEGOTIATION
Greenwood Q RimAustraliaXuxue Feng PROPOSAL
Nicolas F VenereItalyIoni Bowcher NEW
Adams K RimAustraliaAsiya Javayant NEW
Kadeem E TollnerItalyAnna Fali NEGOTIATION
Aika L DilliardUnited KingdomIoni Bowcher NEW
Morrow Z FollerGermanyElwin Sharvill NEW
Aditya V AlbaresIndiaAmy Elsner QUALIFIED
Munro L MarrierUnited KingdomIoni Bowcher QUALIFIED
Ivar L RimFranceXuxue Feng NEGOTIATION
Darci Y WaycottItalyElwin Sharvill NEW
Ashley R BowleySpainAnna Fali NEW
Deepesh J SlusarskiCanadaAsiya Javayant UNQUALIFIED
Antonio E BologniaRussiaElwin Sharvill QUALIFIED
Clifford O ChuiUnited KingdomElwin Sharvill NEGOTIATION
David T StensethCanadaXuxue Feng UNQUALIFIED
Leja N InouyeRussiaAmy Elsner QUALIFIED
Maria Z TollnerUnited KingdomBernardo Dominic QUALIFIED
Wickens P RoysterAustraliaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Alejandro G WieserFranceElwin Sharvill UNQUALIFIED
Munro M SergiIndiaAmy Elsner QUALIFIED
Jones A ShinkoUnited KingdomElwin Sharvill RENEWAL
Kadeem I MacleadJapanAnna Fali PROPOSAL
Misaki Y SaylorsJapanIoni Bowcher RENEWAL
Chavez Q MacleadItalyElwin Sharvill RENEWAL
Munro W DilliardIndiaStephen Shaw QUALIFIED
Leja C ShinkoItalyOnyama Limba RENEWAL
Francesco N BologniaAustraliaStephen Shaw NEW
Antonio S MaletAustraliaIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony Z RulapaughJapan2024-04-14Truhlar And Truhlar Attys NEGOTIATION53Ioni Bowcher
1001Adams T GlickRussia2024-04-06Chapman, Ross E Esq QUALIFIED66Bernardo Dominic
1002Alejandro O VocelkaUnited Kingdom2024-05-01Dorl, James J Esq NEGOTIATION79Elwin Sharvill
1003Adams Z InouyeFrance2024-04-06Rangoni Of Florence QUALIFIED76Onyama Limba
1004Darci O PerinArgentina2024-04-07Rangoni Of Florence NEW49Xuxue Feng
1005Kaitlin Y AmigonJapan2024-04-11Truhlar And Truhlar Attys PROPOSAL26Onyama Limba
1006Aditya H FollerIndia2024-04-05Benton, John B Jr QUALIFIED20Asiya Javayant
1007Ashley X BologniaJapan2024-04-29Feiner Bros RENEWAL80Ioni Bowcher
1008Emily Q TollnerArgentina2024-04-07Truhlar And Truhlar Attys QUALIFIED23Asiya Javayant
1009Antonio U MarrierFrance2024-04-11Rousseaux, Michael Esq UNQUALIFIED32Asiya Javayant
1010Kadeem T BowleySpain2024-04-14Chemel, James L Cpa NEW32Xuxue Feng
1011Maria L SaylorsGermany2024-04-29Feltz Printing Service PROPOSAL36Xuxue Feng
1012Deepesh K RutaFrance2024-04-29Feltz Printing Service NEW76Xuxue Feng
1013Misaki Q InouyeJapan2024-04-29Feiner Bros NEGOTIATION90Stephen Shaw
1014Stacey I NestleSpain2024-04-19Commercial Press QUALIFIED40Elwin Sharvill
1015Chavez C ChuiArgentina2024-04-11Commercial Press QUALIFIED15Ivan Magalhaes
1016Mujtaba R MacleadItaly2024-04-06Printing Dimensions PROPOSAL16Elwin Sharvill
1017Tony M ShinkoIndia2024-04-24Buckley Miller Wright NEGOTIATION44Onyama Limba
1018Morrow Y SchemmerItaly2024-04-22Commercial Press PROPOSAL92Onyama Limba
1019Faith W MarrierIndia2024-04-10Benton, John B Jr UNQUALIFIED35Bernardo Dominic
1020Ashley C ChuiBrazil2024-04-17Benton, John B Jr UNQUALIFIED64Stephen Shaw
1021Adams G MacleadGermany2024-04-13Chanay, Jeffrey A Esq PROPOSAL47Ivan Magalhaes
1022Silvio Q StensethRussia2024-04-22Chemel, James L Cpa NEGOTIATION37Ioni Bowcher
1023Ivar F DilliardIndia2024-04-22Chanay, Jeffrey A Esq PROPOSAL60Stephen Shaw
1024Salvatore R SergiGermany2024-04-02Chapman, Ross E Esq PROPOSAL5Ivan Magalhaes
1025Jennifer E MacleadUnited Kingdom2024-04-04Chemel, James L Cpa PROPOSAL84Asiya Javayant
1026David A VenereIndia2024-04-08Chemel, James L Cpa NEGOTIATION53Bernardo Dominic
1027Sinclair M DarakjyIndia2024-04-24Benton, John B Jr QUALIFIED40Onyama Limba
1028Greenwood O MorascaIndia2024-04-27Chanay, Jeffrey A Esq UNQUALIFIED76Ioni Bowcher
1029Salvatore S GauchoIndia2024-04-17Feltz Printing Service PROPOSAL74Anna Fali
1030Antonio Q AmigonIndia2024-04-19Rangoni Of Florence UNQUALIFIED12Ioni Bowcher
1031Smith X WhobreyAustralia2024-04-22Rangoni Of Florence QUALIFIED54Ivan Magalhaes
1032David G PaprockiRussia2024-04-30Chemel, James L Cpa UNQUALIFIED44Stephen Shaw
1033David A NickaJapan2024-04-26Truhlar And Truhlar Attys UNQUALIFIED84Bernardo Dominic
1034Stacey Q OstroskyBrazil2024-04-19Commercial Press UNQUALIFIED50Bernardo Dominic
1035Claire V GauchoAustralia2024-04-16Chapman, Ross E Esq UNQUALIFIED45Anna Fali
1036Adams B ShinkoArgentina2024-04-28Benton, John B Jr NEW54Elwin Sharvill
1037Kadeem D PaprockiRussia2024-04-24King, Christopher A Esq NEW91Onyama Limba
1038Leon Y IturbideArgentina2024-04-15Printing Dimensions UNQUALIFIED27Onyama Limba
1039Alejandro W CaldareraAustralia2024-04-04Dorl, James J Esq PROPOSAL7Ioni Bowcher
1040Faith P MaletSpain2024-04-05King, Christopher A Esq UNQUALIFIED73Elwin Sharvill
1041Claire Y WieserIndia2024-04-24Benton, John B Jr QUALIFIED42Amy Elsner
1042Nicolas K MaletFrance2024-04-16Chapman, Ross E Esq PROPOSAL99Anna Fali
1043Aruna D OstroskyArgentina2024-04-05Feiner Bros QUALIFIED9Bernardo Dominic
1044Francesco Z FerenczArgentina2024-04-11Chemel, James L Cpa UNQUALIFIED35Bernardo Dominic
1045Arvin O GlickGermany2024-04-17Morlong Associates NEGOTIATION26Bernardo Dominic
1046Maria U RoysterAustralia2024-04-06Chanay, Jeffrey A Esq UNQUALIFIED25Ivan Magalhaes
1047Adams Y RoysterGermany2024-04-20Benton, John B Jr RENEWAL20Anna Fali
1048Aika W MacleadJapan2024-04-21Benton, John B Jr PROPOSAL62Xuxue Feng
1049Cody Y WaycottUnited Kingdom2024-04-11Morlong Associates UNQUALIFIED72Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Nicolas J NestleItalyXuxue Feng RENEWAL
Leja H GlickArgentinaStephen Shaw RENEWAL
Deepesh V WhobreyCanadaStephen Shaw PROPOSAL
Smith K WaycottGermanyAnna Fali PROPOSAL
Adams G DoeCanadaXuxue Feng RENEWAL
Clifford U RimSpainAmy Elsner QUALIFIED
Leon L ShinkoUnited KingdomIvan Magalhaes NEW
Juan M GillianIndiaElwin Sharvill UNQUALIFIED
Antonio M BowleyAustraliaStephen Shaw QUALIFIED
Jefferson H InouyeArgentinaXuxue Feng RENEWAL
Jones X MorascaCanadaXuxue Feng UNQUALIFIED
Ashley R PerinBrazilBernardo Dominic NEW
Aika A PaprockiUnited KingdomAnna Fali UNQUALIFIED
David A PerinBrazilStephen Shaw NEGOTIATION
Jennifer X VocelkaCanadaIvan Magalhaes UNQUALIFIED
Jefferson X DilliardAustraliaOnyama Limba RENEWAL
Deepesh L VenereFranceStephen Shaw QUALIFIED
Antonio L GarufiCanadaAnna Fali NEGOTIATION
Jennifer H MorascaSpainAmy Elsner NEGOTIATION
Maria A FollerArgentinaElwin Sharvill NEGOTIATION
Octavia O SchemmerCanadaIoni Bowcher RENEWAL
Clifford O CampainCanadaXuxue Feng RENEWAL
Aruna I BologniaSpainElwin Sharvill PROPOSAL
Kaitlin C SlusarskiSpainXuxue Feng NEGOTIATION
Kaitlin G GarufiGermanyElwin Sharvill PROPOSAL
Aditya R GlickArgentinaAnna Fali PROPOSAL
Nicolas P OldroydCanadaAmy Elsner RENEWAL
Chavez X CaldareraRussiaXuxue Feng NEW
Stacey B DoeJapanAsiya Javayant NEW
Jeanfrancois M DoeAustraliaAmy Elsner NEGOTIATION
Antonio A BriddickGermanyIvan Magalhaes NEW
Ivar Y KuskoBrazilXuxue Feng QUALIFIED
Jefferson H GarufiGermanyXuxue Feng RENEWAL
Morrow E PaprockiArgentinaOnyama Limba UNQUALIFIED
Munro K InouyeFranceAmy Elsner PROPOSAL
Morrow I PaprockiAustraliaXuxue Feng RENEWAL
Julie V CaudyJapanOnyama Limba PROPOSAL
Aditya Q RimItalyAmy Elsner NEGOTIATION
Tony E AmigonRussiaXuxue Feng NEW
Jefferson F RimUnited KingdomStephen Shaw QUALIFIED
Alejandro B DilliardArgentinaXuxue Feng NEW
Alejandro O StensethArgentinaAsiya Javayant RENEWAL
Morrow O MaletFranceIvan Magalhaes NEGOTIATION
Stacey P MaletBrazilIoni Bowcher QUALIFIED
Darci R MaletGermanyIvan Magalhaes UNQUALIFIED
Leja F StockhamCanadaAsiya Javayant PROPOSAL
Johnson U RutaRussiaAsiya Javayant NEW
Darci R SlusarskiItalyXuxue Feng PROPOSAL
Chavez G OldroydGermanyAnna Fali NEW
Darci M StensethAustraliaAsiya Javayant RENEWAL
Frozen Columns
Name
Aika G Glick
Maisha C Foller
Juan D Wieser
Jefferson M Rim
Wickens V Kolmetz
Tony G Rim
Maisha A Bolognia
Misaki S Malet
Darci I Amigon
Ricardo Z Malet
Adams S Perin
Sinclair S Nestle
Munro D Gaucho
Stacey E Morasca
Juan M Ferencz
Cody J Saylors
Antonio V Dilliard
Aika O Flosi
Clifford X Schemmer
Kadeem A Rim
Isabel S Nicka
Francesco G Bowley
Salvatore C Inouye
Octavia T Amigon
Jeanfrancois C Kusko
Deepesh R Gaucho
Leon G Flosi
Ricardo O Bolognia
Smith V Doe
Mayumi B Rulapaugh
Arvin F Saylors
Juan Y Ferencz
Chavez C Figeroa
Alejandro K Nicka
Izzy O Ferencz
Johnson P Albares
James E Morasca
Aruna R Dilliard
Kaitlin C Ferencz
Maria H Tollner
Kaitlin S Inouye
Julie A Figeroa
Jeanfrancois A Campain
Sinclair Q Royster
Faith C Schemmer
Munro K Figeroa
Arvin I Foller
Deepesh X Saylors
Costa W Iturbide
Clifford X Campain
IdCountryDate
1000India2024-04-23
1001France2024-04-02
1002Brazil2024-04-19
1003Italy2024-04-08
1004India2024-05-01
1005United Kingdom2024-04-19
1006Argentina2024-04-22
1007Spain2024-04-10
1008India2024-04-11
1009Canada2024-04-26
1010Brazil2024-04-18
1011Argentina2024-04-04
1012United Kingdom2024-04-13
1013France2024-04-12
1014Japan2024-05-01
1015Argentina2024-04-08
1016United Kingdom2024-05-01
1017Brazil2024-05-01
1018India2024-04-16
1019Italy2024-04-10
1020Spain2024-04-09
1021Brazil2024-04-04
1022Australia2024-04-28
1023Australia2024-04-25
1024United Kingdom2024-04-27
1025Spain2024-04-25
1026Australia2024-04-08
1027Spain2024-04-19
1028Russia2024-04-13
1029France2024-04-08
1030Italy2024-04-22
1031Brazil2024-04-29
1032Japan2024-04-23
1033Italy2024-04-23
1034Australia2024-04-19
1035India2024-04-16
1036Italy2024-05-01
1037Spain2024-04-29
1038Japan2024-04-26
1039Canada2024-04-11
1040Germany2024-04-02
1041Italy2024-04-24
1042Russia2024-04-03
1043France2024-04-07
1044India2024-04-09
1045Italy2024-04-08
1046Japan2024-04-18
1047Australia2024-04-27
1048Russia2024-04-09
1049Canada2024-04-12

On-Demand Data

NameIdCountryDate
Wickens F Schemmer1000Argentina2024-04-26
Jennifer H Ferencz1001Canada2024-04-03
Maisha R Inouye1002India2024-04-18
Silvio F Briddick1003Argentina2024-04-29
Jennifer V Caldarera1004Germany2024-05-01
Salvatore S Schemmer1005Germany2024-05-01
Ivar S Nestle1006Brazil2024-04-26
Emily I Inouye1007United Kingdom2024-04-05
Ashley G Campain1008United Kingdom2024-04-30
Faith P Kusko1009Japan2024-04-09
Rodrigues Z Schemmer1010India2024-04-29
Ashley C Butt1011Russia2024-04-11
Greenwood N Malet1012Canada2024-04-20
Jones P Garufi1013Canada2024-04-12
Darci X Schemmer1014Spain2024-04-27
Leon A Stockham1015India2024-04-02
Sinclair S Sergi1016India2024-04-27
Kaitlin G Gillian1017Canada2024-04-30
Alejandro S Oldroyd1018Italy2024-04-06
Silvio A Tollner1019France2024-04-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria M FollerFranceAsiya Javayant PROPOSAL
Antonio B IturbideItalyAsiya Javayant NEW
Juan W DarakjyIndiaAsiya Javayant UNQUALIFIED
Octavia K VocelkaCanadaIoni Bowcher PROPOSAL
Deepesh Q KolmetzAustraliaStephen Shaw RENEWAL
Ricardo E ButtArgentinaOnyama Limba UNQUALIFIED
Johnson H PaprockiRussiaOnyama Limba UNQUALIFIED
Faith X StockhamArgentinaAnna Fali NEW
Greenwood D NestleIndiaElwin Sharvill NEW
Silvio E VenereItalyStephen Shaw UNQUALIFIED
Murillo M RimBrazilAsiya Javayant PROPOSAL
Emily Q PerinBrazilIvan Magalhaes NEW
Wickens T StockhamCanadaElwin Sharvill QUALIFIED
Julie E GillianItalyIvan Magalhaes NEGOTIATION
Tony I WaycottUnited KingdomStephen Shaw RENEWAL
Misaki Y ShinkoIndiaOnyama Limba NEGOTIATION
Darci J BriddickGermanyElwin Sharvill UNQUALIFIED
Chavez C MaletJapanIoni Bowcher NEGOTIATION
Kadeem P AmigonBrazilOnyama Limba UNQUALIFIED
Jeanfrancois F MacleadAustraliaBernardo Dominic QUALIFIED
Greenwood R CaldareraItalyIvan Magalhaes RENEWAL
Murillo K TollnerCanadaOnyama Limba QUALIFIED
Smith V DarakjyItalyAmy Elsner QUALIFIED
Juan G FigeroaFranceAmy Elsner NEGOTIATION
Salvatore P VocelkaArgentinaIvan Magalhaes NEW
Smith R CaudySpainOnyama Limba NEW
Wickens Z GillianArgentinaOnyama Limba RENEWAL
Isabel Y TollnerCanadaIvan Magalhaes NEGOTIATION
Sinclair A VenereRussiaElwin Sharvill PROPOSAL
Munro Z FerenczRussiaXuxue Feng UNQUALIFIED
Clifford J SlusarskiRussiaIoni Bowcher QUALIFIED
Leja O PaprockiGermanyIvan Magalhaes RENEWAL
Stacey G TollnerCanadaAmy Elsner QUALIFIED
Aika E PoquetteCanadaAnna Fali PROPOSAL
Jones S WaycottGermanyAsiya Javayant UNQUALIFIED
Tony S ShinkoSpainAmy Elsner NEGOTIATION
Leon P KuskoSpainElwin Sharvill UNQUALIFIED
Chavez B RoysterItalyXuxue Feng PROPOSAL
Misaki L RulapaughSpainIvan Magalhaes QUALIFIED
Sinclair Z ButtArgentinaXuxue Feng 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>