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
Leja C MarrierJapanAnna Fali QUALIFIED
Jefferson L SlusarskiRussiaBernardo Dominic PROPOSAL
Aika K MorascaIndiaAsiya Javayant NEGOTIATION
Ricardo M FlosiRussiaOnyama Limba UNQUALIFIED
Smith Q PaprockiUnited KingdomBernardo Dominic PROPOSAL
Sinclair L KuskoArgentinaBernardo Dominic UNQUALIFIED
Jefferson D KolmetzAustraliaElwin Sharvill NEGOTIATION
Murillo M SergiJapanIvan Magalhaes NEGOTIATION
Rodrigues R DilliardFranceIvan Magalhaes RENEWAL
Adams H SlusarskiItalyBernardo Dominic NEGOTIATION
Ashley E MaletBrazilAnna Fali QUALIFIED
Deepesh X RulapaughArgentinaAnna Fali PROPOSAL
Rodrigues V CaudyUnited KingdomAnna Fali NEW
Alejandro Z ChuiIndiaIoni Bowcher NEGOTIATION
James L DarakjyAustraliaStephen Shaw NEW
Octavia J NestleIndiaAsiya Javayant RENEWAL
David B BriddickIndiaAmy Elsner NEW
Johnson M SaylorsIndiaAsiya Javayant NEGOTIATION
Stacey N FlosiAustraliaAnna Fali QUALIFIED
Isabel M KolmetzAustraliaAsiya Javayant RENEWAL
Aruna K MacleadGermanyStephen Shaw NEGOTIATION
Aika Y WaycottItalyIvan Magalhaes NEGOTIATION
James G KolmetzJapanStephen Shaw QUALIFIED
Arvin G GauchoGermanyXuxue Feng RENEWAL
Ivar U OldroydItalyAmy Elsner UNQUALIFIED
Leja E RoysterCanadaAnna Fali NEW
Darci B CaudyGermanyStephen Shaw UNQUALIFIED
Emily O GillianRussiaStephen Shaw QUALIFIED
Smith B MacleadArgentinaStephen Shaw UNQUALIFIED
Jefferson W PaprockiBrazilAnna Fali QUALIFIED
Morrow O MaletArgentinaAmy Elsner NEW
Izzy F OldroydAustraliaStephen Shaw NEW
Clifford M MarrierItalyAsiya Javayant PROPOSAL
Cody Y OldroydIndiaXuxue Feng QUALIFIED
Kaitlin J PoquetteBrazilOnyama Limba RENEWAL
Mujtaba T SlusarskiSpainOnyama Limba NEW
Arvin R StockhamIndiaIvan Magalhaes QUALIFIED
Leja Q WaycottArgentinaStephen Shaw PROPOSAL
Ashley P WaycottCanadaOnyama Limba NEGOTIATION
Jeanfrancois L FollerFranceElwin Sharvill NEGOTIATION
Adams W OldroydUnited KingdomElwin Sharvill RENEWAL
Rodrigues G CaudyItalyXuxue Feng PROPOSAL
Mujtaba H MarrierCanadaIvan Magalhaes NEW
Antonio Y FollerItalyIoni Bowcher PROPOSAL
Isabel K ButtSpainBernardo Dominic NEGOTIATION
James K FlosiCanadaBernardo Dominic NEGOTIATION
Aditya M GlickGermanyIvan Magalhaes QUALIFIED
Ivar H RimRussiaAmy Elsner NEW
Murillo F IturbideJapanBernardo Dominic NEGOTIATION
Johnson R GlickIndiaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kaitlin O FigeroaSpainIvan Magalhaes RENEWAL
Wickens T CampainSpainStephen Shaw QUALIFIED
Mujtaba L DarakjyRussiaElwin Sharvill RENEWAL
Munro Y FollerBrazilOnyama Limba PROPOSAL
Emily D StockhamFranceAsiya Javayant NEGOTIATION
Julie Z IturbideCanadaAsiya Javayant UNQUALIFIED
Chavez W ButtItalyAsiya Javayant NEGOTIATION
Clifford G WhobreyUnited KingdomXuxue Feng NEGOTIATION
Salvatore W TollnerBrazilXuxue Feng NEGOTIATION
Izzy M WieserGermanyXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones Y CaudyUnited Kingdom2024-04-04Chemel, James L Cpa QUALIFIED58Stephen Shaw
1001Kadeem M RutaCanada2024-04-18Chanay, Jeffrey A Esq NEW15Ioni Bowcher
1002Ivar K MaletCanada2024-04-20Chapman, Ross E Esq UNQUALIFIED74Bernardo Dominic
1003David O SlusarskiIndia2024-03-31Truhlar And Truhlar Attys UNQUALIFIED96Onyama Limba
1004Johnson O RulapaughCanada2024-03-29Morlong Associates NEW5Xuxue Feng
1005Jennifer K GillianAustralia2024-03-28Buckley Miller Wright PROPOSAL20Ioni Bowcher
1006Francesco V FigeroaFrance2024-04-09Chemel, James L Cpa NEGOTIATION98Amy Elsner
1007Nicolas V GauchoAustralia2024-04-03Feiner Bros NEGOTIATION84Anna Fali
1008Ivar L KolmetzRussia2024-04-25Chemel, James L Cpa PROPOSAL45Bernardo Dominic
1009Jones X VocelkaAustralia2024-03-31Morlong Associates NEW5Ivan Magalhaes
1010Wickens J MaletAustralia2024-04-03Printing Dimensions NEW48Ioni Bowcher
1011Leja O ButtUnited Kingdom2024-04-05Truhlar And Truhlar Attys QUALIFIED80Xuxue Feng
1012Johnson E GlickArgentina2024-04-11King, Christopher A Esq PROPOSAL34Elwin Sharvill
1013Aruna W VenereRussia2024-03-29Morlong Associates NEW14Amy Elsner
1014Maisha X InouyeJapan2024-03-31Benton, John B Jr PROPOSAL76Bernardo Dominic
1015Stacey N InouyeGermany2024-04-12Buckley Miller Wright QUALIFIED77Onyama Limba
1016Ivar S OldroydFrance2024-04-18Dorl, James J Esq PROPOSAL6Stephen Shaw
1017Juan L NickaGermany2024-04-08Chapman, Ross E Esq RENEWAL75Stephen Shaw
1018Silvio V KolmetzFrance2024-04-25Chanay, Jeffrey A Esq PROPOSAL35Elwin Sharvill
1019Izzy S SchemmerCanada2024-04-17Feltz Printing Service NEW76Anna Fali
1020Stacey H FollerFrance2024-04-17Dorl, James J Esq NEW9Asiya Javayant
1021Julie P InouyeAustralia2024-04-01Chemel, James L Cpa PROPOSAL63Onyama Limba
1022Isabel W TollnerUnited Kingdom2024-04-23Rousseaux, Michael Esq NEW8Ioni Bowcher
1023Salvatore H BriddickArgentina2024-04-18Truhlar And Truhlar Attys UNQUALIFIED50Anna Fali
1024Maisha A FlosiBrazil2024-03-27Rangoni Of Florence RENEWAL83Onyama Limba
1025Arvin X RimItaly2024-04-08Printing Dimensions QUALIFIED31Xuxue Feng
1026Munro S MaletBrazil2024-03-31Rangoni Of Florence PROPOSAL23Elwin Sharvill
1027Clifford Y SaylorsJapan2024-04-01Rousseaux, Michael Esq PROPOSAL68Elwin Sharvill
1028Adams P WhobreyRussia2024-04-08Printing Dimensions QUALIFIED41Ivan Magalhaes
1029Jones M BologniaRussia2024-04-09King, Christopher A Esq RENEWAL80Asiya Javayant
1030Smith D VenereRussia2024-04-18Feiner Bros PROPOSAL18Anna Fali
1031Johnson W MaletJapan2024-04-05Commercial Press NEGOTIATION21Elwin Sharvill
1032Morrow I PaprockiAustralia2024-04-13Benton, John B Jr PROPOSAL62Elwin Sharvill
1033Maria R BowleyRussia2024-04-02Printing Dimensions NEW3Amy Elsner
1034Alejandro H FigeroaIndia2024-04-08Feiner Bros RENEWAL39Stephen Shaw
1035Kadeem C AmigonSpain2024-03-27Chemel, James L Cpa RENEWAL51Anna Fali
1036Antonio R MarrierGermany2024-04-15Rousseaux, Michael Esq RENEWAL95Anna Fali
1037Leon J DilliardArgentina2024-04-19Feiner Bros NEGOTIATION68Anna Fali
1038Jefferson H FollerJapan2024-04-02Feiner Bros QUALIFIED83Elwin Sharvill
1039Maisha Q CaudyAustralia2024-03-31Morlong Associates QUALIFIED76Asiya Javayant
1040Leon Y SchemmerArgentina2024-04-06Truhlar And Truhlar Attys PROPOSAL78Asiya Javayant
1041Darci I SaylorsIndia2024-04-15Dorl, James J Esq QUALIFIED50Anna Fali
1042Greenwood G FigeroaFrance2024-04-04Dorl, James J Esq PROPOSAL24Ivan Magalhaes
1043Chavez T OldroydArgentina2024-04-04King, Christopher A Esq QUALIFIED64Elwin Sharvill
1044Tony E MarrierRussia2024-03-29Commercial Press QUALIFIED86Ivan Magalhaes
1045Maria M BowleyArgentina2024-04-25Printing Dimensions QUALIFIED84Onyama Limba
1046Aditya Z SlusarskiRussia2024-03-31Morlong Associates QUALIFIED73Elwin Sharvill
1047Deepesh L MarrierRussia2024-04-25Feltz Printing Service QUALIFIED55Amy Elsner
1048Kadeem Y AlbaresItaly2024-03-28Benton, John B Jr QUALIFIED8Bernardo Dominic
1049Murillo G MorascaFrance2024-04-07Buckley Miller Wright NEGOTIATION79Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ricardo R CampainCanadaIvan Magalhaes PROPOSAL
Costa F RoysterItalyBernardo Dominic RENEWAL
Emily M RulapaughIndiaAmy Elsner PROPOSAL
David J MaletBrazilAnna Fali QUALIFIED
James Z MarrierItalyStephen Shaw QUALIFIED
Jefferson Y RutaAustraliaIoni Bowcher PROPOSAL
Cody B PerinArgentinaBernardo Dominic PROPOSAL
Juan V ShinkoRussiaBernardo Dominic NEGOTIATION
Octavia L OldroydAustraliaElwin Sharvill NEGOTIATION
Clifford P BologniaBrazilAmy Elsner NEGOTIATION
Clifford K TollnerFranceBernardo Dominic RENEWAL
Misaki V VocelkaBrazilOnyama Limba RENEWAL
Rodrigues U ChuiSpainStephen Shaw UNQUALIFIED
Darci Z GlickFranceIoni Bowcher NEGOTIATION
Rodrigues C FerenczIndiaOnyama Limba NEGOTIATION
Sinclair N PerinGermanyStephen Shaw NEGOTIATION
Jefferson F AmigonIndiaBernardo Dominic PROPOSAL
Ricardo U GlickAustraliaBernardo Dominic NEGOTIATION
Misaki J MarrierAustraliaOnyama Limba PROPOSAL
Mujtaba G RutaAustraliaXuxue Feng UNQUALIFIED
Octavia Q WaycottFranceXuxue Feng NEGOTIATION
Deepesh O BriddickSpainStephen Shaw UNQUALIFIED
Jennifer Y CaldareraArgentinaIvan Magalhaes UNQUALIFIED
Ashley K GillianSpainStephen Shaw UNQUALIFIED
Murillo U NickaFranceAsiya Javayant NEW
Aruna X OstroskyFranceAsiya Javayant NEGOTIATION
Francesco A WhobreyJapanAnna Fali RENEWAL
Aika C StensethUnited KingdomAnna Fali UNQUALIFIED
Aruna M MarrierArgentinaXuxue Feng UNQUALIFIED
Greenwood X MaletGermanyOnyama Limba NEGOTIATION
Misaki F DoeCanadaOnyama Limba PROPOSAL
Costa V NestleJapanStephen Shaw NEGOTIATION
Cody I BriddickItalyIvan Magalhaes PROPOSAL
Munro Y FollerAustraliaOnyama Limba UNQUALIFIED
Misaki K DoeUnited KingdomBernardo Dominic QUALIFIED
Julie K KuskoItalyIvan Magalhaes RENEWAL
Murillo R WhobreyUnited KingdomAnna Fali RENEWAL
Johnson G AmigonRussiaBernardo Dominic PROPOSAL
Greenwood B PaprockiFranceStephen Shaw PROPOSAL
Adams X VocelkaFranceAnna Fali NEW
Aika G WaycottFranceElwin Sharvill PROPOSAL
Emily O GarufiCanadaAnna Fali PROPOSAL
Jennifer W SaylorsRussiaXuxue Feng NEGOTIATION
Chavez V CaldareraUnited KingdomBernardo Dominic QUALIFIED
Tony M GauchoIndiaXuxue Feng UNQUALIFIED
Deepesh U MarrierSpainAsiya Javayant NEGOTIATION
Sinclair L MacleadSpainAmy Elsner RENEWAL
Alejandro P VenereCanadaXuxue Feng PROPOSAL
Ivar V NestleRussiaBernardo Dominic QUALIFIED
Aika R MaletArgentinaIoni Bowcher QUALIFIED
Frozen Columns
Name
Jeanfrancois O Sergi
Nicolas M Slusarski
Claire S Bolognia
Alejandro M Rim
Misaki P Saylors
Aditya P Waycott
Sinclair N Inouye
Stacey D Malet
Costa H Gaucho
Ricardo T Kolmetz
Jennifer Z Nicka
Darci W Campain
Stacey P Briddick
Faith Q Maclead
Claire O Oldroyd
Claire V Perin
Cody W Caldarera
Jefferson P Morasca
Morrow V Vocelka
Johnson H Malet
Ashley H Waycott
Alejandro C Waycott
Sinclair U Ruta
Cody W Rulapaugh
Antonio I Figeroa
Aditya P Malet
Jones R Albares
Ricardo V Butt
Wickens V Bolognia
Maria A Kusko
Alejandro T Shinko
Stacey T Flosi
Alejandro Y Stockham
Emily Q Ostrosky
Jennifer M Briddick
Deepesh N Kusko
Cody A Caldarera
Aruna U Malet
Alejandro G Saylors
Julie H Rulapaugh
Antonio T Stockham
Greenwood Z Vocelka
Salvatore N Poquette
Leon Q Darakjy
Salvatore F Malet
Costa E Garufi
Clifford Z Waycott
Mayumi F Campain
Maria J Tollner
Morrow M Perin
IdCountryDate
1000Australia2024-04-08
1001United Kingdom2024-04-19
1002India2024-04-19
1003Brazil2024-04-04
1004Spain2024-04-08
1005Canada2024-04-16
1006Italy2024-04-18
1007Japan2024-04-13
1008Germany2024-04-19
1009Italy2024-04-20
1010Germany2024-04-22
1011Spain2024-04-03
1012Spain2024-04-07
1013Australia2024-04-05
1014Australia2024-04-01
1015Germany2024-04-21
1016Germany2024-04-09
1017Canada2024-04-01
1018Spain2024-04-21
1019Brazil2024-04-06
1020Japan2024-04-08
1021Argentina2024-04-12
1022Canada2024-04-18
1023Brazil2024-03-31
1024Argentina2024-04-10
1025Australia2024-04-18
1026France2024-04-10
1027Argentina2024-04-02
1028Italy2024-04-15
1029Brazil2024-04-14
1030Brazil2024-04-22
1031Germany2024-04-25
1032United Kingdom2024-04-09
1033India2024-04-25
1034Germany2024-04-24
1035Spain2024-04-08
1036India2024-04-14
1037Australia2024-04-09
1038Spain2024-04-15
1039France2024-04-14
1040Argentina2024-04-09
1041United Kingdom2024-03-29
1042India2024-04-08
1043France2024-04-13
1044Australia2024-04-13
1045Japan2024-04-20
1046Japan2024-03-30
1047Japan2024-03-29
1048Argentina2024-04-09
1049Australia2024-04-20

On-Demand Data

NameIdCountryDate
David F Morasca1000United Kingdom2024-04-21
Cody E Doe1001Japan2024-04-21
Antonio W Oldroyd1002Germany2024-04-14
Darci W Venere1003Canada2024-04-17
Isabel U Chui1004Italy2024-04-21
David C Malet1005Japan2024-03-28
Nicolas Q Wieser1006Japan2024-04-02
Jones Z Paprocki1007Brazil2024-04-21
Kaitlin D Tollner1008India2024-04-06
Silvio Z Chui1009Australia2024-04-13
Claire W Wieser1010Australia2024-04-20
Adams M Maclead1011Canada2024-03-30
Wickens C Maclead1012Brazil2024-03-27
Tony Z Shinko1013Germany2024-04-25
Murillo F Ferencz1014Spain2024-04-09
Stacey M Garufi1015Brazil2024-04-18
Jefferson W Ruta1016Argentina2024-04-19
Arvin N Garufi1017Argentina2024-04-24
Jennifer M Nestle1018Canada2024-04-09
Juan Q Nicka1019Argentina2024-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony A AlbaresAustraliaAmy Elsner QUALIFIED
Kadeem H MaletUnited KingdomIoni Bowcher PROPOSAL
Clifford Q MacleadCanadaBernardo Dominic UNQUALIFIED
Leon C MacleadSpainOnyama Limba NEGOTIATION
Tony E OldroydSpainIoni Bowcher NEW
Mujtaba C OldroydGermanyBernardo Dominic NEW
Antonio Z SergiFranceAnna Fali RENEWAL
Murillo S MaletIndiaIvan Magalhaes QUALIFIED
Jones Q CampainBrazilXuxue Feng QUALIFIED
Morrow F NickaFranceElwin Sharvill UNQUALIFIED
Rodrigues A VocelkaIndiaOnyama Limba NEW
Francesco C GlickRussiaBernardo Dominic UNQUALIFIED
Antonio X InouyeGermanyIvan Magalhaes RENEWAL
Nicolas U NickaUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer D ChuiSpainXuxue Feng PROPOSAL
Salvatore L ShinkoFranceIoni Bowcher NEW
Cody F OldroydAustraliaStephen Shaw RENEWAL
Octavia D BowleyArgentinaIvan Magalhaes NEW
Murillo C MacleadAustraliaElwin Sharvill RENEWAL
Julie H RutaIndiaOnyama Limba PROPOSAL
Isabel U FollerJapanXuxue Feng NEW
Stacey Z GlickBrazilStephen Shaw UNQUALIFIED
Aruna V SaylorsUnited KingdomXuxue Feng PROPOSAL
Faith I FigeroaBrazilXuxue Feng NEGOTIATION
Maria D RoysterItalyOnyama Limba RENEWAL
Silvio C WhobreyUnited KingdomOnyama Limba NEW
Juan I RulapaughRussiaAmy Elsner PROPOSAL
Stacey K StensethIndiaAsiya Javayant UNQUALIFIED
Chavez C DoeCanadaStephen Shaw NEGOTIATION
Adams Z RulapaughIndiaElwin Sharvill NEW
Ivar U ButtFranceAsiya Javayant NEGOTIATION
Wickens L DarakjyCanadaIvan Magalhaes NEW
Leja B NestleJapanBernardo Dominic UNQUALIFIED
Smith G FollerFranceBernardo Dominic UNQUALIFIED
Johnson G RoysterArgentinaAsiya Javayant QUALIFIED
Jefferson J SlusarskiUnited KingdomIoni Bowcher PROPOSAL
Kaitlin B ShinkoIndiaAnna Fali NEW
Octavia O PerinSpainElwin Sharvill RENEWAL
Jones X FlosiCanadaElwin Sharvill RENEWAL
Smith N AmigonAustraliaAmy Elsner 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>