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
Claire B StockhamRussiaStephen Shaw UNQUALIFIED
Salvatore M CaudyBrazilAmy Elsner UNQUALIFIED
Clifford U CampainSpainAmy Elsner RENEWAL
Misaki Z TollnerArgentinaOnyama Limba UNQUALIFIED
Kaitlin D SergiIndiaIoni Bowcher RENEWAL
Munro P OstroskySpainStephen Shaw RENEWAL
Isabel K PerinFranceBernardo Dominic PROPOSAL
Antonio N FlosiFranceAnna Fali QUALIFIED
Rodrigues E FigeroaArgentinaStephen Shaw RENEWAL
David K PaprockiJapanStephen Shaw PROPOSAL
Smith S OldroydRussiaBernardo Dominic NEW
Nicolas Q GarufiSpainIoni Bowcher NEW
Tony L RulapaughUnited KingdomIoni Bowcher QUALIFIED
Octavia N GauchoArgentinaOnyama Limba QUALIFIED
Johnson F StensethJapanElwin Sharvill UNQUALIFIED
Adams B SergiArgentinaStephen Shaw PROPOSAL
Chavez M RimSpainElwin Sharvill UNQUALIFIED
Cody C DoeCanadaStephen Shaw UNQUALIFIED
Maisha F ButtGermanyAsiya Javayant NEW
Emily H ButtFranceElwin Sharvill NEW
Mayumi F KuskoRussiaBernardo Dominic QUALIFIED
Chavez N KuskoSpainXuxue Feng UNQUALIFIED
Arvin A InouyeItalyIoni Bowcher NEGOTIATION
Leon R CaldareraJapanAnna Fali NEGOTIATION
Cody F PoquetteItalyElwin Sharvill UNQUALIFIED
Nicolas R StensethGermanyAsiya Javayant UNQUALIFIED
Misaki X TollnerRussiaOnyama Limba NEGOTIATION
Nicolas G TollnerGermanyElwin Sharvill UNQUALIFIED
Mayumi K WaycottCanadaXuxue Feng NEW
Mayumi D FerenczBrazilXuxue Feng NEW
Isabel B ButtArgentinaElwin Sharvill PROPOSAL
Izzy P MaletRussiaIoni Bowcher QUALIFIED
Munro B VenereCanadaStephen Shaw RENEWAL
Silvio J RoysterBrazilStephen Shaw NEGOTIATION
Misaki V FlosiFranceIoni Bowcher QUALIFIED
Morrow U StensethItalyAnna Fali NEGOTIATION
Mayumi R GlickSpainAmy Elsner QUALIFIED
Faith M AmigonUnited KingdomAmy Elsner RENEWAL
Costa M MaletCanadaStephen Shaw RENEWAL
Maisha X BowleyRussiaAsiya Javayant QUALIFIED
Isabel E DilliardSpainStephen Shaw NEW
Mayumi B BologniaGermanyElwin Sharvill NEW
Johnson J RimArgentinaElwin Sharvill RENEWAL
Costa A MaletAustraliaBernardo Dominic NEGOTIATION
Mujtaba N AmigonItalyAsiya Javayant QUALIFIED
Maisha L DarakjyItalyXuxue Feng QUALIFIED
Greenwood A GillianFranceIvan Magalhaes NEGOTIATION
Alejandro M RutaIndiaXuxue Feng UNQUALIFIED
Jennifer F BowleyJapanStephen Shaw NEGOTIATION
James F RulapaughBrazilBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ricardo T SlusarskiFranceBernardo Dominic NEW
Leja X IturbideCanadaAnna Fali QUALIFIED
Greenwood G CampainAustraliaAsiya Javayant QUALIFIED
Greenwood Y DilliardUnited KingdomIoni Bowcher PROPOSAL
Antonio H RimAustraliaAnna Fali RENEWAL
Greenwood N PaprockiCanadaIvan Magalhaes NEW
Jefferson I WhobreyArgentinaXuxue Feng UNQUALIFIED
Jefferson E NickaRussiaXuxue Feng UNQUALIFIED
Tony F FollerIndiaElwin Sharvill UNQUALIFIED
Maisha T SchemmerAustraliaStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey O GarufiJapan2024-04-20Buckley Miller Wright UNQUALIFIED49Amy Elsner
1001Alejandro B CaldareraFrance2024-03-31Commercial Press UNQUALIFIED73Elwin Sharvill
1002Juan R WhobreyArgentina2024-04-07Feiner Bros NEGOTIATION53Ioni Bowcher
1003Clifford U KuskoJapan2024-03-30Buckley Miller Wright PROPOSAL9Stephen Shaw
1004Wickens M SchemmerJapan2024-04-11Chapman, Ross E Esq NEGOTIATION20Xuxue Feng
1005Octavia Y MaletItaly2024-04-22Dorl, James J Esq NEGOTIATION41Stephen Shaw
1006Nicolas L PerinIndia2024-04-23Chanay, Jeffrey A Esq PROPOSAL24Ivan Magalhaes
1007Mayumi B BologniaFrance2024-04-22Printing Dimensions QUALIFIED91Anna Fali
1008Greenwood A GlickRussia2024-04-08Printing Dimensions NEGOTIATION10Ioni Bowcher
1009Costa S BriddickFrance2024-03-29Dorl, James J Esq QUALIFIED22Stephen Shaw
1010Johnson H BowleyGermany2024-04-18Feltz Printing Service RENEWAL57Xuxue Feng
1011Ashley X MaletAustralia2024-04-20Dorl, James J Esq NEGOTIATION36Xuxue Feng
1012Deepesh F OldroydItaly2024-04-24Morlong Associates NEW40Ivan Magalhaes
1013Mayumi V IturbideItaly2024-04-06Buckley Miller Wright UNQUALIFIED13Bernardo Dominic
1014Johnson B ButtFrance2024-04-17Rousseaux, Michael Esq UNQUALIFIED75Ioni Bowcher
1015Aditya M InouyeGermany2024-04-19Buckley Miller Wright QUALIFIED50Bernardo Dominic
1016Chavez N WhobreyFrance2024-03-27Benton, John B Jr PROPOSAL50Stephen Shaw
1017Jefferson J CaldareraRussia2024-04-06Rousseaux, Michael Esq NEGOTIATION75Elwin Sharvill
1018Aruna U AlbaresJapan2024-04-14Morlong Associates RENEWAL67Asiya Javayant
1019Maria W StensethAustralia2024-03-31Chapman, Ross E Esq QUALIFIED98Amy Elsner
1020Stacey H MorascaAustralia2024-04-21Buckley Miller Wright UNQUALIFIED51Asiya Javayant
1021Smith G GarufiItaly2024-04-08Feiner Bros PROPOSAL11Anna Fali
1022Chavez R OldroydRussia2024-03-29Morlong Associates PROPOSAL34Onyama Limba
1023Murillo K RoysterBrazil2024-04-12Rangoni Of Florence RENEWAL92Bernardo Dominic
1024Morrow R KolmetzIndia2024-04-14Morlong Associates RENEWAL4Amy Elsner
1025Jones A SergiAustralia2024-03-30Commercial Press NEW76Xuxue Feng
1026Ivar G OstroskyUnited Kingdom2024-04-15Printing Dimensions NEGOTIATION80Xuxue Feng
1027Francesco C WaycottRussia2024-04-19Chapman, Ross E Esq NEGOTIATION74Ivan Magalhaes
1028Alejandro D GlickJapan2024-04-20Truhlar And Truhlar Attys NEW84Amy Elsner
1029Nicolas B AmigonRussia2024-04-19Printing Dimensions RENEWAL86Ioni Bowcher
1030Rodrigues S NickaUnited Kingdom2024-04-23Morlong Associates UNQUALIFIED27Stephen Shaw
1031Claire J BriddickCanada2024-04-22Rousseaux, Michael Esq PROPOSAL83Onyama Limba
1032Kadeem X AmigonFrance2024-04-08Commercial Press NEW51Elwin Sharvill
1033Cody U OldroydJapan2024-04-02Buckley Miller Wright PROPOSAL67Onyama Limba
1034Emily W FigeroaJapan2024-04-15Feltz Printing Service NEW26Elwin Sharvill
1035Morrow N TollnerGermany2024-04-25Buckley Miller Wright PROPOSAL43Asiya Javayant
1036Emily I FigeroaRussia2024-04-20King, Christopher A Esq QUALIFIED80Onyama Limba
1037Cody K MacleadUnited Kingdom2024-04-16Printing Dimensions QUALIFIED33Ivan Magalhaes
1038Claire A PoquetteAustralia2024-03-29Chemel, James L Cpa RENEWAL27Bernardo Dominic
1039Julie W BriddickRussia2024-03-29Morlong Associates QUALIFIED19Stephen Shaw
1040Costa S BowleyRussia2024-04-10Chemel, James L Cpa UNQUALIFIED28Xuxue Feng
1041Kadeem B OldroydRussia2024-04-01Morlong Associates QUALIFIED48Asiya Javayant
1042Smith T BowleyBrazil2024-04-17King, Christopher A Esq QUALIFIED23Xuxue Feng
1043Emily N FerenczRussia2024-04-09Chanay, Jeffrey A Esq UNQUALIFIED25Amy Elsner
1044Sinclair R DoeJapan2024-04-17Commercial Press PROPOSAL85Ioni Bowcher
1045Octavia J FigeroaUnited Kingdom2024-04-05Truhlar And Truhlar Attys UNQUALIFIED87Amy Elsner
1046Octavia X GauchoAustralia2024-04-24Morlong Associates UNQUALIFIED94Stephen Shaw
1047Izzy J PerinBrazil2024-04-25Rousseaux, Michael Esq PROPOSAL31Bernardo Dominic
1048Ricardo J OstroskyBrazil2024-04-14Commercial Press PROPOSAL11Ioni Bowcher
1049Murillo B BowleyJapan2024-04-05Chemel, James L Cpa UNQUALIFIED16Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ashley Y WaycottBrazilXuxue Feng QUALIFIED
Julie X ButtJapanIvan Magalhaes UNQUALIFIED
Kadeem B FigeroaItalyXuxue Feng QUALIFIED
Izzy A PerinJapanOnyama Limba QUALIFIED
Emily O InouyeUnited KingdomStephen Shaw NEW
Kadeem J GarufiBrazilBernardo Dominic RENEWAL
Nicolas K GillianJapanStephen Shaw UNQUALIFIED
Jefferson X MacleadFranceAnna Fali QUALIFIED
Aditya H BriddickBrazilAsiya Javayant NEGOTIATION
Murillo Y DarakjyBrazilBernardo Dominic UNQUALIFIED
Smith G FlosiUnited KingdomIvan Magalhaes NEW
Jefferson C GlickBrazilStephen Shaw RENEWAL
Stacey W PoquetteCanadaOnyama Limba NEW
Kadeem P StockhamJapanIvan Magalhaes QUALIFIED
Jefferson H WhobreyUnited KingdomIoni Bowcher RENEWAL
Sinclair R GlickFranceAnna Fali NEGOTIATION
Sinclair O VenereAustraliaElwin Sharvill RENEWAL
Salvatore T ShinkoCanadaBernardo Dominic PROPOSAL
Kaitlin D WaycottCanadaIvan Magalhaes NEGOTIATION
Francesco V CaldareraFranceIoni Bowcher NEW
Nicolas L KuskoFranceAmy Elsner NEGOTIATION
Aika N WieserItalyAnna Fali UNQUALIFIED
Aruna V AmigonFranceIvan Magalhaes NEW
Ricardo N GauchoItalyBernardo Dominic NEGOTIATION
Jefferson J BowleyAustraliaOnyama Limba QUALIFIED
Isabel Q BologniaArgentinaIoni Bowcher NEGOTIATION
Munro V FlosiUnited KingdomBernardo Dominic RENEWAL
Emily W BowleyItalyAnna Fali UNQUALIFIED
Misaki O RulapaughGermanyIvan Magalhaes PROPOSAL
Mujtaba P ShinkoCanadaIvan Magalhaes NEGOTIATION
Isabel N DoeGermanyAsiya Javayant NEGOTIATION
Francesco Z KolmetzJapanIoni Bowcher NEW
Greenwood H StockhamArgentinaIvan Magalhaes QUALIFIED
Isabel Z BriddickBrazilIoni Bowcher NEW
Jennifer X StockhamSpainAnna Fali UNQUALIFIED
Kaitlin H MorascaIndiaAnna Fali RENEWAL
Mujtaba N SlusarskiBrazilXuxue Feng PROPOSAL
Aruna M RutaUnited KingdomAnna Fali NEGOTIATION
Silvio R RoysterJapanOnyama Limba PROPOSAL
Nicolas H GauchoGermanyAsiya Javayant NEGOTIATION
Francesco S SlusarskiRussiaIoni Bowcher QUALIFIED
Jeanfrancois K MacleadItalyIoni Bowcher NEGOTIATION
Silvio O WaycottFranceAmy Elsner UNQUALIFIED
Arvin E PerinArgentinaAnna Fali RENEWAL
Salvatore K NickaFranceAsiya Javayant UNQUALIFIED
Stacey R PoquetteJapanAnna Fali QUALIFIED
Leon H PaprockiJapanOnyama Limba NEW
Ashley A RulapaughItalyStephen Shaw NEGOTIATION
Aika R ShinkoIndiaIvan Magalhaes NEW
Alejandro G SaylorsRussiaOnyama Limba QUALIFIED
Frozen Columns
Name
James V Ostrosky
Maisha J Shinko
Julie D Kolmetz
David N Schemmer
Murillo O Rim
Mujtaba C Butt
Aditya T Glick
Morrow J Stenseth
Claire C Malet
Costa C Campain
Arvin K Caldarera
Maisha A Rim
Kadeem H Rim
Arvin Y Chui
Silvio Z Glick
Darci H Nestle
James J Malet
Greenwood O Albares
Salvatore Q Malet
Leon Z Sergi
Stacey D Schemmer
Jennifer E Campain
Adams T Gaucho
Sinclair O Doe
Juan B Flosi
Tony U Perin
Aditya T Venere
Jefferson K Ruta
Kadeem F Glick
Salvatore F Darakjy
Clifford J Malet
Jefferson E Briddick
Nicolas F Figeroa
Ivar J Caldarera
Costa R Royster
Chavez U Rulapaugh
Morrow B Malet
Emily X Kolmetz
Smith A Rim
Jefferson M Venere
Jefferson F Malet
Ivar S Shinko
Munro R Venere
Kadeem R Butt
Costa A Maclead
Antonio H Kolmetz
Jefferson F Paprocki
Cody L Vocelka
Johnson B Morasca
Nicolas G Flosi
IdCountryDate
1000France2024-04-21
1001Russia2024-04-02
1002Brazil2024-04-03
1003Russia2024-04-05
1004Brazil2024-03-28
1005United Kingdom2024-04-14
1006United Kingdom2024-04-09
1007United Kingdom2024-04-09
1008Spain2024-04-05
1009India2024-04-23
1010Spain2024-04-23
1011Australia2024-04-18
1012Italy2024-04-09
1013Italy2024-04-24
1014Canada2024-04-10
1015Germany2024-04-20
1016Brazil2024-04-25
1017Brazil2024-04-22
1018Spain2024-04-05
1019Japan2024-04-05
1020Argentina2024-04-23
1021Canada2024-04-07
1022Japan2024-04-13
1023Australia2024-03-28
1024United Kingdom2024-04-20
1025Italy2024-03-31
1026Argentina2024-04-08
1027Japan2024-04-01
1028India2024-04-08
1029Russia2024-04-24
1030United Kingdom2024-04-12
1031Italy2024-04-10
1032Australia2024-04-20
1033Germany2024-04-25
1034United Kingdom2024-04-05
1035Canada2024-04-23
1036Italy2024-04-13
1037Italy2024-04-14
1038Germany2024-04-23
1039Brazil2024-04-23
1040India2024-04-11
1041Canada2024-03-31
1042Italy2024-04-10
1043Russia2024-04-04
1044Canada2024-04-20
1045Italy2024-04-13
1046Brazil2024-04-08
1047Brazil2024-04-21
1048Germany2024-04-13
1049Germany2024-04-14

On-Demand Data

NameIdCountryDate
Maisha L Saylors1000United Kingdom2024-04-01
Juan A Schemmer1001Russia2024-04-03
Costa C Venere1002Canada2024-04-08
Jeanfrancois Y Bowley1003Australia2024-03-28
Emily F Foller1004France2024-03-29
Stacey C Rim1005Canada2024-04-04
Antonio Z Figeroa1006Canada2024-04-11
Ivar J Stockham1007India2024-04-23
Aruna U Royster1008Japan2024-04-24
Munro T Gillian1009Russia2024-04-21
Cody P Glick1010Canada2024-04-24
Misaki D Nicka1011Australia2024-04-17
Cody O Garufi1012Argentina2024-04-11
Claire N Butt1013Canada2024-04-21
Tony X Vocelka1014Germany2024-04-20
Julie X Malet1015Russia2024-04-17
Octavia F Ruta1016Germany2024-04-08
Rodrigues O Darakjy1017Germany2024-04-24
Maria U Perin1018Brazil2024-04-17
Greenwood C Poquette1019France2024-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony R ChuiIndiaAnna Fali UNQUALIFIED
Juan F WaycottArgentinaAnna Fali PROPOSAL
Juan J DilliardIndiaAsiya Javayant NEW
Jones T FerenczArgentinaBernardo Dominic NEGOTIATION
James P OldroydIndiaIoni Bowcher QUALIFIED
Darci J RulapaughArgentinaStephen Shaw NEW
Maisha E BologniaAustraliaIoni Bowcher NEW
Rodrigues R StensethBrazilBernardo Dominic NEW
Aika R KolmetzArgentinaStephen Shaw UNQUALIFIED
Jefferson W StensethCanadaElwin Sharvill UNQUALIFIED
Jones T RimSpainIvan Magalhaes NEW
Jefferson P MaletUnited KingdomAnna Fali RENEWAL
Leon P IturbideItalyAmy Elsner PROPOSAL
Sinclair Y VocelkaAustraliaAsiya Javayant PROPOSAL
James Q RoysterItalyAnna Fali NEGOTIATION
Octavia C SlusarskiItalyAsiya Javayant NEW
Murillo W SaylorsArgentinaIoni Bowcher NEW
Morrow F PaprockiJapanBernardo Dominic NEW
Ashley R GillianBrazilOnyama Limba PROPOSAL
Maria M RutaIndiaStephen Shaw PROPOSAL
Aditya E RimRussiaStephen Shaw UNQUALIFIED
Darci F MarrierItalyOnyama Limba NEGOTIATION
Aruna F MaletIndiaAmy Elsner UNQUALIFIED
Cody F MacleadRussiaAmy Elsner NEW
Rodrigues Y MorascaArgentinaOnyama Limba PROPOSAL
Darci S SlusarskiGermanyIoni Bowcher QUALIFIED
Emily T SchemmerRussiaIvan Magalhaes NEW
Misaki L MarrierAustraliaElwin Sharvill QUALIFIED
Tony S WaycottIndiaIoni Bowcher QUALIFIED
Julie E PaprockiArgentinaAsiya Javayant RENEWAL
Mujtaba G ChuiBrazilIvan Magalhaes UNQUALIFIED
Johnson K GillianUnited KingdomStephen Shaw PROPOSAL
Cody W NickaRussiaAsiya Javayant PROPOSAL
Clifford E RulapaughIndiaIvan Magalhaes QUALIFIED
Arvin D MaletBrazilAsiya Javayant UNQUALIFIED
Aruna W WhobreyFranceIvan Magalhaes QUALIFIED
Greenwood Y OstroskyAustraliaAnna Fali NEW
Kaitlin K SergiFranceAmy Elsner RENEWAL
Chavez E InouyeCanadaIvan Magalhaes NEGOTIATION
Juan M IturbideAustraliaXuxue Feng NEW

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