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
Greenwood J BriddickFranceXuxue Feng NEW
Emily T CaldareraAustraliaBernardo Dominic PROPOSAL
Alejandro W DarakjyArgentinaAmy Elsner UNQUALIFIED
Ricardo T SchemmerItalyOnyama Limba NEGOTIATION
Ivar C ButtJapanStephen Shaw RENEWAL
Leon L TollnerBrazilBernardo Dominic UNQUALIFIED
Emily W TollnerRussiaBernardo Dominic NEGOTIATION
Adams T PerinItalyAsiya Javayant PROPOSAL
Izzy W CampainFranceElwin Sharvill NEW
Julie B SlusarskiFranceOnyama Limba NEW
Aika D FerenczArgentinaOnyama Limba NEW
Munro Z FerenczJapanIoni Bowcher PROPOSAL
Wickens Y SlusarskiJapanAmy Elsner QUALIFIED
Salvatore N KuskoAustraliaBernardo Dominic RENEWAL
Francesco P MaletRussiaBernardo Dominic UNQUALIFIED
Munro E RulapaughItalyAmy Elsner NEGOTIATION
Kadeem Y PerinJapanAnna Fali UNQUALIFIED
Leja U BriddickSpainStephen Shaw RENEWAL
Sinclair N SaylorsSpainAmy Elsner NEW
Munro G VocelkaFranceIoni Bowcher NEGOTIATION
Arvin Y IturbideArgentinaAmy Elsner QUALIFIED
Costa L KolmetzAustraliaIoni Bowcher NEW
Ivar Z KolmetzSpainIvan Magalhaes PROPOSAL
Claire X SergiBrazilElwin Sharvill PROPOSAL
Alejandro Y VocelkaSpainAnna Fali PROPOSAL
Darci S BologniaGermanyAnna Fali RENEWAL
David R MarrierUnited KingdomBernardo Dominic QUALIFIED
Emily C MacleadBrazilIvan Magalhaes UNQUALIFIED
Smith W OldroydBrazilAmy Elsner RENEWAL
Kaitlin J PoquetteFranceIoni Bowcher RENEWAL
Claire C SlusarskiSpainBernardo Dominic UNQUALIFIED
Salvatore J FerenczArgentinaAnna Fali UNQUALIFIED
Aditya S RutaFranceIoni Bowcher PROPOSAL
Leja H FerenczFranceStephen Shaw RENEWAL
Kaitlin X ShinkoBrazilStephen Shaw UNQUALIFIED
Wickens D IturbideSpainIoni Bowcher PROPOSAL
Chavez A CaudyItalyAmy Elsner UNQUALIFIED
Antonio N MorascaSpainIvan Magalhaes QUALIFIED
David I NickaJapanAnna Fali NEW
Izzy G VenereAustraliaXuxue Feng UNQUALIFIED
Wickens I RimBrazilAnna Fali UNQUALIFIED
Aditya S PaprockiBrazilOnyama Limba QUALIFIED
Claire C BowleyFranceOnyama Limba RENEWAL
Munro U OldroydFranceStephen Shaw PROPOSAL
Costa C PoquetteAustraliaAsiya Javayant NEW
Juan L BologniaAustraliaAmy Elsner NEW
Alejandro U BowleyRussiaXuxue Feng NEGOTIATION
Aruna F RoysterIndiaAsiya Javayant UNQUALIFIED
Darci N DilliardSpainXuxue Feng PROPOSAL
Kadeem A FerenczItalyIoni Bowcher PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Rodrigues Q MacleadGermanyElwin Sharvill QUALIFIED
Ricardo M SlusarskiJapanXuxue Feng NEGOTIATION
Jefferson C DarakjyAustraliaOnyama Limba UNQUALIFIED
Antonio X WieserCanadaStephen Shaw NEGOTIATION
Leja X AlbaresItalyXuxue Feng PROPOSAL
Darci Q CaudyGermanyIvan Magalhaes RENEWAL
Emily N PoquetteArgentinaAmy Elsner NEW
Wickens C WaycottAustraliaXuxue Feng QUALIFIED
Jeanfrancois K ShinkoSpainIoni Bowcher PROPOSAL
Clifford L MaletItalyElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Smith Q IturbideRussia2024-04-25Truhlar And Truhlar Attys QUALIFIED55Ioni Bowcher
1001Octavia R TollnerJapan2024-04-02Truhlar And Truhlar Attys UNQUALIFIED90Xuxue Feng
1002Cody Z BologniaAustralia2024-04-07Truhlar And Truhlar Attys UNQUALIFIED48Amy Elsner
1003Jefferson F IturbideArgentina2024-04-02Feiner Bros PROPOSAL58Elwin Sharvill
1004David I StensethRussia2024-04-12Feiner Bros UNQUALIFIED76Asiya Javayant
1005Rodrigues U OldroydUnited Kingdom2024-04-07Feltz Printing Service PROPOSAL90Stephen Shaw
1006Munro T GlickItaly2024-04-09Benton, John B Jr UNQUALIFIED55Ioni Bowcher
1007Clifford G VocelkaGermany2024-04-16Chanay, Jeffrey A Esq QUALIFIED52Elwin Sharvill
1008Darci U StockhamCanada2024-04-05Buckley Miller Wright NEW64Ivan Magalhaes
1009Ashley T WhobreyUnited Kingdom2024-04-26Benton, John B Jr RENEWAL85Ivan Magalhaes
1010Cody L SaylorsAustralia2024-04-05Chanay, Jeffrey A Esq NEW4Onyama Limba
1011Isabel P StockhamUnited Kingdom2024-04-09Rousseaux, Michael Esq RENEWAL50Onyama Limba
1012Kaitlin R BologniaItaly2024-04-04Buckley Miller Wright PROPOSAL92Onyama Limba
1013Wickens P RimAustralia2024-04-17Feltz Printing Service NEGOTIATION56Elwin Sharvill
1014Murillo Z GillianSpain2024-04-23Rousseaux, Michael Esq QUALIFIED3Anna Fali
1015Kaitlin H NickaItaly2024-04-10Chapman, Ross E Esq PROPOSAL91Ivan Magalhaes
1016Cody J NickaCanada2024-04-02King, Christopher A Esq NEW31Ioni Bowcher
1017Aditya H TollnerIndia2024-04-28Buckley Miller Wright NEW19Ioni Bowcher
1018Francesco L FollerBrazil2024-04-10Commercial Press NEGOTIATION64Onyama Limba
1019Costa O PerinFrance2024-04-02Feltz Printing Service PROPOSAL15Onyama Limba
1020Rodrigues K TollnerUnited Kingdom2024-04-27Chemel, James L Cpa PROPOSAL10Stephen Shaw
1021Sinclair L PerinGermany2024-04-22Feltz Printing Service NEW4Elwin Sharvill
1022Nicolas S WieserBrazil2024-04-04Feiner Bros UNQUALIFIED65Asiya Javayant
1023Kaitlin M ButtGermany2024-04-10Chapman, Ross E Esq QUALIFIED68Stephen Shaw
1024Chavez S StensethBrazil2024-04-12Feiner Bros NEW61Amy Elsner
1025Arvin O InouyeCanada2024-04-25Feiner Bros NEGOTIATION93Asiya Javayant
1026Antonio C KolmetzItaly2024-04-24Truhlar And Truhlar Attys PROPOSAL53Ivan Magalhaes
1027Deepesh B GarufiFrance2024-04-24Rangoni Of Florence QUALIFIED90Anna Fali
1028David B MorascaFrance2024-04-15Chapman, Ross E Esq NEW69Asiya Javayant
1029Isabel Y OldroydArgentina2024-04-11Rousseaux, Michael Esq RENEWAL68Xuxue Feng
1030Leon G RoysterUnited Kingdom2024-04-15Printing Dimensions QUALIFIED57Elwin Sharvill
1031Munro Q FollerAustralia2024-04-20Chapman, Ross E Esq QUALIFIED40Ivan Magalhaes
1032Antonio G IturbideUnited Kingdom2024-04-25Truhlar And Truhlar Attys QUALIFIED68Ioni Bowcher
1033Maisha Q RimBrazil2024-04-05Chemel, James L Cpa NEW15Anna Fali
1034Mujtaba G KolmetzBrazil2024-04-28Rangoni Of Florence RENEWAL52Anna Fali
1035Maisha E StensethCanada2024-04-18Benton, John B Jr QUALIFIED3Onyama Limba
1036Antonio X StockhamArgentina2024-04-22Commercial Press NEGOTIATION94Amy Elsner
1037Salvatore Q ButtArgentina2024-04-05Feiner Bros QUALIFIED97Xuxue Feng
1038Aruna I CampainJapan2024-04-29King, Christopher A Esq NEGOTIATION8Anna Fali
1039James U ShinkoGermany2024-04-11Chapman, Ross E Esq PROPOSAL44Ivan Magalhaes
1040Jennifer E RutaCanada2024-04-04Benton, John B Jr PROPOSAL22Ioni Bowcher
1041Aruna U SaylorsCanada2024-04-09Feltz Printing Service UNQUALIFIED78Ivan Magalhaes
1042James Q ButtIndia2024-04-15Benton, John B Jr UNQUALIFIED38Ioni Bowcher
1043Sinclair N GarufiBrazil2024-04-03Morlong Associates NEGOTIATION17Ivan Magalhaes
1044Isabel G MorascaCanada2024-04-22Feltz Printing Service QUALIFIED53Bernardo Dominic
1045Maisha L OstroskySpain2024-04-18Commercial Press QUALIFIED17Ioni Bowcher
1046Cody D SlusarskiAustralia2024-04-26Buckley Miller Wright QUALIFIED61Ivan Magalhaes
1047Chavez B KuskoItaly2024-04-01Truhlar And Truhlar Attys UNQUALIFIED53Asiya Javayant
1048Misaki X GlickAustralia2024-04-13Rousseaux, Michael Esq RENEWAL65Onyama Limba
1049Aruna X MarrierArgentina2024-04-15Morlong Associates QUALIFIED54Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jennifer M WaycottIndiaStephen Shaw NEGOTIATION
Rodrigues B NestleGermanyAnna Fali QUALIFIED
Misaki G BowleyFranceBernardo Dominic QUALIFIED
Greenwood L DilliardFranceIoni Bowcher NEW
Wickens F RutaFranceAsiya Javayant NEW
Silvio X InouyeItalyXuxue Feng QUALIFIED
Francesco I SergiAustraliaAnna Fali QUALIFIED
Jones F RimRussiaElwin Sharvill NEW
Jennifer B PerinFranceBernardo Dominic NEW
Munro E AmigonSpainAsiya Javayant NEW
Ivar K AlbaresCanadaBernardo Dominic UNQUALIFIED
Morrow P AmigonAustraliaStephen Shaw NEW
Maria J BriddickIndiaAnna Fali NEGOTIATION
Morrow X DarakjyIndiaStephen Shaw RENEWAL
Costa C AmigonJapanStephen Shaw QUALIFIED
Costa F ChuiIndiaBernardo Dominic QUALIFIED
Octavia D CaldareraJapanStephen Shaw NEW
Clifford N BologniaIndiaIvan Magalhaes PROPOSAL
Jones S RoysterRussiaAsiya Javayant QUALIFIED
Silvio I WieserCanadaAnna Fali PROPOSAL
Jones V IturbideItalyXuxue Feng NEGOTIATION
Silvio W MacleadCanadaOnyama Limba RENEWAL
Isabel Q FigeroaFranceOnyama Limba UNQUALIFIED
Murillo J BologniaArgentinaStephen Shaw QUALIFIED
Julie B BologniaAustraliaBernardo Dominic QUALIFIED
Deepesh P BriddickArgentinaAsiya Javayant PROPOSAL
Aditya X AmigonRussiaIvan Magalhaes RENEWAL
Cody K PerinGermanyIvan Magalhaes UNQUALIFIED
Adams M PaprockiFranceAnna Fali QUALIFIED
Kaitlin W DilliardAustraliaIoni Bowcher NEW
Julie O DilliardBrazilAmy Elsner QUALIFIED
Antonio D MaletGermanyStephen Shaw UNQUALIFIED
Antonio U AmigonCanadaIoni Bowcher UNQUALIFIED
Mayumi V VocelkaFranceIvan Magalhaes UNQUALIFIED
Arvin O RutaGermanyAnna Fali UNQUALIFIED
Francesco I FigeroaArgentinaBernardo Dominic UNQUALIFIED
Aruna X BriddickRussiaElwin Sharvill PROPOSAL
Johnson T WieserSpainAsiya Javayant RENEWAL
Salvatore K MaletIndiaElwin Sharvill NEGOTIATION
Chavez F PaprockiCanadaIvan Magalhaes RENEWAL
Costa G BriddickBrazilXuxue Feng NEGOTIATION
Izzy A SaylorsUnited KingdomAsiya Javayant PROPOSAL
Nicolas H GarufiGermanyAnna Fali UNQUALIFIED
Jefferson D NestleUnited KingdomElwin Sharvill UNQUALIFIED
Aditya Q DarakjyIndiaAsiya Javayant UNQUALIFIED
David V NestleJapanAsiya Javayant RENEWAL
Maria A StensethArgentinaBernardo Dominic NEGOTIATION
James A PoquetteArgentinaStephen Shaw RENEWAL
Misaki X DilliardRussiaIoni Bowcher QUALIFIED
Ashley O CaudyBrazilAmy Elsner QUALIFIED
Frozen Columns
Name
Misaki L Malet
Ashley X Doe
Morrow S Iturbide
Rodrigues O Albares
Kadeem B Sergi
Jefferson N Wieser
Salvatore I Venere
Kaitlin V Iturbide
Deepesh H Amigon
Salvatore O Kolmetz
David W Wieser
Aditya E Caudy
Deepesh W Waycott
Ashley Z Foller
Johnson U Wieser
Costa H Gillian
Deepesh K Morasca
Jones T Nicka
Alejandro R Rim
Aika T Whobrey
David O Malet
Mayumi F Perin
Greenwood H Slusarski
Costa H Briddick
Izzy A Gillian
Mujtaba V Nicka
Faith M Shinko
Maria O Sergi
Sinclair O Tollner
Leja N Saylors
Silvio C Rulapaugh
Juan N Caldarera
Ashley D Caldarera
Nicolas Y Malet
Kaitlin E Morasca
Mayumi D Nicka
James N Royster
Octavia M Dilliard
Sinclair R Paprocki
Claire T Marrier
Kadeem P Butt
Adams I Iturbide
Murillo C Venere
Ricardo E Inouye
Mayumi D Ruta
Aruna G Gaucho
Darci H Inouye
Francesco R Sergi
Darci I Stockham
Tony G Figeroa
IdCountryDate
1000Australia2024-04-15
1001Canada2024-04-08
1002Japan2024-04-24
1003Russia2024-04-14
1004United Kingdom2024-04-15
1005Australia2024-04-12
1006France2024-04-11
1007Australia2024-04-03
1008Argentina2024-04-28
1009Argentina2024-04-07
1010Argentina2024-04-18
1011Argentina2024-04-11
1012Argentina2024-04-11
1013Australia2024-04-27
1014Australia2024-04-26
1015Germany2024-04-21
1016Canada2024-04-01
1017United Kingdom2024-04-30
1018Australia2024-04-12
1019Canada2024-04-02
1020Japan2024-04-06
1021Brazil2024-04-30
1022Italy2024-04-08
1023France2024-04-14
1024France2024-04-22
1025Russia2024-04-29
1026India2024-04-13
1027Canada2024-04-07
1028Brazil2024-04-17
1029Spain2024-04-19
1030Japan2024-04-07
1031India2024-04-09
1032Brazil2024-04-29
1033Russia2024-04-11
1034France2024-04-24
1035Canada2024-04-13
1036Germany2024-04-21
1037Russia2024-04-14
1038Germany2024-04-23
1039Spain2024-04-16
1040Spain2024-04-26
1041Spain2024-04-26
1042France2024-04-21
1043Italy2024-04-05
1044Australia2024-04-24
1045France2024-04-28
1046France2024-04-15
1047Argentina2024-04-22
1048France2024-04-27
1049India2024-04-09

On-Demand Data

NameIdCountryDate
Johnson Q Campain1000Germany2024-04-06
Antonio T Schemmer1001Australia2024-04-08
Stacey S Stenseth1002Italy2024-04-29
Leja A Ostrosky1003Canada2024-04-24
Clifford I Shinko1004Spain2024-04-12
Wickens M Gaucho1005France2024-04-03
Aruna M Flosi1006Spain2024-04-17
Jefferson O Kusko1007Russia2024-04-03
Aruna K Stenseth1008Japan2024-04-14
Silvio M Vocelka1009Spain2024-04-26
Kaitlin F Wieser1010Japan2024-04-07
Cody L Bowley1011Russia2024-04-07
Ashley U Nestle1012Italy2024-04-04
Deepesh I Doe1013Germany2024-04-26
Faith Y Kolmetz1014Italy2024-04-29
Cody S Briddick1015Russia2024-04-17
Ivar M Inouye1016Japan2024-04-13
Kaitlin W Bolognia1017India2024-04-05
Isabel S Stockham1018Argentina2024-04-25
Kadeem Z Figeroa1019France2024-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ashley E MacleadAustraliaAsiya Javayant NEGOTIATION
Tony S OstroskyCanadaBernardo Dominic QUALIFIED
Kadeem G SlusarskiRussiaXuxue Feng UNQUALIFIED
Leon N RulapaughUnited KingdomAnna Fali NEW
Darci W WieserUnited KingdomAsiya Javayant UNQUALIFIED
Kaitlin P RutaCanadaElwin Sharvill RENEWAL
Sinclair P OldroydItalyAmy Elsner RENEWAL
Tony B PerinJapanStephen Shaw NEGOTIATION
Darci O MacleadSpainElwin Sharvill UNQUALIFIED
Jennifer Q StensethFranceIoni Bowcher PROPOSAL
Julie U WhobreyRussiaIoni Bowcher RENEWAL
Claire T FlosiAustraliaStephen Shaw PROPOSAL
Francesco U WieserFranceOnyama Limba RENEWAL
Mujtaba R TollnerUnited KingdomAnna Fali RENEWAL
Aruna I VenereItalyAsiya Javayant RENEWAL
Rodrigues D GillianArgentinaIoni Bowcher QUALIFIED
Tony V PerinRussiaAsiya Javayant NEW
Johnson C OldroydGermanyElwin Sharvill RENEWAL
Mayumi L WieserArgentinaOnyama Limba RENEWAL
Wickens U MaletRussiaIvan Magalhaes PROPOSAL
Stacey P DarakjyArgentinaOnyama Limba PROPOSAL
Jefferson O BowleyUnited KingdomElwin Sharvill NEW
Jefferson O MorascaCanadaBernardo Dominic UNQUALIFIED
Maisha W GauchoSpainIoni Bowcher QUALIFIED
Johnson K StensethCanadaStephen Shaw UNQUALIFIED
Chavez R PoquetteUnited KingdomBernardo Dominic QUALIFIED
Izzy L MorascaFranceXuxue Feng NEW
Deepesh D IturbideIndiaAsiya Javayant UNQUALIFIED
Mayumi X ShinkoCanadaIvan Magalhaes NEGOTIATION
Costa B VenereJapanElwin Sharvill NEGOTIATION
Costa S GlickItalyIoni Bowcher NEW
Johnson J FigeroaRussiaBernardo Dominic QUALIFIED
Faith Q PaprockiSpainElwin Sharvill UNQUALIFIED
Izzy D BowleyAustraliaAmy Elsner RENEWAL
Aditya Q CampainGermanyIvan Magalhaes PROPOSAL
Isabel V FerenczItalyIoni Bowcher UNQUALIFIED
Julie J MorascaRussiaIoni Bowcher NEGOTIATION
Emily W FigeroaArgentinaIvan Magalhaes PROPOSAL
Jennifer X PerinBrazilStephen Shaw RENEWAL
Silvio C VocelkaAustraliaXuxue Feng NEGOTIATION

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