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
Jeanfrancois K BowleyBrazilAnna Fali NEW
Silvio L InouyeAustraliaIoni Bowcher NEGOTIATION
Deepesh M OldroydJapanAnna Fali QUALIFIED
Ivar V BowleyJapanAsiya Javayant PROPOSAL
Clifford S FlosiFranceAnna Fali NEW
Chavez S FollerIndiaAsiya Javayant NEGOTIATION
Misaki N WaycottIndiaElwin Sharvill NEGOTIATION
Smith V StensethSpainBernardo Dominic NEGOTIATION
Stacey V DoeArgentinaIoni Bowcher NEGOTIATION
Nicolas Y StockhamFranceOnyama Limba UNQUALIFIED
Jones Z StockhamRussiaOnyama Limba PROPOSAL
Leja W DilliardArgentinaAnna Fali NEW
Morrow M MacleadJapanElwin Sharvill QUALIFIED
Morrow M OldroydJapanStephen Shaw UNQUALIFIED
Isabel Z GlickUnited KingdomAsiya Javayant PROPOSAL
Isabel D FollerGermanyBernardo Dominic NEW
Jefferson L DilliardFranceStephen Shaw NEW
Arvin M PerinJapanElwin Sharvill PROPOSAL
Emily V TollnerArgentinaBernardo Dominic QUALIFIED
Alejandro H ShinkoAustraliaIoni Bowcher UNQUALIFIED
Faith X RulapaughUnited KingdomStephen Shaw QUALIFIED
Jennifer U SergiIndiaAmy Elsner QUALIFIED
Mujtaba A InouyeJapanAnna Fali RENEWAL
Maisha R CampainJapanStephen Shaw QUALIFIED
Mayumi N StensethItalyIvan Magalhaes RENEWAL
Jennifer R KolmetzGermanyIoni Bowcher NEGOTIATION
Leon P MorascaFranceAmy Elsner QUALIFIED
Deepesh L SaylorsJapanAsiya Javayant QUALIFIED
Leja N PaprockiBrazilElwin Sharvill PROPOSAL
Greenwood F BriddickCanadaElwin Sharvill UNQUALIFIED
Leon L ChuiAustraliaBernardo Dominic RENEWAL
Darci H InouyeCanadaBernardo Dominic RENEWAL
Deepesh P DarakjyJapanAmy Elsner NEGOTIATION
Julie O VocelkaSpainIoni Bowcher NEGOTIATION
Adams H StensethFranceBernardo Dominic RENEWAL
Kadeem I GarufiFranceIoni Bowcher NEGOTIATION
Ivar V ButtFranceAsiya Javayant RENEWAL
Sinclair W KuskoGermanyStephen Shaw NEGOTIATION
Alejandro S FigeroaSpainAnna Fali UNQUALIFIED
Cody G TollnerItalyXuxue Feng NEW
Maria F BologniaGermanyStephen Shaw NEGOTIATION
James W CaldareraSpainBernardo Dominic PROPOSAL
Mujtaba Z PerinIndiaStephen Shaw QUALIFIED
Munro E NestleArgentinaStephen Shaw NEGOTIATION
Salvatore W OldroydIndiaElwin Sharvill PROPOSAL
Francesco O FlosiJapanXuxue Feng QUALIFIED
Juan W KolmetzGermanyAsiya Javayant RENEWAL
Wickens K AmigonArgentinaXuxue Feng NEGOTIATION
Francesco F KuskoItalyAmy Elsner RENEWAL
Sinclair S InouyeFranceOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Julie M SlusarskiSpainStephen Shaw QUALIFIED
Francesco M RoysterJapanAsiya Javayant RENEWAL
Wickens N MaletSpainAnna Fali RENEWAL
Chavez E PerinFranceAnna Fali UNQUALIFIED
Greenwood D ShinkoSpainIoni Bowcher RENEWAL
Cody A DilliardRussiaIvan Magalhaes RENEWAL
Aruna W PoquetteRussiaOnyama Limba PROPOSAL
Jefferson M WieserRussiaAsiya Javayant PROPOSAL
Clifford S WhobreyRussiaXuxue Feng NEW
Ricardo N DarakjyGermanyIvan Magalhaes UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones N InouyeUnited Kingdom2024-04-22Rangoni Of Florence NEW94Ioni Bowcher
1001Morrow B IturbideBrazil2024-04-15Benton, John B Jr QUALIFIED3Bernardo Dominic
1002Salvatore R MaletFrance2024-04-21Printing Dimensions QUALIFIED45Stephen Shaw
1003Costa X RulapaughAustralia2024-04-19Buckley Miller Wright RENEWAL9Amy Elsner
1004Juan K ButtCanada2024-04-03Rangoni Of Florence NEW79Amy Elsner
1005Sinclair Q FollerUnited Kingdom2024-03-28Commercial Press QUALIFIED95Anna Fali
1006Kaitlin F AlbaresAustralia2024-04-01Rangoni Of Florence NEW62Xuxue Feng
1007Isabel L InouyeArgentina2024-04-12Benton, John B Jr UNQUALIFIED26Elwin Sharvill
1008Alejandro J MaletAustralia2024-04-06Morlong Associates PROPOSAL75Anna Fali
1009Munro Y MorascaSpain2024-03-28Rangoni Of Florence QUALIFIED64Bernardo Dominic
1010Jefferson X SergiGermany2024-04-21Chapman, Ross E Esq NEW24Asiya Javayant
1011Ricardo M BriddickRussia2024-03-30King, Christopher A Esq PROPOSAL63Amy Elsner
1012Jennifer P WaycottRussia2024-04-18Printing Dimensions NEGOTIATION42Xuxue Feng
1013Ivar C RimAustralia2024-04-19Feltz Printing Service UNQUALIFIED8Ivan Magalhaes
1014Clifford E NickaUnited Kingdom2024-04-10Rangoni Of Florence NEW13Asiya Javayant
1015Wickens Z MaletGermany2024-03-27Feltz Printing Service NEGOTIATION1Asiya Javayant
1016Jennifer Q NestleJapan2024-04-15Feltz Printing Service RENEWAL2Onyama Limba
1017Smith D ButtArgentina2024-04-14Rousseaux, Michael Esq RENEWAL34Asiya Javayant
1018Francesco K ChuiJapan2024-04-21Dorl, James J Esq RENEWAL59Ioni Bowcher
1019Maisha R PoquetteJapan2024-04-20Rangoni Of Florence NEW97Amy Elsner
1020Smith I IturbideItaly2024-04-19Morlong Associates RENEWAL75Bernardo Dominic
1021Deepesh O KuskoArgentina2024-04-04Commercial Press PROPOSAL19Ivan Magalhaes
1022Aditya L FigeroaItaly2024-03-30Benton, John B Jr NEW57Stephen Shaw
1023Murillo A FigeroaIndia2024-03-29Morlong Associates RENEWAL34Amy Elsner
1024Ashley J SaylorsGermany2024-04-23Chapman, Ross E Esq NEW38Ivan Magalhaes
1025Darci N ShinkoArgentina2024-04-11Dorl, James J Esq QUALIFIED86Ivan Magalhaes
1026Sinclair R DilliardSpain2024-04-06Feiner Bros NEW53Amy Elsner
1027David X DarakjyAustralia2024-04-08Commercial Press NEGOTIATION8Bernardo Dominic
1028Munro E FerenczGermany2024-04-15Commercial Press PROPOSAL17Ivan Magalhaes
1029Wickens Y OstroskyArgentina2024-04-02Commercial Press UNQUALIFIED84Bernardo Dominic
1030Tony L MacleadIndia2024-04-21Chapman, Ross E Esq NEW82Ioni Bowcher
1031Claire I KuskoFrance2024-03-28Morlong Associates NEW75Stephen Shaw
1032Izzy O MacleadItaly2024-04-13Feltz Printing Service NEW76Onyama Limba
1033Claire T DoeFrance2024-04-03Chanay, Jeffrey A Esq NEW8Onyama Limba
1034Deepesh A FlosiIndia2024-04-17Feltz Printing Service RENEWAL25Bernardo Dominic
1035Izzy G WhobreyCanada2024-04-09Feiner Bros NEW82Elwin Sharvill
1036Wickens Y ShinkoSpain2024-04-21Chemel, James L Cpa RENEWAL93Stephen Shaw
1037Nicolas T IturbideItaly2024-03-30Morlong Associates UNQUALIFIED11Ioni Bowcher
1038Ashley R SaylorsJapan2024-03-27Rangoni Of Florence RENEWAL70Elwin Sharvill
1039Morrow L PaprockiBrazil2024-04-01King, Christopher A Esq PROPOSAL67Anna Fali
1040Stacey B ButtAustralia2024-03-30Chapman, Ross E Esq NEGOTIATION65Ioni Bowcher
1041Misaki P AmigonAustralia2024-04-14Benton, John B Jr RENEWAL98Bernardo Dominic
1042Juan O CaldareraRussia2024-04-19Truhlar And Truhlar Attys UNQUALIFIED41Anna Fali
1043Adams B VocelkaArgentina2024-04-07Commercial Press PROPOSAL59Stephen Shaw
1044Faith R StensethIndia2024-03-31Rangoni Of Florence UNQUALIFIED25Stephen Shaw
1045Stacey G ButtBrazil2024-04-05Rangoni Of Florence PROPOSAL21Xuxue Feng
1046Smith J RutaCanada2024-04-08Feiner Bros PROPOSAL32Asiya Javayant
1047Misaki U OstroskyArgentina2024-04-15King, Christopher A Esq QUALIFIED47Ivan Magalhaes
1048Claire L RimIndia2024-03-29Commercial Press UNQUALIFIED3Bernardo Dominic
1049Jefferson R OldroydSpain2024-04-24Morlong Associates NEW97Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin F OldroydBrazilOnyama Limba PROPOSAL
Leja Q NestleItalyBernardo Dominic RENEWAL
Julie K CampainIndiaXuxue Feng PROPOSAL
Leja K PaprockiArgentinaOnyama Limba NEW
Wickens A FigeroaBrazilIoni Bowcher UNQUALIFIED
Leja O DilliardUnited KingdomIoni Bowcher UNQUALIFIED
Jennifer J ButtArgentinaIvan Magalhaes PROPOSAL
Salvatore F MarrierSpainBernardo Dominic QUALIFIED
Costa B StensethItalyStephen Shaw QUALIFIED
Alejandro Y WaycottGermanyXuxue Feng NEGOTIATION
Johnson W IturbideGermanyXuxue Feng NEW
David P VenereBrazilAsiya Javayant NEGOTIATION
David R RutaIndiaStephen Shaw PROPOSAL
Wickens F MacleadArgentinaAmy Elsner UNQUALIFIED
Silvio Y WhobreyArgentinaAnna Fali NEW
Kaitlin N DoeSpainAmy Elsner UNQUALIFIED
Francesco R BologniaRussiaAnna Fali PROPOSAL
Salvatore K FlosiItalyElwin Sharvill QUALIFIED
Greenwood X TollnerFranceAmy Elsner QUALIFIED
Jeanfrancois H DilliardFranceStephen Shaw PROPOSAL
Izzy Q OstroskyAustraliaIvan Magalhaes QUALIFIED
Jefferson D FerenczUnited KingdomAsiya Javayant NEW
Deepesh T BowleyJapanStephen Shaw UNQUALIFIED
Mayumi I WaycottIndiaElwin Sharvill QUALIFIED
Octavia C NestleAustraliaIvan Magalhaes QUALIFIED
Cody U FollerCanadaXuxue Feng QUALIFIED
Nicolas V SaylorsIndiaXuxue Feng NEGOTIATION
Darci Q InouyeAustraliaAnna Fali PROPOSAL
Smith O WaycottBrazilAsiya Javayant NEW
Maisha V KolmetzJapanOnyama Limba PROPOSAL
Jefferson X PoquetteRussiaStephen Shaw PROPOSAL
Clifford W WhobreyGermanyIvan Magalhaes QUALIFIED
Aika X RimJapanAsiya Javayant NEGOTIATION
Deepesh H BowleyAustraliaStephen Shaw NEGOTIATION
Adams N RoysterItalyIvan Magalhaes RENEWAL
Stacey B NickaSpainElwin Sharvill RENEWAL
Julie Y CaldareraAustraliaIoni Bowcher UNQUALIFIED
Leon E FerenczJapanElwin Sharvill RENEWAL
Aditya U GillianFranceIoni Bowcher UNQUALIFIED
Morrow K NestleUnited KingdomStephen Shaw NEGOTIATION
Darci Y ButtItalyIvan Magalhaes PROPOSAL
Sinclair O DoeGermanyIoni Bowcher NEW
Mujtaba A MacleadArgentinaBernardo Dominic UNQUALIFIED
Johnson A PaprockiFranceXuxue Feng PROPOSAL
Johnson Z RutaCanadaStephen Shaw QUALIFIED
Alejandro F GillianBrazilOnyama Limba RENEWAL
Jefferson V SaylorsIndiaAnna Fali RENEWAL
Maisha U KolmetzItalyAmy Elsner PROPOSAL
Octavia I BowleyCanadaIoni Bowcher UNQUALIFIED
Ashley H AlbaresFranceBernardo Dominic RENEWAL
Frozen Columns
Name
Leja W Caldarera
Sinclair J Kolmetz
Tony Z Paprocki
Wickens Y Waycott
Costa O Gaucho
Emily S Amigon
Arvin F Nestle
Octavia J Amigon
Juan K Kolmetz
Greenwood M Ostrosky
Maisha I Amigon
Jennifer E Nicka
Aditya I Venere
Deepesh G Paprocki
Juan K Campain
Smith Z Waycott
Murillo K Stenseth
Clifford G Dilliard
Silvio F Nicka
Claire N Albares
Octavia K Paprocki
Maria A Gillian
Jennifer D Whobrey
Francesco M Marrier
Tony C Figeroa
Faith P Gaucho
Aditya M Nicka
Jones X Foller
Aika N Venere
Juan R Malet
Emily W Iturbide
Smith O Gaucho
Isabel L Venere
Izzy L Stenseth
Jefferson F Inouye
Murillo T Paprocki
Ricardo P Rim
Leja S Oldroyd
Smith P Saylors
Adams J Ferencz
Maisha E Bowley
Aruna Q Schemmer
Clifford L Rim
Leon H Foller
Emily F Ferencz
Octavia L Doe
Rodrigues B Tollner
James P Nestle
Julie R Rim
Salvatore O Chui
IdCountryDate
1000Brazil2024-04-19
1001Brazil2024-04-04
1002Japan2024-03-31
1003Italy2024-04-03
1004Argentina2024-04-04
1005France2024-03-28
1006Brazil2024-04-18
1007Canada2024-03-31
1008Germany2024-04-04
1009United Kingdom2024-04-23
1010India2024-04-11
1011India2024-04-09
1012Canada2024-04-21
1013France2024-04-12
1014Spain2024-04-05
1015Japan2024-04-06
1016India2024-04-17
1017France2024-04-15
1018Australia2024-04-02
1019France2024-04-16
1020Brazil2024-04-19
1021Italy2024-04-23
1022India2024-04-08
1023United Kingdom2024-04-20
1024Italy2024-03-28
1025Japan2024-04-23
1026France2024-04-01
1027France2024-04-06
1028India2024-04-08
1029India2024-03-30
1030France2024-04-01
1031Australia2024-04-09
1032Brazil2024-04-07
1033Canada2024-04-22
1034Russia2024-04-11
1035Italy2024-04-14
1036Spain2024-04-22
1037Canada2024-04-17
1038Italy2024-04-14
1039Spain2024-03-27
1040Argentina2024-03-27
1041United Kingdom2024-04-09
1042India2024-04-19
1043India2024-04-21
1044Australia2024-04-19
1045Italy2024-04-18
1046France2024-04-03
1047Australia2024-04-12
1048Italy2024-04-05
1049France2024-04-20

On-Demand Data

NameIdCountryDate
Munro Z Doe1000Spain2024-04-09
Aruna H Dilliard1001Italy2024-04-03
Francesco S Waycott1002India2024-04-13
Nicolas J Saylors1003Spain2024-04-05
Munro V Amigon1004Spain2024-03-28
Maisha S Albares1005United Kingdom2024-04-06
Chavez R Stenseth1006United Kingdom2024-03-29
Octavia T Waycott1007Brazil2024-04-10
Arvin V Nicka1008Spain2024-03-30
Deepesh Y Darakjy1009United Kingdom2024-04-24
Antonio Y Dilliard1010India2024-04-24
Mujtaba V Bowley1011France2024-03-28
Emily U Figeroa1012Spain2024-04-11
Juan Q Poquette1013Australia2024-04-17
Johnson O Shinko1014Australia2024-04-20
Alejandro P Royster1015Argentina2024-04-17
Stacey L Nicka1016Germany2024-03-29
Misaki V Perin1017France2024-04-03
David C Doe1018Australia2024-04-15
Costa Z Rulapaugh1019India2024-04-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood K InouyeCanadaIvan Magalhaes QUALIFIED
Juan P OstroskyItalyStephen Shaw RENEWAL
Francesco B GillianUnited KingdomXuxue Feng RENEWAL
Clifford M KolmetzBrazilAsiya Javayant NEW
Antonio Y MorascaSpainXuxue Feng RENEWAL
Nicolas Z SergiSpainIvan Magalhaes QUALIFIED
Jefferson M PaprockiRussiaElwin Sharvill UNQUALIFIED
Julie V RulapaughBrazilBernardo Dominic UNQUALIFIED
Julie W SergiBrazilElwin Sharvill PROPOSAL
Isabel U SchemmerArgentinaElwin Sharvill QUALIFIED
Greenwood P RoysterRussiaBernardo Dominic QUALIFIED
Francesco A MorascaCanadaXuxue Feng NEW
Kaitlin G ShinkoUnited KingdomElwin Sharvill QUALIFIED
Izzy M CaldareraCanadaStephen Shaw PROPOSAL
Faith Y BowleyIndiaXuxue Feng NEW
Ricardo J DilliardRussiaBernardo Dominic NEW
Aruna N GarufiUnited KingdomXuxue Feng NEW
Julie Z CaudyItalyAmy Elsner QUALIFIED
Misaki A MacleadBrazilElwin Sharvill QUALIFIED
Cody V BowleyUnited KingdomOnyama Limba PROPOSAL
Kaitlin A PoquetteFranceIoni Bowcher RENEWAL
Kadeem G OstroskyGermanyBernardo Dominic NEW
James R PerinBrazilBernardo Dominic UNQUALIFIED
Adams Q KuskoCanadaAmy Elsner NEGOTIATION
Tony L VocelkaIndiaBernardo Dominic PROPOSAL
Munro N RulapaughIndiaOnyama Limba QUALIFIED
Leja N MaletBrazilIvan Magalhaes NEW
Jones N PerinArgentinaAmy Elsner NEW
Ashley S CaldareraBrazilBernardo Dominic NEGOTIATION
Rodrigues Q CaldareraJapanAmy Elsner NEW
Silvio R OldroydBrazilOnyama Limba UNQUALIFIED
Francesco B AlbaresItalyStephen Shaw PROPOSAL
Alejandro Z NickaGermanyXuxue Feng UNQUALIFIED
Juan M MarrierRussiaXuxue Feng UNQUALIFIED
Tony W BowleyBrazilXuxue Feng NEW
Adams R RutaAustraliaXuxue Feng QUALIFIED
Alejandro G DoeJapanAmy Elsner NEW
Maria V PoquetteSpainXuxue Feng RENEWAL
Adams K RulapaughCanadaStephen Shaw UNQUALIFIED
Jones K StockhamCanadaXuxue 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>