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
David U BriddickFranceAmy Elsner QUALIFIED
Nicolas Q BriddickRussiaXuxue Feng PROPOSAL
Ashley W NickaBrazilXuxue Feng NEGOTIATION
James F FigeroaJapanIoni Bowcher NEW
Juan Q InouyeUnited KingdomXuxue Feng PROPOSAL
Ivar J FerenczJapanAnna Fali NEGOTIATION
Jennifer G NickaItalyAsiya Javayant QUALIFIED
Salvatore C OldroydBrazilBernardo Dominic PROPOSAL
Misaki I MorascaUnited KingdomOnyama Limba UNQUALIFIED
Kaitlin L WaycottUnited KingdomOnyama Limba NEGOTIATION
Misaki A VocelkaBrazilIoni Bowcher PROPOSAL
Kadeem O StockhamRussiaAmy Elsner NEW
Izzy E DilliardJapanXuxue Feng RENEWAL
Antonio D AlbaresArgentinaAsiya Javayant NEW
Costa A SlusarskiArgentinaAmy Elsner QUALIFIED
Munro F RulapaughItalyIoni Bowcher UNQUALIFIED
Johnson V AmigonUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro Z GarufiGermanyBernardo Dominic NEGOTIATION
Johnson H CaldareraItalyBernardo Dominic NEGOTIATION
Izzy B StensethItalyOnyama Limba NEGOTIATION
Francesco W FigeroaCanadaIvan Magalhaes NEW
Juan F SergiBrazilBernardo Dominic UNQUALIFIED
Jones A RulapaughFranceAmy Elsner NEW
Aika W MarrierIndiaAnna Fali PROPOSAL
Morrow W NickaSpainAmy Elsner PROPOSAL
Emily B GarufiItalyStephen Shaw NEGOTIATION
Tony T GauchoAustraliaAnna Fali RENEWAL
Octavia B IturbideUnited KingdomOnyama Limba RENEWAL
Aruna A MaletGermanyAmy Elsner NEGOTIATION
Chavez A DilliardBrazilOnyama Limba QUALIFIED
Aruna H StockhamSpainOnyama Limba UNQUALIFIED
Chavez N MarrierCanadaAsiya Javayant QUALIFIED
Alejandro S AmigonRussiaBernardo Dominic QUALIFIED
Sinclair M StockhamAustraliaElwin Sharvill NEGOTIATION
Darci P VenereRussiaAsiya Javayant NEW
Salvatore D RimSpainAsiya Javayant QUALIFIED
Wickens X RulapaughSpainOnyama Limba UNQUALIFIED
Claire W FigeroaSpainAnna Fali RENEWAL
Mayumi E BowleyUnited KingdomAsiya Javayant NEW
Octavia J PerinIndiaAmy Elsner NEW
Nicolas R IturbideAustraliaElwin Sharvill PROPOSAL
Jeanfrancois Y FlosiRussiaXuxue Feng PROPOSAL
Octavia O StensethFranceIvan Magalhaes RENEWAL
Maria L MaletGermanyAsiya Javayant RENEWAL
Silvio F ChuiSpainBernardo Dominic QUALIFIED
Alejandro O DarakjyArgentinaAnna Fali RENEWAL
Silvio S VenereBrazilAsiya Javayant RENEWAL
Leon W StensethIndiaStephen Shaw NEGOTIATION
Julie E TollnerFranceAnna Fali RENEWAL
Sinclair B BologniaArgentinaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jeanfrancois B IturbideUnited KingdomAmy Elsner NEW
Deepesh W RimCanadaOnyama Limba NEW
Greenwood A AlbaresItalyOnyama Limba PROPOSAL
Maria F RoysterUnited KingdomIoni Bowcher QUALIFIED
Rodrigues C TollnerIndiaAmy Elsner PROPOSAL
Johnson D ChuiJapanBernardo Dominic NEW
Kadeem S RulapaughArgentinaXuxue Feng QUALIFIED
Kadeem H RoysterArgentinaIvan Magalhaes RENEWAL
Clifford U RoysterAustraliaAsiya Javayant NEW
Chavez R AlbaresRussiaAmy Elsner RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David Z RutaJapan2024-04-07Printing Dimensions UNQUALIFIED41Onyama Limba
1001Octavia O FigeroaRussia2024-04-10Commercial Press PROPOSAL74Anna Fali
1002Greenwood A OstroskyIndia2024-04-18Rangoni Of Florence NEGOTIATION64Onyama Limba
1003Ashley X StockhamUnited Kingdom2024-04-07Feiner Bros QUALIFIED69Amy Elsner
1004Arvin C CaldareraRussia2024-04-26Feiner Bros QUALIFIED79Stephen Shaw
1005Cody Z GlickAustralia2024-03-30Feiner Bros RENEWAL49Stephen Shaw
1006Mayumi Q RimSpain2024-04-09Rousseaux, Michael Esq PROPOSAL26Stephen Shaw
1007Kaitlin D PoquetteArgentina2024-04-25Rousseaux, Michael Esq NEGOTIATION21Elwin Sharvill
1008Clifford F StockhamCanada2024-04-11Chanay, Jeffrey A Esq NEW66Ivan Magalhaes
1009Isabel Q MorascaRussia2024-04-07Rangoni Of Florence UNQUALIFIED18Xuxue Feng
1010Wickens M BologniaCanada2024-04-25Commercial Press QUALIFIED87Anna Fali
1011Aika O RulapaughUnited Kingdom2024-04-25Chemel, James L Cpa PROPOSAL81Asiya Javayant
1012Salvatore L KolmetzArgentina2024-04-22King, Christopher A Esq NEW67Ioni Bowcher
1013David Y VocelkaIndia2024-03-29Chapman, Ross E Esq NEW5Amy Elsner
1014Morrow W MaletRussia2024-04-14Truhlar And Truhlar Attys NEGOTIATION45Xuxue Feng
1015Morrow N StockhamFrance2024-04-06Truhlar And Truhlar Attys NEW42Amy Elsner
1016Ricardo W AmigonItaly2024-04-01Rousseaux, Michael Esq NEW2Ioni Bowcher
1017Ivar N VenereCanada2024-04-08Rousseaux, Michael Esq PROPOSAL56Onyama Limba
1018Izzy G IturbideArgentina2024-04-12Benton, John B Jr NEW33Stephen Shaw
1019Aruna S GauchoRussia2024-04-17Commercial Press NEGOTIATION17Amy Elsner
1020Cody Q PerinBrazil2024-04-21King, Christopher A Esq UNQUALIFIED49Onyama Limba
1021Jefferson P OldroydUnited Kingdom2024-04-15Chemel, James L Cpa RENEWAL82Ioni Bowcher
1022Smith D BriddickItaly2024-04-11Chanay, Jeffrey A Esq RENEWAL51Stephen Shaw
1023Ivar N OldroydCanada2024-04-13Feiner Bros QUALIFIED64Anna Fali
1024Francesco E InouyeCanada2024-04-25King, Christopher A Esq PROPOSAL66Onyama Limba
1025James C AlbaresJapan2024-04-19Chanay, Jeffrey A Esq NEGOTIATION77Amy Elsner
1026Silvio P InouyeItaly2024-04-20Printing Dimensions UNQUALIFIED76Bernardo Dominic
1027Kaitlin L InouyeItaly2024-04-01Commercial Press PROPOSAL27Onyama Limba
1028Arvin B GarufiCanada2024-04-20King, Christopher A Esq NEW65Ioni Bowcher
1029Misaki A MorascaBrazil2024-04-11Chanay, Jeffrey A Esq PROPOSAL87Elwin Sharvill
1030Isabel A StensethGermany2024-04-13Feiner Bros NEW54Bernardo Dominic
1031Morrow A DilliardUnited Kingdom2024-03-30Chanay, Jeffrey A Esq QUALIFIED18Ivan Magalhaes
1032Deepesh B FollerCanada2024-04-15Rangoni Of Florence NEW41Asiya Javayant
1033Adams R MarrierRussia2024-04-19Chapman, Ross E Esq NEGOTIATION87Xuxue Feng
1034Izzy S GauchoRussia2024-03-30Dorl, James J Esq QUALIFIED3Bernardo Dominic
1035Ashley B BologniaRussia2024-04-11Benton, John B Jr QUALIFIED75Stephen Shaw
1036Maisha B DarakjyIndia2024-04-22Morlong Associates RENEWAL89Xuxue Feng
1037Mayumi Z GlickItaly2024-03-31Printing Dimensions PROPOSAL68Ivan Magalhaes
1038Faith Z NestleJapan2024-04-16Chapman, Ross E Esq PROPOSAL36Ioni Bowcher
1039Salvatore K StockhamArgentina2024-04-01Morlong Associates RENEWAL76Bernardo Dominic
1040Cody N FigeroaGermany2024-04-21King, Christopher A Esq QUALIFIED40Ioni Bowcher
1041Arvin W FollerUnited Kingdom2024-04-26Benton, John B Jr NEW32Ioni Bowcher
1042Arvin A MorascaBrazil2024-04-25Chanay, Jeffrey A Esq PROPOSAL31Bernardo Dominic
1043Munro J CaldareraRussia2024-04-05Buckley Miller Wright RENEWAL96Bernardo Dominic
1044Darci F RulapaughItaly2024-03-29Rangoni Of Florence NEGOTIATION69Ivan Magalhaes
1045Misaki W PoquetteCanada2024-03-28Rangoni Of Florence UNQUALIFIED15Amy Elsner
1046Munro T GillianCanada2024-03-30Rangoni Of Florence NEW36Ivan Magalhaes
1047Salvatore P RimItaly2024-04-17Rangoni Of Florence NEW36Anna Fali
1048Claire Q SlusarskiAustralia2024-04-11Buckley Miller Wright QUALIFIED70Asiya Javayant
1049Johnson P OstroskyGermany2024-04-24Chemel, James L Cpa NEGOTIATION76Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Jefferson P GarufiFranceXuxue Feng RENEWAL
Smith O MaletGermanyIoni Bowcher NEGOTIATION
Isabel V FollerBrazilAnna Fali NEGOTIATION
Munro Q PoquetteJapanStephen Shaw NEW
Adams O WhobreyJapanIoni Bowcher NEGOTIATION
Kadeem O GillianAustraliaAnna Fali RENEWAL
Rodrigues G PaprockiSpainIoni Bowcher NEGOTIATION
Deepesh S BologniaCanadaXuxue Feng PROPOSAL
Nicolas B PerinArgentinaBernardo Dominic NEW
Stacey K IturbideArgentinaElwin Sharvill PROPOSAL
Isabel X PerinUnited KingdomXuxue Feng QUALIFIED
Greenwood U CaudyAustraliaStephen Shaw UNQUALIFIED
Morrow N PoquetteAustraliaXuxue Feng QUALIFIED
Tony N WieserAustraliaStephen Shaw RENEWAL
Leon K ChuiIndiaStephen Shaw UNQUALIFIED
Juan C VenereUnited KingdomOnyama Limba UNQUALIFIED
Wickens B RoysterUnited KingdomAmy Elsner RENEWAL
Octavia G DilliardCanadaBernardo Dominic NEGOTIATION
Salvatore J SergiFranceAnna Fali UNQUALIFIED
Jones M CampainJapanElwin Sharvill QUALIFIED
Munro F MorascaAustraliaStephen Shaw QUALIFIED
Octavia E ChuiRussiaXuxue Feng NEW
Jeanfrancois I CaldareraItalyOnyama Limba UNQUALIFIED
Arvin J SergiAustraliaAmy Elsner QUALIFIED
Antonio U RoysterIndiaOnyama Limba RENEWAL
Ricardo E AmigonFranceAnna Fali NEGOTIATION
Isabel Y RimSpainXuxue Feng RENEWAL
Ashley B OstroskySpainStephen Shaw NEGOTIATION
Costa F StensethAustraliaElwin Sharvill NEW
Claire C StensethRussiaXuxue Feng NEGOTIATION
Cody I FerenczJapanBernardo Dominic PROPOSAL
Jennifer I ChuiCanadaIvan Magalhaes UNQUALIFIED
Ricardo P DilliardAustraliaAmy Elsner NEW
Jeanfrancois B DarakjyCanadaOnyama Limba NEW
Deepesh W DarakjySpainIvan Magalhaes NEW
Maria Y RutaSpainElwin Sharvill NEGOTIATION
Julie F GarufiAustraliaAmy Elsner NEW
Maisha D CampainSpainAnna Fali NEGOTIATION
Aditya Z WaycottBrazilIvan Magalhaes NEGOTIATION
Wickens N OldroydSpainOnyama Limba RENEWAL
Alejandro J GlickArgentinaIvan Magalhaes PROPOSAL
Nicolas E BowleyRussiaIoni Bowcher QUALIFIED
Kadeem B PaprockiSpainAmy Elsner PROPOSAL
Claire T SchemmerAustraliaIvan Magalhaes RENEWAL
Aditya U NickaSpainStephen Shaw NEGOTIATION
Faith O SlusarskiRussiaOnyama Limba NEGOTIATION
Claire A DarakjyFranceOnyama Limba RENEWAL
Costa V FlosiCanadaIoni Bowcher RENEWAL
Ricardo U TollnerArgentinaIoni Bowcher QUALIFIED
Arvin T PerinItalyBernardo Dominic RENEWAL
Frozen Columns
Name
Tony T Caldarera
Claire K Albares
Murillo V Doe
Misaki C Whobrey
Julie D Kusko
Deepesh F Campain
Francesco U Morasca
Mujtaba Z Amigon
Juan Y Saylors
Silvio M Amigon
Chavez S Inouye
Nicolas S Rulapaugh
Rodrigues P Saylors
Nicolas P Darakjy
Morrow S Ruta
Ashley K Malet
Nicolas E Oldroyd
Cody Q Gillian
Clifford S Darakjy
Juan V Ruta
Izzy B Tollner
Ricardo W Royster
Greenwood V Figeroa
Jones G Kusko
Smith T Malet
Maria D Briddick
Isabel E Kolmetz
Jones O Wieser
Antonio N Vocelka
Wickens L Caldarera
Claire C Malet
Darci I Iturbide
Faith H Maclead
Morrow B Schemmer
Maria B Poquette
Kaitlin I Ostrosky
Costa B Flosi
Sinclair X Maclead
Adams Z Ferencz
Clifford Q Paprocki
Jeanfrancois L Rulapaugh
Smith Y Garufi
Mayumi Z Inouye
Isabel B Tollner
Francesco W Gillian
Clifford R Rulapaugh
Greenwood E Kusko
Maria P Marrier
Julie Z Poquette
Claire X Stenseth
IdCountryDate
1000Canada2024-04-01
1001Japan2024-04-21
1002Brazil2024-04-11
1003United Kingdom2024-04-22
1004Australia2024-04-15
1005Brazil2024-04-12
1006Japan2024-03-28
1007Argentina2024-04-24
1008Japan2024-04-18
1009India2024-04-26
1010Brazil2024-04-18
1011United Kingdom2024-04-14
1012Italy2024-04-11
1013Italy2024-04-19
1014Canada2024-04-02
1015Canada2024-04-24
1016Germany2024-04-13
1017Russia2024-04-10
1018Russia2024-04-05
1019Canada2024-04-07
1020United Kingdom2024-04-13
1021Russia2024-04-01
1022United Kingdom2024-03-31
1023Japan2024-04-21
1024Japan2024-04-25
1025Australia2024-04-11
1026Italy2024-04-09
1027Canada2024-04-10
1028Spain2024-04-24
1029Australia2024-03-29
1030Australia2024-04-24
1031Spain2024-04-02
1032Argentina2024-04-12
1033Brazil2024-04-26
1034United Kingdom2024-04-12
1035Japan2024-04-22
1036Russia2024-03-30
1037Spain2024-03-30
1038Japan2024-04-12
1039France2024-04-03
1040Argentina2024-04-02
1041Russia2024-04-24
1042Italy2024-03-31
1043Brazil2024-04-08
1044Japan2024-04-12
1045India2024-04-23
1046Argentina2024-04-17
1047Germany2024-04-13
1048Brazil2024-04-13
1049Canada2024-04-10

On-Demand Data

NameIdCountryDate
Johnson W Doe1000France2024-04-10
Isabel Q Bowley1001India2024-04-17
Misaki Z Maclead1002Canada2024-04-14
Adams K Inouye1003Russia2024-04-26
Cody O Wieser1004Germany2024-04-17
Costa C Briddick1005Australia2024-04-21
Francesco B Campain1006Japan2024-04-08
Misaki X Caudy1007Australia2024-03-29
Greenwood Y Schemmer1008Russia2024-04-13
Kadeem Q Ostrosky1009India2024-04-19
Octavia A Vocelka1010Germany2024-04-12
Chavez U Wieser1011Brazil2024-04-03
Jeanfrancois I Stockham1012Brazil2024-04-22
Leon E Saylors1013Germany2024-04-04
Johnson P Perin1014Russia2024-04-05
Sinclair I Stockham1015Australia2024-04-20
Salvatore R Caldarera1016Australia2024-04-16
Juan G Glick1017Italy2024-04-09
Adams Y Whobrey1018Australia2024-03-30
Maisha F Malet1019Germany2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas L IturbideCanadaIvan Magalhaes PROPOSAL
Maisha Q DoeJapanAsiya Javayant PROPOSAL
Mujtaba J ChuiArgentinaStephen Shaw UNQUALIFIED
Aika P RutaArgentinaAnna Fali QUALIFIED
Stacey O BriddickJapanAsiya Javayant NEW
Smith P IturbideCanadaStephen Shaw QUALIFIED
James S FerenczBrazilOnyama Limba QUALIFIED
Nicolas Z OldroydBrazilAnna Fali NEGOTIATION
Silvio H AmigonRussiaElwin Sharvill QUALIFIED
Alejandro L MaletCanadaStephen Shaw NEW
Clifford P AmigonUnited KingdomAnna Fali NEW
Aditya V BowleyIndiaAsiya Javayant UNQUALIFIED
Silvio D AlbaresCanadaXuxue Feng UNQUALIFIED
Rodrigues S MacleadRussiaStephen Shaw NEGOTIATION
Smith U RulapaughJapanXuxue Feng UNQUALIFIED
Jennifer Z BowleyJapanIvan Magalhaes NEW
Leon K VocelkaRussiaStephen Shaw UNQUALIFIED
Salvatore P BologniaGermanyOnyama Limba QUALIFIED
Isabel T WaycottItalyXuxue Feng NEW
Johnson D SaylorsItalyIoni Bowcher NEW
Munro A PerinAustraliaStephen Shaw QUALIFIED
Nicolas T CaldareraFranceElwin Sharvill RENEWAL
Nicolas F CaldareraItalyAmy Elsner QUALIFIED
Jones Z BologniaJapanElwin Sharvill NEW
Emily S AlbaresBrazilElwin Sharvill UNQUALIFIED
David O NickaBrazilXuxue Feng PROPOSAL
Mayumi M CaudyIndiaXuxue Feng UNQUALIFIED
Maria S MarrierIndiaStephen Shaw NEGOTIATION
Smith O ChuiIndiaAmy Elsner NEW
Juan O PoquetteRussiaStephen Shaw UNQUALIFIED
Leon I NestleRussiaAnna Fali NEGOTIATION
Greenwood N SergiItalyIoni Bowcher QUALIFIED
Chavez U BriddickFranceIoni Bowcher NEGOTIATION
David Z NickaSpainIvan Magalhaes PROPOSAL
Costa G OldroydAustraliaAnna Fali RENEWAL
Isabel S VocelkaAustraliaAnna Fali UNQUALIFIED
Nicolas S AlbaresBrazilAsiya Javayant NEW
Jennifer O MacleadAustraliaIoni Bowcher PROPOSAL
Maisha T MaletGermanyElwin Sharvill UNQUALIFIED
Greenwood X ButtSpainIvan Magalhaes 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>