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 P SaylorsArgentinaElwin Sharvill PROPOSAL
Greenwood X FlosiJapanStephen Shaw RENEWAL
Maria O InouyeCanadaAnna Fali NEW
Jefferson D MaletAustraliaOnyama Limba QUALIFIED
Chavez I StockhamFranceAnna Fali QUALIFIED
Jones K KolmetzUnited KingdomElwin Sharvill QUALIFIED
Kaitlin I KolmetzUnited KingdomAnna Fali QUALIFIED
Nicolas Q PoquetteCanadaBernardo Dominic NEW
Alejandro Q SchemmerSpainBernardo Dominic PROPOSAL
Aditya F GillianBrazilAsiya Javayant NEGOTIATION
Nicolas I GillianFranceAsiya Javayant NEGOTIATION
Darci J PoquetteIndiaAsiya Javayant QUALIFIED
Darci L RutaSpainAnna Fali NEW
Johnson S MacleadAustraliaOnyama Limba NEGOTIATION
Arvin Q OstroskyGermanyElwin Sharvill RENEWAL
Cody D WieserJapanAnna Fali NEW
Smith D WieserGermanyAnna Fali UNQUALIFIED
David T OstroskyIndiaOnyama Limba RENEWAL
Jeanfrancois U AmigonFranceXuxue Feng PROPOSAL
Costa F KolmetzUnited KingdomElwin Sharvill NEGOTIATION
Adams F KolmetzJapanElwin Sharvill QUALIFIED
Juan H FerenczArgentinaXuxue Feng QUALIFIED
Mayumi L ShinkoSpainIoni Bowcher UNQUALIFIED
Wickens Y RoysterIndiaBernardo Dominic PROPOSAL
Salvatore E MorascaRussiaOnyama Limba UNQUALIFIED
Leja I DoeSpainIoni Bowcher NEW
Aika J KuskoFranceBernardo Dominic PROPOSAL
Munro Q OstroskyUnited KingdomElwin Sharvill QUALIFIED
Kadeem V WieserJapanStephen Shaw RENEWAL
David D FerenczBrazilXuxue Feng NEGOTIATION
Jones X KolmetzArgentinaOnyama Limba NEW
Adams I GillianFranceXuxue Feng RENEWAL
David S ChuiFranceOnyama Limba NEW
Cody F TollnerCanadaOnyama Limba UNQUALIFIED
Alejandro V StockhamBrazilAnna Fali PROPOSAL
Deepesh E PaprockiCanadaIvan Magalhaes NEGOTIATION
Sinclair G FerenczIndiaOnyama Limba QUALIFIED
Ivar O SlusarskiCanadaAsiya Javayant PROPOSAL
Kadeem V CaudyIndiaElwin Sharvill NEW
Murillo F ShinkoFranceBernardo Dominic PROPOSAL
Aruna H CampainRussiaAmy Elsner RENEWAL
Claire H MacleadCanadaStephen Shaw QUALIFIED
Ricardo Y SlusarskiItalyBernardo Dominic RENEWAL
Emily T NickaSpainStephen Shaw UNQUALIFIED
Arvin L AmigonGermanyIoni Bowcher UNQUALIFIED
Murillo W SaylorsItalyAsiya Javayant QUALIFIED
Ricardo X StensethUnited KingdomIoni Bowcher NEW
Deepesh M FerenczBrazilIoni Bowcher NEW
Jones L PerinGermanyAmy Elsner UNQUALIFIED
Kaitlin I StockhamItalyIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Isabel I OstroskyArgentinaAsiya Javayant RENEWAL
Tony A FigeroaArgentinaOnyama Limba QUALIFIED
Aditya U AmigonRussiaBernardo Dominic NEGOTIATION
Costa C ShinkoJapanOnyama Limba NEW
Emily C OstroskyArgentinaAsiya Javayant UNQUALIFIED
Jones S OldroydUnited KingdomIoni Bowcher NEGOTIATION
Maisha M FerenczGermanyXuxue Feng RENEWAL
Leon C ChuiJapanBernardo Dominic QUALIFIED
Mayumi X MaletBrazilXuxue Feng PROPOSAL
Johnson Q SchemmerSpainStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Deepesh D TollnerGermany2024-05-06Chanay, Jeffrey A Esq RENEWAL51Xuxue Feng
1001Juan T WieserFrance2024-04-27Truhlar And Truhlar Attys RENEWAL22Amy Elsner
1002Johnson R DoeItaly2024-04-16Chapman, Ross E Esq NEW89Asiya Javayant
1003Misaki L KolmetzSpain2024-04-17Printing Dimensions PROPOSAL14Amy Elsner
1004Izzy A NestleRussia2024-04-23Morlong Associates PROPOSAL86Onyama Limba
1005Morrow J WhobreySpain2024-04-27Feiner Bros NEGOTIATION82Ivan Magalhaes
1006Emily R NickaBrazil2024-04-28Morlong Associates UNQUALIFIED44Ivan Magalhaes
1007Ivar P PerinIndia2024-04-19Truhlar And Truhlar Attys QUALIFIED2Stephen Shaw
1008Octavia O FlosiCanada2024-04-15Commercial Press NEW18Bernardo Dominic
1009Clifford S RoysterAustralia2024-04-30Rousseaux, Michael Esq UNQUALIFIED61Amy Elsner
1010James E WieserSpain2024-05-09Buckley Miller Wright NEGOTIATION60Ivan Magalhaes
1011Greenwood Z BriddickItaly2024-04-30Rangoni Of Florence RENEWAL16Stephen Shaw
1012Maria Y GlickCanada2024-04-15Truhlar And Truhlar Attys UNQUALIFIED6Onyama Limba
1013Leon H TollnerIndia2024-04-28Chapman, Ross E Esq NEW93Anna Fali
1014Jennifer J MarrierJapan2024-05-05Chemel, James L Cpa NEW15Ioni Bowcher
1015Mayumi W GillianJapan2024-05-04Dorl, James J Esq NEGOTIATION92Elwin Sharvill
1016Aditya C FerenczCanada2024-04-18Commercial Press PROPOSAL52Stephen Shaw
1017Silvio O InouyeArgentina2024-04-26Buckley Miller Wright UNQUALIFIED95Amy Elsner
1018Antonio R GarufiIndia2024-04-30Rangoni Of Florence NEW91Asiya Javayant
1019Deepesh A MaletGermany2024-04-19Commercial Press UNQUALIFIED23Bernardo Dominic
1020Wickens X FerenczFrance2024-04-30Truhlar And Truhlar Attys UNQUALIFIED19Xuxue Feng
1021Salvatore R PoquetteJapan2024-04-24Dorl, James J Esq PROPOSAL57Onyama Limba
1022Leja W BriddickSpain2024-04-16Feltz Printing Service PROPOSAL4Elwin Sharvill
1023Jefferson I VocelkaAustralia2024-04-18Truhlar And Truhlar Attys NEGOTIATION4Ioni Bowcher
1024Jefferson L MaletSpain2024-04-13King, Christopher A Esq UNQUALIFIED66Ivan Magalhaes
1025Mujtaba A OstroskyJapan2024-05-05Buckley Miller Wright NEW12Ivan Magalhaes
1026Isabel V DarakjyRussia2024-05-07Chapman, Ross E Esq PROPOSAL17Ioni Bowcher
1027Izzy H BologniaSpain2024-04-24Chemel, James L Cpa QUALIFIED96Stephen Shaw
1028Emily R BologniaFrance2024-04-12Commercial Press PROPOSAL35Stephen Shaw
1029Johnson I ButtCanada2024-05-08King, Christopher A Esq QUALIFIED66Amy Elsner
1030Mayumi Q MaletBrazil2024-05-06Chapman, Ross E Esq UNQUALIFIED56Xuxue Feng
1031Aika B MarrierArgentina2024-05-06Chapman, Ross E Esq RENEWAL14Asiya Javayant
1032Juan C WhobreyRussia2024-05-06Truhlar And Truhlar Attys PROPOSAL72Xuxue Feng
1033Maria A OldroydCanada2024-04-10Feltz Printing Service QUALIFIED61Ioni Bowcher
1034Faith M NestleJapan2024-05-01Buckley Miller Wright QUALIFIED26Xuxue Feng
1035Sinclair F ShinkoSpain2024-05-02Printing Dimensions NEW54Amy Elsner
1036Arvin V InouyeUnited Kingdom2024-04-29Rousseaux, Michael Esq QUALIFIED15Onyama Limba
1037Rodrigues Z MorascaAustralia2024-05-07Printing Dimensions QUALIFIED88Amy Elsner
1038Greenwood B IturbideRussia2024-04-12Benton, John B Jr NEGOTIATION71Ivan Magalhaes
1039Leon R CaudyArgentina2024-04-23Chemel, James L Cpa PROPOSAL68Bernardo Dominic
1040Maria U OstroskyGermany2024-04-16Buckley Miller Wright NEGOTIATION4Ivan Magalhaes
1041Jeanfrancois T RutaIndia2024-04-17Morlong Associates NEW25Onyama Limba
1042Leon Y InouyeIndia2024-05-02Feltz Printing Service UNQUALIFIED39Stephen Shaw
1043Octavia R DarakjyUnited Kingdom2024-05-05King, Christopher A Esq RENEWAL63Onyama Limba
1044Ashley C StockhamSpain2024-04-29King, Christopher A Esq UNQUALIFIED97Anna Fali
1045Kaitlin S OldroydGermany2024-04-27Chemel, James L Cpa NEW11Asiya Javayant
1046Chavez R ButtGermany2024-04-27Buckley Miller Wright PROPOSAL17Asiya Javayant
1047David Y MorascaIndia2024-05-09Benton, John B Jr PROPOSAL66Ioni Bowcher
1048Arvin B BologniaCanada2024-05-04Truhlar And Truhlar Attys QUALIFIED27Anna Fali
1049Adams B MaletBrazil2024-04-22Benton, John B Jr PROPOSAL54Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Faith O StensethFranceAnna Fali UNQUALIFIED
Tony X KuskoGermanyOnyama Limba UNQUALIFIED
Claire G ChuiFranceAsiya Javayant NEW
Jefferson Z PerinFranceXuxue Feng QUALIFIED
Clifford I BologniaUnited KingdomElwin Sharvill QUALIFIED
Johnson M FigeroaFranceAsiya Javayant UNQUALIFIED
Faith W CaldareraArgentinaXuxue Feng UNQUALIFIED
Darci T ChuiJapanStephen Shaw PROPOSAL
Antonio I GillianAustraliaAnna Fali NEW
Rodrigues V OstroskyJapanOnyama Limba RENEWAL
Salvatore U AmigonIndiaIoni Bowcher QUALIFIED
Chavez D SlusarskiBrazilAnna Fali NEW
Rodrigues S WieserIndiaOnyama Limba UNQUALIFIED
Costa Z GauchoAustraliaElwin Sharvill QUALIFIED
Maisha D CaldareraSpainAmy Elsner PROPOSAL
Wickens Y DoeUnited KingdomElwin Sharvill NEW
Johnson O IturbideIndiaIoni Bowcher NEW
Stacey L FollerFranceBernardo Dominic PROPOSAL
Jeanfrancois J GarufiArgentinaAmy Elsner NEW
Greenwood K GillianAustraliaIvan Magalhaes UNQUALIFIED
Deepesh Q KolmetzSpainStephen Shaw QUALIFIED
Jeanfrancois K MorascaUnited KingdomIoni Bowcher PROPOSAL
Aika I NickaFranceIoni Bowcher RENEWAL
Rodrigues H StensethUnited KingdomIoni Bowcher NEW
Munro E CaldareraItalyIoni Bowcher NEGOTIATION
Antonio S FlosiIndiaIoni Bowcher NEW
Morrow K SaylorsAustraliaBernardo Dominic NEGOTIATION
Jefferson I MaletSpainBernardo Dominic NEGOTIATION
Clifford E StockhamCanadaAsiya Javayant UNQUALIFIED
Alejandro A MaletJapanElwin Sharvill QUALIFIED
Claire R StockhamGermanyXuxue Feng NEW
Francesco Q KuskoIndiaAmy Elsner PROPOSAL
Salvatore G KolmetzGermanyElwin Sharvill RENEWAL
Darci R MorascaSpainXuxue Feng NEGOTIATION
Nicolas M FigeroaAustraliaIvan Magalhaes RENEWAL
Julie N RulapaughSpainBernardo Dominic NEW
Chavez P CaudyIndiaElwin Sharvill NEW
Stacey F KolmetzItalyAsiya Javayant QUALIFIED
Mayumi K OstroskyUnited KingdomIvan Magalhaes RENEWAL
Greenwood Q VocelkaUnited KingdomAnna Fali RENEWAL
Nicolas I FlosiBrazilAsiya Javayant PROPOSAL
Juan C MaletUnited KingdomAsiya Javayant NEGOTIATION
Jeanfrancois X MarrierSpainElwin Sharvill QUALIFIED
Izzy U DarakjyGermanyOnyama Limba QUALIFIED
Ivar V MaletCanadaOnyama Limba UNQUALIFIED
David E WieserGermanyAmy Elsner NEGOTIATION
David T SchemmerUnited KingdomAsiya Javayant RENEWAL
Izzy H ChuiArgentinaElwin Sharvill NEGOTIATION
Jefferson M VenereArgentinaAsiya Javayant PROPOSAL
Munro U BowleyJapanAmy Elsner PROPOSAL
Frozen Columns
Name
Julie V Bolognia
Munro J Glick
Maisha N Caldarera
Smith I Sergi
Maria S Glick
Faith W Campain
Maisha S Royster
Maria S Wieser
Izzy I Slusarski
Aruna T Gaucho
Jefferson N Glick
Rodrigues J Nestle
Nicolas N Bolognia
Darci W Shinko
Jefferson U Saylors
Salvatore H Slusarski
Stacey R Perin
Wickens X Darakjy
Maria H Ruta
Murillo M Stenseth
Octavia S Glick
Tony X Butt
Maisha K Iturbide
Ashley U Malet
Ashley S Kolmetz
Costa I Oldroyd
Darci J Waycott
Rodrigues Q Venere
Darci T Ferencz
Silvio J Ostrosky
Jefferson B Caudy
Greenwood G Flosi
Maria P Caudy
Kaitlin R Bolognia
Claire W Garufi
Nicolas Z Ferencz
Ricardo E Paprocki
Cody Y Perin
Darci S Wieser
Arvin D Slusarski
Emily D Garufi
Jones X Poquette
Wickens D Malet
Alejandro R Flosi
Maria V Malet
Wickens A Rulapaugh
Antonio P Maclead
Jones D Doe
Aika R Ferencz
Jeanfrancois L Campain
IdCountryDate
1000India2024-05-06
1001India2024-05-02
1002Russia2024-05-07
1003Australia2024-05-09
1004France2024-04-18
1005Australia2024-04-23
1006India2024-04-14
1007Australia2024-05-03
1008France2024-04-24
1009Germany2024-04-18
1010Japan2024-04-10
1011Spain2024-05-08
1012Australia2024-05-05
1013Argentina2024-04-16
1014France2024-04-21
1015Australia2024-05-01
1016Japan2024-05-07
1017France2024-05-01
1018Japan2024-04-29
1019Australia2024-04-21
1020Australia2024-04-30
1021Australia2024-04-13
1022Australia2024-04-28
1023United Kingdom2024-04-19
1024Australia2024-04-15
1025Italy2024-04-28
1026Brazil2024-04-15
1027Italy2024-05-01
1028Australia2024-04-25
1029India2024-04-29
1030Australia2024-04-13
1031India2024-04-30
1032Italy2024-04-29
1033Argentina2024-04-18
1034Japan2024-05-05
1035Japan2024-05-08
1036Italy2024-04-18
1037Spain2024-04-11
1038Canada2024-04-19
1039Spain2024-04-30
1040United Kingdom2024-05-01
1041Australia2024-05-07
1042Germany2024-04-22
1043Brazil2024-04-28
1044Canada2024-04-17
1045Canada2024-05-06
1046France2024-04-12
1047Argentina2024-04-10
1048Japan2024-05-01
1049Australia2024-04-16

On-Demand Data

NameIdCountryDate
Aika T Caldarera1000Australia2024-04-26
Ashley V Bowley1001Russia2024-05-09
Claire R Marrier1002United Kingdom2024-04-18
Mayumi O Schemmer1003Italy2024-04-20
Stacey H Poquette1004India2024-04-19
Maria B Nicka1005Argentina2024-04-16
Aika F Dilliard1006India2024-04-25
Smith D Marrier1007Brazil2024-04-20
Emily P Tollner1008Italy2024-04-14
Alejandro K Nestle1009Spain2024-04-23
Ivar P Bowley1010India2024-04-22
Cody N Kolmetz1011Japan2024-04-29
Deepesh S Slusarski1012India2024-05-03
Aruna H Briddick1013United Kingdom2024-05-01
Aruna G Amigon1014Russia2024-04-15
Nicolas P Chui1015Argentina2024-04-22
Claire K Garufi1016Italy2024-04-14
Rodrigues O Nicka1017Italy2024-05-01
Alejandro I Royster1018France2024-04-28
Julie W Venere1019Brazil2024-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna J PoquetteAustraliaAnna Fali UNQUALIFIED
Johnson Q MacleadItalyAsiya Javayant RENEWAL
James Y VocelkaItalyIvan Magalhaes PROPOSAL
Faith L RimArgentinaAsiya Javayant NEGOTIATION
Claire X NestleArgentinaXuxue Feng RENEWAL
Antonio E MarrierRussiaStephen Shaw NEW
Leja L IturbideGermanyStephen Shaw NEGOTIATION
Cody K ShinkoSpainBernardo Dominic NEW
Ricardo X CampainIndiaAmy Elsner UNQUALIFIED
Faith H IturbideGermanyIvan Magalhaes PROPOSAL
Munro Y WieserUnited KingdomAmy Elsner UNQUALIFIED
Stacey I CaudyBrazilStephen Shaw NEW
Aditya G SaylorsGermanyStephen Shaw NEW
Chavez Y IturbideIndiaIoni Bowcher QUALIFIED
Rodrigues W MorascaJapanXuxue Feng UNQUALIFIED
Maria B WaycottUnited KingdomAsiya Javayant NEW
Ivar Y WieserUnited KingdomXuxue Feng RENEWAL
Izzy M MaletCanadaOnyama Limba UNQUALIFIED
Mayumi M GauchoRussiaAsiya Javayant QUALIFIED
Cody W WaycottItalyAmy Elsner PROPOSAL
Morrow I ShinkoIndiaOnyama Limba RENEWAL
Antonio E CampainRussiaAsiya Javayant UNQUALIFIED
Leja V GillianGermanyElwin Sharvill NEW
James Y ChuiArgentinaIvan Magalhaes PROPOSAL
Munro Z InouyeIndiaAsiya Javayant NEW
Morrow C BriddickBrazilAmy Elsner UNQUALIFIED
Mujtaba G KuskoRussiaAnna Fali QUALIFIED
Morrow K SergiAustraliaIoni Bowcher PROPOSAL
Faith X VenereGermanyAsiya Javayant QUALIFIED
Stacey S VocelkaUnited KingdomElwin Sharvill NEW
Ricardo F WieserIndiaAnna Fali NEW
Johnson P FigeroaJapanBernardo Dominic NEW
Aditya G BologniaBrazilBernardo Dominic PROPOSAL
Antonio J PerinBrazilOnyama Limba NEGOTIATION
Chavez B FigeroaSpainIvan Magalhaes NEGOTIATION
Costa Q SaylorsUnited KingdomElwin Sharvill UNQUALIFIED
Jennifer F StockhamAustraliaStephen Shaw RENEWAL
Mujtaba L DoeAustraliaAnna Fali PROPOSAL
Claire K KolmetzArgentinaElwin Sharvill UNQUALIFIED
Munro C SergiFranceAnna Fali UNQUALIFIED

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